27 #include "KVUniqueNameList.h"
28 #include "KVNameValueList.h"
29 #include "KVFrameTransform.h"
401 void print_frames(
TString fmt =
"")
const;
421 mutable FrameList fBoosted{
this};
505 Int_t _GetNumberOfDefinedFrames()
const;
506 void SetFrameCopyOnly()
const
508 fFrameCopyOnly =
kTRUE;
510 void ResetFrameCopyOnly()
const
522 const KVParticle* GetTopmostParentFrame()
const
527 auto top_node =
this;
528 while (top_node->GetParentFrame()) {
529 top_node = top_node->GetParentFrame();
535 return fOriginal ? fOriginal :
this;
539 return fOriginal ? fOriginal :
this;
583 SetXYZM(
v(0),
v(1),
v(2),
M());
694 return (phi < 0 ? 360. + phi : phi);
716 void ls(
Option_t* option =
"")
const override;
776 return GetTopmostParentFrame();
781 return GetTopmostParentFrame() ==
this;
794 return (GetTopmostParentFrame()->get_frame(frame) !=
nullptr);
799 return GetTopmostParentFrame()->_GetNumberOfDefinedFrames();
813 fFrameName = framename;
814 if (fFrameName !=
"")
SetParameter(
"frameName", framename);
#define ClassDefOverride(name, id)
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Kinematical representation of a particle in different reference frames.
Extended TList class which owns its objects by default.
Handles lists of named parameters with different types, a list of KVNamedParameter objects.
void SetValue(const Char_t *name, value_type value)
void RemoveParameter(const Char_t *name)
void Clear(Option_t *="") override
When the frame list is cleared, this particle is no longer the parent of any frames in the list.
TObject * Remove(TObject *) override
When a kinematical frame is removed, this particle is no longer the parent frame.
void Add(TObject *) override
When a kinematical frame is added, this particle becomes the parent frame.
void Copy(TObject &_new_list) const override
void AddAll(const TCollection *) override
When all frames in a list are added to this one, this particle becomes the parent of all frames in th...
Base class for relativistic kinematics of massive particles.
Double_t GetWaveLength() const
Int_t GetNumberOfDefinedGroups() const
Double_t GetThermalWaveLength(Double_t temp) const
void SetIsOK(Bool_t flag=kTRUE)
void SetTheta(Double_t theta)
TVector3 * GetPInitial() const
Double_t GetREtran() const
virtual void SetMass(Double_t m)
void RemoveGroup(const Char_t *groupname)
Remove group from list of groups.
void AddGroup(const Char_t *groupname, const Char_t *from="") const
void SetPhi(Double_t phi)
TVector3 GetMomentum() const
void RemoveAllGroups()
Remove all groups.
KVNameValueList * GetParameters() const
Double_t GetTheta() const
KVParticle & operator=(const KVParticle &rhs)
KVParticle assignment operator.
const Char_t * GetFrameName(void) const
void SetMomentum(const TVector3 &v)
void ls(Option_t *option="") const override
void SetVelocity(const TVector3 &)
Set velocity of particle (in cm/ns units)
Double_t GetEnergy() const
Double_t GetTransverseEnergy() const
KVUniqueNameList * GetGroups() const
Double_t GetLongitudinalEnergy() const
Bool_t IsDetected() const
const Char_t * GetName() const override
return the field fName
void SetKE(Double_t ecin)
void init()
default initialisation
Double_t GetCosTheta() const
Bool_t HasFrame(const Char_t *frame) const
void Copy(TObject &) const override
Double_t GetRTransverseEnergy() const
Double_t GetElong() const
void Set4Mom(const TLorentzVector &p)
KVParticle InFrame(const KVFrameTransform &) const
void SetE0(TVector3 *e=0)
void Clear(Option_t *opt="") override
Reset particle properties i.e. before creating/reading a new event.
void SetParameter(const Char_t *name, ValType value) const
void ListGroups() const
List all stored groups.
void SetFrameName(const Char_t *framename)
void SetName(const Char_t *nom)
Set Name of the particle.
Bool_t IsDefaultKinematics() const
void SetFrame(const Char_t *frame, const KVFrameTransform &)
Int_t GetNumberOfDefinedFrames() const
KVParticle const * GetFrame(const Char_t *frame, Bool_t warn_and_return_null_if_unknown=kTRUE) const
void ChangeFrame(const KVFrameTransform &, const KVString &="")
Bool_t BelongsToGroup(const Char_t *groupname) const
void ChangeDefaultFrame(const Char_t *, const Char_t *defname="")
void SetRandomMomentum(Double_t T, Double_t thmin, Double_t thmax, Double_t phmin, Double_t phmax, Option_t *opt="isotropic")
const KVParticle * GetCurrentDefaultKinematics() const
void SetEnergy(Double_t e)
void Print(Option_t *t="") const override
print out characteristics of particle
TVector3 GetVelocity() const
returns velocity vector in cm/ns units
Double_t GetVperp() const
Double_t GetEtran() const
KVList * GetListOfFrames() const
TVector3 GetTransverseMomentum() const
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
Optimised list in which named objects can only be placed once.
virtual Int_t GetEntries() const
void SetXYZT(Double_t x, Double_t y, Double_t z, Double_t t)
void SetPtEtaPhiE(Double_t pt, Double_t eta, Double_t phi, Double_t e)
void SetPtEtaPhiM(Double_t pt, Double_t eta, Double_t phi, Double_t m)
void SetPhi(Double_t phi)
void SetRho(Double_t rho)
void SetVectMag(const TVector3 &spatial, Double_t magnitude)
void SetPxPyPzE(Double_t px, Double_t py, Double_t pz, Double_t e)
void SetTheta(Double_t theta)
void SetVect(const TVector3 &vect3)
void SetVectM(const TVector3 &spatial, Double_t mass)
void SetXYZM(Double_t x, Double_t y, Double_t z, Double_t m)
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
int CompareTo(const char *cs, ECaseCompare cmp=kExact) const
Double_t Power(Double_t x, Double_t y)
constexpr Double_t DegToRad()
Double_t Sqrt(Double_t x)
constexpr Double_t RadToDeg()
constexpr Double_t TwoPi()