27 #include "KVUniqueNameList.h" 
   28 #include "KVNameValueList.h" 
   29 #include "KVFrameTransform.h" 
  527       auto top_node = 
this;
 
  528       while (top_node->GetParentFrame()) {
 
  694       return (phi < 0 ? 360. + phi : phi);
 
  716    void ls(
Option_t* option = 
"") 
const override;
 
#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
 
void AddGroups(KVUniqueNameList *un)
list of groups added to the current one
 
KVParticle * GetOriginal()
 
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)
 
const KVParticle * GetOriginal() const
 
TVector3 GetMomentum() const
 
void RemoveAllGroups()
Remove all groups.
 
KVUniqueNameList fGroups
list of momenta of the particle in different Lorentz-boosted frames
 
KVNameValueList * GetParameters() const
 
void SetXYZT(Double_t x, Double_t y, Double_t z, Double_t t)
 
Double_t GetTheta() const
 
KVParticle & operator=(const KVParticle &rhs)
KVParticle assignment operator.
 
void SetVectM(const TVector3 &spatial, Double_t mass)
 
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)
 
KVParticle * GetParentFrame() const
 
void SetRho(Double_t rho)
 
Double_t GetEnergy() const
 
void ResetFrameCopyOnly() const
 
Double_t GetTransverseEnergy() const
 
void SetVectMag(const TVector3 &spatial, Double_t magnitude)
 
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
 
KVNameValueList fParameters
a general-purpose list of parameters associated with this particle
 
Double_t GetCosTheta() const
 
void SetPxPyPzE(Double_t px, Double_t py, Double_t pz, Double_t e)
 
Bool_t HasFrame(const Char_t *frame) const
 
void Copy(TObject &) const override
 
Double_t GetRTransverseEnergy() const
 
void SetMomentum(const TVector3 *v)
 
Double_t GetElong() const
 
void Set4Mom(const TLorentzVector &p)
 
KVKinematicalFrame * get_parent_frame(const Char_t *, KVKinematicalFrame *F=nullptr) const
 
KVParticle * fOriginal
parent kinematical frame
 
KVParticle InFrame(const KVFrameTransform &) const
 
void SetE0(TVector3 *e=0)
 
TString fFrameName
non-persistent frame name field, sets when calling SetFrame method
 
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.
 
Bool_t fFrameCopyOnly
if != nullptr, this object is a representation of the particle in a kinematical frame
 
void SetFrameName(const Char_t *framename)
 
static Double_t kSpeedOfLight
speed of light in cm/ns
 
void SetParentFrame(KVParticle *p)
 
void SetXYZM(Double_t x, Double_t y, Double_t z, Double_t m)
 
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 &="")
 
void SetOriginal(KVParticle *p)
 
void SetGroups(KVUniqueNameList *un)
Define for the particle a new list of groups.
 
Bool_t BelongsToGroup(const Char_t *groupname) const
 
TVector3 * fE0
the momentum of the particle before it is slowed/stopped by an absorber
 
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")
 
void SetPtEtaPhiM(Double_t pt, Double_t eta, Double_t phi, Double_t m)
 
const KVParticle * GetCurrentDefaultKinematics() const
 
KVParticle * fParentFrame
 
TString fName
non-persistent name field - Is useful
 
KVKinematicalFrame * get_frame(const Char_t *) 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
 
const KVParticle * GetTopmostParentFrame() const
 
KVList * GetListOfFrames() const
 
void SetVect(const TVector3 &vect3)
TLorentzVector setters should not be used.
 
void SetFrameCopyOnly() const
 
TVector3 GetTransverseMomentum() const
 
Int_t _GetNumberOfDefinedFrames() const
used to inhibit full copying of particles in different kinematical frames
 
void SetPtEtaPhiE(Double_t pt, Double_t eta, Double_t phi, Double_t e)
 
void print_frames(TString fmt="") const
recursive print out of all defined kinematical frames
 
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()