ROOT logo
HYDRA - THE HADES ANALYSIS PACKAGE » (UNKNOWN) » HParticlePair

class HParticlePair: public TLorentzVector

_HADES_CLASS_DESCRIPTION



 HParticlePair

 a pair build of 2 HVirtualCand objects. Opening Angle + Vertex variables
 are calulated when the pair is set.  With static HParticlePair::setDoMomentumCorrection(Bool_t doit)
 Particle momenta are corrected for energyloss (default: kTRUE).


Function Members (Methods)

public:
HParticlePair()
HParticlePair(const HParticlePair&)
virtual~HParticlePair()
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)
Bool_tcalcVectors(Int_t pid1, Int_t pid2, Int_t motherpid, HGeomVector& vertex)
Bool_tcheckStatus(UInt_t flag)
static TClass*Class()
virtual const char*TObject::ClassName() const
voidclear()
virtual voidTObject::Clear(Option_t* = "")
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
HVirtualCand*getCand(Int_t ind)
Int_tgetCandPID(Int_t ind)
HVirtualCandSim*getCandSim(Int_t ind)
TLorentzVector&getCandVect(Int_t ind)
HGeomVector&getDecayVertex()
static Bool_tgetDoMomentumCorrection()
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
HGeomVector&getEventVertex()
HVirtualCandSim*getFirstDaughter()
virtual const char*TObject::GetIconName() const
Bool_tgetIsSimulation()
Float_tgetMinDistCandidates()
Int_tgetMotherPID()
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
Float_tgetOpeningAngle()
virtual Option_t*TObject::GetOption() const
HParticlePair*getPair(Int_t ind)
UInt_tgetPairFlags()
Float_tgetPhi()
voidgetSourceInfo(Int_t index, Int_t& parentTr, Int_t& grandparenttr, Int_t& geninfo, Int_t& geninfo1, Int_t& geninfo2)
UInt_tgetStatusFlags()
Float_tgetTheta()
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Float_tgetVerDistMother()
Float_tgetVerMinDistCand(Int_t ind)
Float_tgetVerMinDistMother()
voidTLorentzVector::GetXYZT(Double_t* carray) const
voidTLorentzVector::GetXYZT(Float_t* carray) const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
Int_tindex(Int_t pid)
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
Int_tisFakePair()
virtual Bool_tTObject::IsFolder() const
Bool_tisGeantDecay()
Bool_tTObject::IsOnHeap() const
Bool_tisSameExternalSource()
virtual Bool_tTObject::IsSortable() const
Bool_tisTruePair()
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()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
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)
HParticlePair&operator=(const HParticlePair&)
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_tTLorentzVector::Plus() const
virtual voidTObject::Pop()
voidprint(UInt_t selection = 63)
virtual voidTLorentzVector::Print(Option_t* option = "") const
voidprintFlags()
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(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
static voidsetDoMomentumCorrection(Bool_t doit)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidTLorentzVector::SetE(Double_t a)
static voidTObject::SetObjectStat(Bool_t stat)
Bool_tsetPair(HVirtualCand* cnd1, Int_t pid1, HVirtualCand* cnd2, Int_t pid2, Int_t motherpid, UInt_t pairflags, HGeomVector& vertex)
Bool_tsetPair(HParticlePair* cnd1, Int_t pid1, HVirtualCand* cnd2, Int_t pid2, Int_t motherpid, UInt_t pairflags, HGeomVector& vertex)
Bool_tsetPair(HParticlePair* cnd1, Int_t pid1, HParticlePair* cnd2, Int_t pid2, Int_t motherpid, UInt_t pairflags, HGeomVector& vertex)
voidTLorentzVector::SetPerp(Double_t r)
voidTLorentzVector::SetPhi(Double_t phi)
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)
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&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_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
TLorentzVector&TLorentzVector::Transform(const TRotation& m)
TLorentzVector&TLorentzVector::Transform(const TLorentzRotation&)
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:
Bool_tcalcVertex()
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
Bool_tisSimulation()
voidTObject::MakeZombie()
voidsetTruePair()

Data Members

protected:
HGeomVectorfDecayVertexsecondary vertex of both candidates
static Bool_tfDoMomCorrection!
HGeomVectorfEventVertexused event vertex
Bool_tfIsSimulationkTRUE if HVirtualCandSim is used
Float_tfMinDistCandidatesvertex cut vars : mindist between cand1 and cand2
Int_tfMotherPIDassigned PID for Mother
Int_tfPID[2]assigned PID for cand1 and cand2
Float_tfVerDistMothervertex cut vars
Float_tfVerMinDistCand[2]vertex cut vars : mindist cand1 and cand2 to event vertex
Float_tfVerMinDistMothervertex cut vars : mindist mother to event vertex
TLorentzVectorfc[2]local copy of lorentz vector of cand1 and cand2
HVirtualCand*fcand[2]! pointer to cand1 (reference: should be a lepton candidate) and cand2
Float_tfoAngleopening angle of pair [deg]
HParticlePair*fpair[2]! pointer to cand1 and cand2 from pairs
UInt_tfpairFlagspair classifier
UInt_tfstatusFlagsbit 0x01 true cand1

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

HParticlePair()
~HParticlePair()
Bool_t isSimulation()
 checks if pair is created by sim objects
Int_t isFakePair()
Bool_t isTruePair()
Bool_t calcVertex()
Bool_t calcVectors(Int_t pid1, Int_t pid2, Int_t motherpid, HGeomVector& vertex)
 sets fPID1,fPID2,fMotherPID and fills lorentz vectors
 opening Angle etc.
HVirtualCandSim* getFirstDaughter()
 returns the pointer to the first valid daughter
 returns 0 if no valid daughter is found
Bool_t isGeantDecay()
 returns true if both daughters
 have a parentTrack > 0 (mother is inside GEANT)
 both parent tracks are the same

Bool_t isSameExternalSource()
 returns true if both daughters
 have a parentTrack = 0 (mother is outside GEANT)
 and the stem form the same source (geninfo > 0,
 geninfo and geninfo2 are equal)
void getSourceInfo(Int_t index, Int_t& parentTr, Int_t& grandparenttr, Int_t& geninfo, Int_t& geninfo1, Int_t& geninfo2)
 returns parent track, grand parent track, geninfo and
 geninfo2 of the daughter with index (first valid daughter if index==-1).
void setTruePair()
Bool_t setPair(HVirtualCand* cnd1, Int_t pid1, HVirtualCand* cnd2, Int_t pid2, Int_t motherpid, UInt_t pairflags, HGeomVector& vertex)
 sets pairflags , candidates and calls
 calcvectors. Supposed to be called at initial
 filling.
Bool_t setPair(HParticlePair* cnd1, Int_t pid1, HVirtualCand* cnd2, Int_t pid2, Int_t motherpid, UInt_t pairflags, HGeomVector& vertex)
 sets pairflags , candidates and calls
 calcvectors. Supposed to be called at initial
 filling. candidate1 will be filled from
 mother + decay vertex from the pair.
Bool_t setPair(HParticlePair* cnd1, Int_t pid1, HParticlePair* cnd2, Int_t pid2, Int_t motherpid, UInt_t pairflags, HGeomVector& vertex)
 sets pairflags , candidates and calls
 calcvectors. Supposed to be called at initial
 filling. candidate1 and candidate2 will be filled from
 mother + decay vertex from the pair.
void printFlags()
 print pairs flags
void print(UInt_t selection = 63)
 print option bits
 bit   1 : print particle infos                      (selection == 1)
       2 : print pids, oAngle and polarities         (selection == 2)
       3 : print hit indices and META selection info (selection == 4)
       4 : print vertex infos                        (selection == 8)
       4 : print pair flags                          (selection == 16)
 default : print all
void clear()
 clears all data elements but not vectors!
HParticlePair()
HVirtualCand* getCand(Int_t ind)
{ return fcand[ind]; }
HParticlePair* getPair(Int_t ind)
{ return fpair[ind]; }
HVirtualCandSim* getCandSim(Int_t ind)
{ return dynamic_cast<HVirtualCandSim*>(fcand[ind]); }
TLorentzVector& getCandVect(Int_t ind)
{ return fc[ind];}
Int_t index(Int_t pid)
{ return fPID[0] == pid ? 0 : 1; }
Float_t getOpeningAngle()
{ return foAngle; }
Float_t getPhi()
{ return (Phi() < 0 ? Phi()*TMath::RadToDeg()+360 : Phi()*TMath::RadToDeg());}
Float_t getTheta()
{ return Theta()*TMath::RadToDeg();}
Int_t getCandPID(Int_t ind)
{ return fPID[ind];}
Int_t getMotherPID()
{ return fMotherPID;}
UInt_t getPairFlags()
{ return fpairFlags ;}
Bool_t getIsSimulation()
{ return fIsSimulation;}
Float_t getVerMinDistCand(Int_t ind)
{ return fVerMinDistCand[ind];}
Float_t getVerMinDistMother()
Float_t getMinDistCandidates()
Float_t getVerDistMother()
{ return fVerDistMother;}
HGeomVector& getEventVertex()
{ return fEventVertex; }
HGeomVector& getDecayVertex()
{ return fDecayVertex; }
UInt_t getStatusFlags()
{ return fstatusFlags; }
Bool_t checkStatus(UInt_t flag)
{ return (fstatusFlags|flag) == flag ? kTRUE: kFALSE; }
void setDoMomentumCorrection(Bool_t doit)
{ fDoMomCorrection = doit;}
Bool_t getDoMomentumCorrection()
{ return fDoMomCorrection ;}