class HPidParticle: public TLorentzVector

_HADES_CLASS_DESCRIPTION

 This class has been redesigned also in the course of adaption to multiple tracking methods
 Documentation is provided at the individual function bodies and in the header file

 Tassilo Christ 05/07/2006

Function Members (Methods)

public:
HPidParticle()
HPidParticle(const HPidParticle& source)
HPidParticle(HPidCandidate* pCandidate, Float_t* assignedWeights, Bool_t useMassIdeal = kTRUE, Int_t userDefSpecies = -99, Float_t userDefWeight = 0.0)
virtual~HPidParticle()
voidTObject::AbstractMethod(const char* method) const
Double_tTLorentzVector::Angle(const TVector3& v) const
virtual voidTObject::AppendPad(Option_t* option = "")
Double_tTLorentzVector::Beta() const
voidTLorentzVector::Boost(const TVector3& b)
voidTLorentzVector::Boost(Double_t, Double_t, Double_t)
TVector3TLorentzVector::BoostVector() const
virtual voidTObject::Browse(TBrowser* b)
static HCategory*buildPidParticleCategory()
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidClear(Option_t* opt = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
Double_tTLorentzVector::CosTheta() const
virtual voidTObject::Delete(Option_t* option = "")MENU
Double_tTLorentzVector::DeltaPhi(const TLorentzVector& v) const
Double_tTLorentzVector::DeltaR(const TLorentzVector& v) const
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
Double_tTLorentzVector::Dot(const TLorentzVector& q) const
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
Double_tTLorentzVector::DrEtaPhi(const TLorentzVector& v) const
virtual voidTObject::Dump() constMENU
Double_tTLorentzVector::E() const
Double_tTLorentzVector::Energy() const
virtual voidTObject::Error(const char* method, const char* msgfmt) const
Double_tTLorentzVector::Et() const
Double_tTLorentzVector::Et(const TVector3& v) const
Double_tTLorentzVector::Et2() const
Double_tTLorentzVector::Et2(const TVector3& v) const
Double_tTLorentzVector::Eta() const
TVector2TLorentzVector::EtaPhiVector()
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Double_tTLorentzVector::Gamma() const
Float_tgetBetaExp() const
Int_tgetCharge() const
Int_tgetDoubleHitsHadrons()
Int_tgetDoubleHitsLeptons()
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Int_tgetFlagField()
const HPidHitData*getHitData() const
virtual const char*TObject::GetIconName() const
Int_tgetIndex(HCategory* pCat = 0)
Float_tgetMassExp() const
Float_tgetMassIdeal() const
Int_tgetMomAlg() const
Float_tgetMomRescal() const
Int_tgetMostProbablePID() const
virtual const char*TObject::GetName() const
Int_tgetNPossibleSpecies()
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Int_tgetPid() const
Short_tgetPid(Short_t n) const
HPidCandidate*getPidCandidate(HCategory* pCat = 0) const
Short_tgetPidCandidateIndex() const
Float_tgetR() const
TLorentzVectorgetRescaledVector() const
Int_tgetSpeciesIndex(Short_t pid) const
Float_tgetSystem() const
Float_tgetTestVal() const
virtual const char*TObject::GetTitle() const
HPidTrackCand*getTrackCand() const
const HPidTrackData*getTrackData() const
virtual UInt_tTObject::GetUniqueID() const
Float_tgetWeight() const
Float_tgetWeight(Short_t n) const
Float_tgetWeightForPID(Short_t pid) const
voidTLorentzVector::GetXYZT(Double_t* carray) const
voidTLorentzVector::GetXYZT(Float_t* carray) const
Float_tgetZ() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
Bool_tisFlagAllBestHit()
Bool_tisFlagAND(Int_t num)
Bool_tisFlagBit(HPidTrackCand::EflagBits bit)
Bool_tisFlagBit(Int_t bit)
Bool_tisFlagDoubleHit()
Bool_tisFlagNoBestHit()
Bool_tisFlagOR(Int_t num)
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
Double_tTLorentzVector::M() const
Double_tTLorentzVector::M2() const
Double_tTLorentzVector::Mag() const
Double_tTLorentzVector::Mag2() const
voidTObject::MayNotUse(const char* method) const
Double_tTLorentzVector::Minus() const
Double_tTLorentzVector::Mt() const
Double_tTLorentzVector::Mt2() const
virtual Bool_tTObject::Notify()
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
Bool_tTLorentzVector::operator!=(const TLorentzVector& q) const
Double_tTLorentzVector::operator()(int i) const
Double_t&TLorentzVector::operator()(int i)
TLorentzVectorTLorentzVector::operator*(Double_t a) const
Double_tTLorentzVector::operator*(const TLorentzVector& q) const
TLorentzVector&TLorentzVector::operator*=(Double_t a)
TLorentzVector&TLorentzVector::operator*=(const TRotation& m)
TLorentzVector&TLorentzVector::operator*=(const TLorentzRotation&)
TLorentzVectorTLorentzVector::operator+(const TLorentzVector& q) const
TLorentzVector&TLorentzVector::operator+=(const TLorentzVector& q)
TLorentzVectorTLorentzVector::operator-() const
TLorentzVectorTLorentzVector::operator-(const TLorentzVector& q) const
TLorentzVector&TLorentzVector::operator-=(const TLorentzVector& q)
HPidParticle&operator=(const HPidParticle&)
Bool_tTLorentzVector::operator==(const TLorentzVector& q) const
Double_tTLorentzVector::operator[](int i) const
Double_t&TLorentzVector::operator[](int i)
Double_tTLorentzVector::P() const
virtual voidTObject::Paint(Option_t* option = "")
Double_tTLorentzVector::Perp() const
Double_tTLorentzVector::Perp(const TVector3& v) const
Double_tTLorentzVector::Perp2() const
Double_tTLorentzVector::Perp2(const TVector3& v) const
Double_tTLorentzVector::Phi() const
Double_tphiDeg() const
Double_tTLorentzVector::Plus() const
virtual voidTObject::Pop()
virtual voidprint() const
virtual voidPrint(Option_t* option = "") const
voidprintFlags(TString comment = "")
Double_tTLorentzVector::PseudoRapidity() const
Double_tTLorentzVector::Pt() const
Double_tTLorentzVector::Pt(const TVector3& v) const
Double_tTLorentzVector::Px() const
Double_tTLorentzVector::Py() const
Double_tTLorentzVector::Pz() const
Double_tTLorentzVector::Rapidity() const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
Double_tTLorentzVector::Rho() const
voidTLorentzVector::Rotate(Double_t a, const TVector3& v)
voidTLorentzVector::RotateUz(TVector3& newUzVector)
voidTLorentzVector::RotateX(Double_t angle)
voidTLorentzVector::RotateY(Double_t angle)
voidTLorentzVector::RotateZ(Double_t angle)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
Short_tsector() const
Bool_tselect(Bool_t (*)(HPidParticle*) function)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidTLorentzVector::SetE(Double_t a)
voidsetFlagBit(HPidTrackCand::EflagBits bit)
voidsetFlagBit(Int_t bit)
voidsetFlagBitByValue(HPidTrackCand::EflagBits bit, Bool_t val)
voidsetFlagBitByValue(Int_t bit, Bool_t val)
voidsetFlagField(Int_t field)
voidsetMomAlg(Int_t i)
voidsetMomRescal(Float_t f)
static voidTObject::SetObjectStat(Bool_t stat)
voidTLorentzVector::SetPerp(Double_t r)
voidTLorentzVector::SetPhi(Double_t phi)
voidsetPid(Short_t npid)
voidsetPidCandidateIndex(Short_t n)
voidsetPidParams(Float_t fTestVal, Int_t userDefSpecies = -99, Float_t userWeight = 1.0)
voidTLorentzVector::SetPtEtaPhiE(Double_t pt, Double_t eta, Double_t phi, Double_t e)
voidTLorentzVector::SetPtEtaPhiM(Double_t pt, Double_t eta, Double_t phi, Double_t m)
voidTLorentzVector::SetPx(Double_t a)
voidTLorentzVector::SetPxPyPzE(Double_t px, Double_t py, Double_t pz, Double_t e)
voidTLorentzVector::SetPy(Double_t a)
voidTLorentzVector::SetPz(Double_t a)
voidTLorentzVector::SetRho(Double_t rho)
voidTLorentzVector::SetT(Double_t a)
voidsetTestVal(Float_t f)
voidTLorentzVector::SetTheta(Double_t th)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidTLorentzVector::SetVect(const TVector3& p)
voidTLorentzVector::SetVectM(const TVector3& spatial, Double_t mass)
voidTLorentzVector::SetVectMag(const TVector3& spatial, Double_t magnitude)
voidTLorentzVector::SetX(Double_t a)
voidTLorentzVector::SetXYZM(Double_t x, Double_t y, Double_t z, Double_t m)
voidTLorentzVector::SetXYZT(Double_t x, Double_t y, Double_t z, Double_t t)
voidTLorentzVector::SetY(Double_t a)
voidTLorentzVector::SetZ(Double_t a)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Double_tTLorentzVector::T() const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
Double_tTLorentzVector::Theta() const
Double_tthetaDeg() const
TLorentzVector&TLorentzVector::Transform(const TRotation& m)
TLorentzVector&TLorentzVector::Transform(const TLorentzRotation&)
voidunsetFlagBit(HPidTrackCand::EflagBits bit)
voidunsetFlagBit(Int_t bit)
virtual voidTObject::UseCurrentStyle()
TVector3TLorentzVector::Vect() const
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
Double_tTLorentzVector::X() const
Double_tTLorentzVector::Y() const
Double_tTLorentzVector::Z() const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
voidsetDefault()

Data Members

public:
enum { kMassExpInTLV
kMassExpNoPhy
kTrackCandOffset
};
enum TLorentzVector::[unnamed] { kX
kY
kZ
kT
kNUM_COORDINATES
kSIZE
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
TArrayFassignedWeightssize: nPossibleSpecies
Float_tfMomRescalrescaling factor for the momentum which might be applied to compute from the stored
Float_tfTestValtest value checked during creation
Float_tfWeightstatistical weight of the particle (probability of the externally assigned species - if any)
Int_tflagsstored flags for Double_t hits, best hits etc (bitwise).
HPidHitDataitsHitData
HPidTrackDataitsTrackData
Bool_tkUsesIdealMasskTRUE if the particle stores the ideal mass value of its assigned PID to build the Lorentz
Short_tmomAlgIndexIndex indicating which algorithm for momentum computation has been chosen
Int_tnAssignedPIDA pid assigned to the particle either by an external algorithm or by choosing the
Short_tnPidCandidateIndexindex of the HPidCandidate this particle was made from
Int_tnPossibleSpeciesnumber of possible species (dimension of the vectors possibleSpecies and assignedWeights
TArraySpossibleSpeciessize: nPossibleSpecies

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

HPidParticle(HPidCandidate* pCandidate, Float_t* assignedWeights, Bool_t useMassIdeal = kTRUE, Int_t userDefSpecies = -99, Float_t userDefWeight = 0.0)
HPidParticle(const HPidParticle& source)
void setFlagBit(Int_t bit)
 set given bit in flag (0-32)
void unsetFlagBit(Int_t bit)
 unset given bit in flag (0-32)
Bool_t isFlagBit(Int_t bit)
 check given bit in flag (0-32)
 return kTRUE if bit is set
Bool_t isFlagOR(Int_t num,...)
 check given number of bits in argument in flag (0-32)
 return kTRUE if any bit is set
Bool_t isFlagAND(Int_t num, ...)
 check given number of bits in argument in flag (0-32)
 return kTRUE if all bits are set
void printFlags(TString comment = "")
 print the flag field in binary representation
 Comment will be printed at the end of line
void setPidParams(Float_t fTestVal, Int_t userDefSpecies = -99, Float_t userWeight = 1.0)
Float_t getWeightForPID(Short_t pid) const
Int_t getSpeciesIndex(Short_t pid) const
void setDefault(void)
void Clear(Option_t* opt = "")
 Clear all variables and frees dynamic memory!
void print(void)
 Print info about the particle
HPidCandidate* getPidCandidate(HCategory* pCat = 0) const
 Returns HPidCandidate object corresponding to nPidCandidateIndex (if exists)
 Works when pCat is set or gHades->getCurrentEvent() is accessible
HCategory* buildPidParticleCategory(void)
 Static function for making the category HPidParticle
Int_t getMostProbablePID(void)
Int_t getIndex(HCategory* pCat = 0)
 Return index of the HPidParticle in the pCat or catPidPart if pCat == NULL
HPidTrackCand* getTrackCand(void)
 This method returns HPidTrackCand object from the corresponding
 HPidCandidate (when nPidCandidateIndex >= 0) or directly from catPidTrackCand
 when nPidCandidateIndex <= -1000
 (interface for HPidParticleFillerFromTrack)
TLorentzVector getRescaledVector(void)
void Streamer(TBuffer& b)
 Stream an object of class HPidParticle.
Double_t thetaDeg(void)
Double_t phiDeg(void)
Short_t sector(void)
HPidParticle(HPidCandidate* pCandidate, Float_t* assignedWeights, Bool_t useMassIdeal = kTRUE, Int_t userDefSpecies = -99, Float_t userDefWeight = 0.0)
This constructor is used by HPidParticleFiller to build an HPidParticle once all pid methods
have given their statement about the possible species this track should be assigned to
{}
~HPidParticle(void)
{}
void setFlagBit(HPidTrackCand::EflagBits bit)
 functions to access the bit flag array copied from HPidTrackCand
{ flags |= ( 0x01 << bit ); }
void unsetFlagBit(HPidTrackCand::EflagBits bit)
{ flags &= ~( 0x01 << bit ); }
Bool_t isFlagBit(HPidTrackCand::EflagBits bit)
{ return (flags >> bit ) & 0x01 ; }
void setFlagBitByValue(HPidTrackCand::EflagBits bit, Bool_t val)
{ val ? setFlagBit(bit) : unsetFlagBit(bit); }
void setFlagBitByValue(Int_t bit, Bool_t val)
{ val ? setFlagBit(bit) : unsetFlagBit(bit); }
Bool_t isFlagDoubleHit()
{ return (flags & 0xF) == 0x0 ? kFALSE : kTRUE; }
Bool_t isFlagAllBestHit()
{ return ((flags >> 4 ) & 0xF) == 0xF ? kTRUE : kFALSE; }
Bool_t isFlagNoBestHit()
{ return ((flags >> 4 ) & 0xF) == 0x0 ? kTRUE : kFALSE; }
Int_t getFlagField()
{ return flags; }
void setFlagField(Int_t field)
{ flags = field; }
Int_t getDoubleHitsLeptons()
{ return (flags & 0xF);}
Int_t getDoubleHitsHadrons()
{ return ((flags >> 1) & 0x7);}
Bool_t select(Bool_t (*)(HPidParticle*) function)
{ return (*function)(this); }
void setPidCandidateIndex(Short_t n)
The index to an instance of the PID input class
{ nPidCandidateIndex = n; }
Short_t getPidCandidateIndex(void)
{ return nPidCandidateIndex ; }
Float_t getSystem(void)
getters and setters will not be documented unless required
{ return getHitData()->iSystem; }
Float_t getR(void)
{ return getTrackData()->fTrackR[getMomAlg()]; }
Float_t getZ(void)
{ return getTrackData()->fTrackZ[getMomAlg()]; }
Float_t getMassExp(void)
{ return (Float_t) M(); }
Float_t getBetaExp(void)
{ return getTrackData()->fCorrectedBeta[getMomAlg()]; }
void setMomAlg(Int_t i)
{ momAlgIndex = i; }
Int_t getMomAlg(void)
{ return momAlgIndex; }
Int_t getCharge(void)
{ return HPidPhysicsConstants::charge(nAssignedPID); }
Short_t getPid(Short_t n) const
Get the n-th species which was considered in the analysis (the probability might zero!)
{ return possibleSpecies[n]; }
Float_t getWeight(Short_t n) const
Get the n-th probability-value
{ return assignedWeights[n]; }
Int_t getPid(Short_t n) const
 by external function. This is for the default user
 which doesn't care for several possibilities
{return nAssignedPID;}
void setPid(Short_t npid)
 set the assigned pid by external decision mechanism
{nAssignedPID=npid;}
void setTestVal(Float_t f)
{ fTestVal = f; }
Float_t getTestVal(void)
{ return fTestVal; }
Float_t getWeight(Short_t n) const
void            setWeight(Float_t f)            { fWeight = f;           }
{ return fWeight; }
Float_t getMassIdeal(void)
 function for masking the 'proabilistic nature' of the particle - returning the ideal mass value for the assigned species
{return HPidPhysicsConstants::mass(getPid());}
void setMomRescal(Float_t f)
The momentum of the particle might be rescaled in order to fulfill the relativistic
energy momentum relation after assignment of an ideal mass.
{ fMomRescal = f; }
Float_t getMomRescal(void)
{ return fMomRescal; }
void Print(Option_t* option = "") const
{ print(); }
const HPidHitData* getHitData(void)
{ return &itsHitData;}
const HPidTrackData* getTrackData(void)
{ return &itsTrackData;}
Int_t getNPossibleSpecies(void)
{return nPossibleSpecies;}

Author: Marcin Jaskula 30/11/2002
Last change: Sat May 22 13:07:15 2010
Last generated: 2010-05-22 13:07

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.