class HPidGeantTrackSet: public TObject

_HADES_CLASS_DESCRIPTION


HPidGeantTrackSet

Geant tracks matched in HPidTrackCand


Function Members (Methods)

public:
HPidGeantTrackSet()
HPidGeantTrackSet(const HPidGeantTrackSet& source)
virtual~HPidGeantTrackSet()
voidTObject::AbstractMethod(const char* method) const
Int_taddToContributingTracks(Int_t index, UInt_t detector)
voidaddTrackWeightToDetector(Float_t weight, Int_t trackID, UInt_t detector)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
TLorentzVector*buildGeantLorentzVector(Int_t iPos = 0) const
TVector3*buildGeantMomentumVector(Int_t iPos = 0) const
voidcheckPrimaryOrigin()
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
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
Int_tenlargeArrays()
virtual voidTObject::Error(const char* method, const char* msgfmt) const
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
voidfillFromMetaMatch(HMetaMatch* pMetaMatch)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
UInt_tgetCorrelationFlag(Int_t i = 0) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Int_tgetGeantGrandParentID(Int_t i = 0) const
Int_tgetGeantGrandParentTrackID(Int_t i = 0) const
static HGeantKine*getGeantKine(Int_t iTrack, HCategory* pCat = 0)
Int_tgetGeantMediumID(Int_t i = 0) const
Float_tgetGeantMomX(Int_t i = 0) const
Float_tgetGeantMomY(Int_t i = 0) const
Float_tgetGeantMomZ(Int_t i = 0) const
Int_tgetGeantParentID(Int_t i = 0) const
Int_tgetGeantParentTrackID(Int_t i = 0) const
Int_tgetGeantPID(Int_t i = 0) const
Int_tgetGeantProcessID(Int_t i = 0) const
Int_tgetGeantTrackID(Int_t i = 0) const
Float_tgetGeantVertexX(Int_t i = 0) const
Float_tgetGeantVertexY(Int_t i = 0) const
Float_tgetGeantVertexZ(Int_t i = 0) const
Float_tgetGenInfo(Int_t i = 0) const
Float_tgetGenInfo1(Int_t i = 0) const
Float_tgetGenInfo2(Int_t i = 0) const
Float_tgetGenWeight(Int_t i = 0) const
virtual const char*TObject::GetIconName() const
Short_tgetInnerMdcTrack(UInt_t n) const
Float_tgetInnerMdcWeight(UInt_t iIdx) const
Short_tgetMetaTrack(UInt_t n) const
Bool_tgetMomentumComponents(Float_t& momx, Float_t& momy, Float_t& momz, Int_t i = 0)
Short_tgetMostCommonCorrelation() const
virtual const char*TObject::GetName() const
UInt_tgetNCorrelatedTrackIds() const
UInt_tgetNInnerMdcTracks() const
UInt_tgetNMetaTracks() const
UInt_tgetNOuterMdcTracks() const
UInt_tgetNRichIPUTracks() const
UInt_tgetNRichTracks() const
UInt_tgetNShowerTracks() const
UInt_tgetNTOFTracks() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Short_tgetOuterMdcTrack(UInt_t n) const
Float_tgetOuterMdcWeight(UInt_t iIdx) const
Int_tgetParticleIndex(Int_t trackID)
Bool_tgetPrimaryFlag() const
Short_tgetRichIPUTrack(UInt_t n) const
Float_tgetRichIPUWeight(UInt_t iIdx) const
Short_tgetRichTrack(UInt_t n) const
Float_tgetRichWeight(UInt_t iIdx) const
Short_tgetShowerTrack(UInt_t n) const
Float_tgetShowerWeight(UInt_t iIdx) const
virtual const char*TObject::GetTitle() const
Short_tgetTOFTrack(UInt_t n) const
Float_tgetTOFWeight(UInt_t iIdx) const
Float_tgetTotalMomentum(Int_t i = 0) const
virtual UInt_tTObject::GetUniqueID() 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
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
Bool_tisPartOfTrackSet(Int_t trackID)
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) 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)
HPidGeantTrackSet&operator=(const HPidGeantTrackSet&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
voidprint() const
virtual voidPrint(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidreset()
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
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)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
Int_tshrinkArrays()
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
Bool_twasSeenInDetector(const UInt_t flag, const UInt_t detector, Bool_t verbose = kFALSE) 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
protected:
voidbringCorrelatedDetectorsToFront()
voiddiagnosis()
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
Int_tfindFirstHitInTof(Int_t trackID, Int_t* count, Int_t storeFirstTrack = 2)
Bool_tisSingleDetector(UInt_t flag)
voidTObject::MakeZombie()
voidsortCorrelatedDetectors()
voidsortSingleDetectors()
voidsortsmart()
voidswap(Int_t i, Int_t j, TArrayF& array)
voidswap(Int_t i, Int_t j, TArrayI& array)
voidswapVectors(Int_t i, Int_t j)

Data Members

public:
enum { kOutOfBound
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
public:
static Int_tnullparent
protected:
TArrayFGeantMomX[sNCorrTrackIds] // Arrays holding the three momentum-components of all involved particles
TArrayFGeantMomY[sNCorrTrackIds]
TArrayFGeantMomZ[sNCorrTrackIds]
TArrayIGeantPIDs[sNCorrTrackIds] // A list of the Geant PIDs of the correlated particles
TArrayFGenInfo[sNCorrTrackIds ]
TArrayFGenInfo1[sNCorrTrackIds ]
TArrayFGenInfo2[sNCorrTrackIds ]
TArrayFGenWeight[sNCorrTrackIds ]
TArrayIGrandParentIds[sNCorrTrackIds ] // A list of the grand parent IDs of the correlated particles
TArrayIGrandParents[sNCorrTrackIds ] // A list of the grand parents track IDs of the correlated particles
TArrayFInnerMDCWeights[sNCorrTrackIds]
TArrayIMediumIds[sNCorrTrackIds] // A list of the Medium IDs in which the correlated particles were created
TArrayFOuterMDCWeights[sNCorrTrackIds]
TArrayIParentIds[sNCorrTrackIds ] // A list of the parent IDs of the correlated particles
TArrayIParents[sNCorrTrackIds ] // A list of the parents track IDs of the correlated particles
TArrayIProcessIds[sNCorrTrackIds] // A list of the processes in which the correlated particles have been made
TArrayFRICHIPUWeights[sNCorrTrackIds]
TArrayFRICHWeights[sNCorrTrackIds]
TArrayFShowerWeights[sNCorrTrackIds] // Weights of all contributing particles to the hits that where reconstructed
TArrayFTOFWeights[sNCorrTrackIds] // in the different subsystems
TArrayFVertexX[sNCorrTrackIds] // X,Y,Z Coordinate of the particles creation vertex
TArrayFVertexY[sNCorrTrackIds]
TArrayFVertexZ[sNCorrTrackIds]
Bool_tbIsLepFromPrimary
TArrayIcorrelatedTrackIds[sNCorrTrackIds] // A unique list of correlated Ids - size is fixed to avoid new delete calls!
TArrayIcorrelationFlags[sNCorrTrackIds] // List of bit patterns storing which detectors saw the tracks in corrTrackIds
TArrayIhasHitInShower[sNCorrTrackIds] // Booleans indicating the systems (0,1) in which a contributing particle
TArrayIhasHitInTOF[sNCorrTrackIds] // has been seen
Bool_tisSortedindicates whether the contributing tracks have been sorted according to
UInt_tnInnerMdcTracks
UInt_tnOuterMdcTracks
UInt_tnRICHIPUTracks
UInt_tnRICHTracks
UInt_tnShowerTracks
UInt_tnTOFTracks
Short_tsNCorrTrackIdsHow many different geant Ids where found in this set of matched hits ?

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

HPidGeantTrackSet(const HPidGeantTrackSet& source)
void reset(void)
Bool_t wasSeenInDetector(const UInt_t flag, const UInt_t detector, Bool_t verbose = kFALSE) const
Short_t getRichTrack(UInt_t n) const
 Get iIdx-th track from list of correlated tracks that was seen in RICH
Short_t getRichIPUTrack(UInt_t n) const
 Get iIdx-th track from list of correlated tracks that was seen in RICH-IPU
Short_t getInnerMdcTrack(UInt_t n) const
 Get iIdx-th track from list of correlated tracks that was seen in the inner MDC
Short_t getOuterMdcTrack(UInt_t n) const
 Get iIdx-th track from list of correlated tracks that was seen in the outer MDC
Short_t getTOFTrack(UInt_t n) const
 Get iIdx-th track from list of correlated tracks that was seen in TOF
Short_t getShowerTrack(UInt_t n) const
 Get iIdx-th track from list of correlated tracks that was seen in Shower
Short_t getMetaTrack(UInt_t n) const
 Get iIdx-th track from list of correlated tracks that was seen in META
HGeantKine* getGeantKine(Int_t iTrack, HCategory* pCat = 0)
 Return HGeantKine object corresponding to iTrack from pCat.
 If the pCat is not set (NULL) catGeantKine category from gHades is used.
void swapVectors(Int_t i, Int_t j)
void swap(Int_t i, Int_t j, TArrayI& array)
void swap(Int_t i, Int_t j, TArrayF& array)
void sortsmart(void)
1. All particles which where seen in more than one detector are arranged BEFORE any particle that was seen in
   only one single subsystem. This is required because lonely hits in META have a HIGH bit (64) and would therefore
   be ranked higher than a combination of the three inner detectors. Anyway we mostly care for CORRELATIONS
   between detectors, so we bring the relevant particle indices to the front of the array.
void bringCorrelatedDetectorsToFront()
We loop over all contributing particles
void sortCorrelatedDetectors()
void sortSingleDetectors()
Bool_t isSingleDetector(UInt_t flag)
Bool_t getMomentumComponents(Float_t& momx, Float_t& momy, Float_t& momz, Int_t i = 0)
Float_t getTotalMomentum(Int_t i = 0) const
void fillFromMetaMatch(HMetaMatch* pMetaMatch)

 Each track Id found in any of the hits is added once (and only once)
 to the list of correlated tracks. We store the degree of correlation right
 from the beginning in the datamembers correlatedTrackIds and correlationFlags.
 Also the geant PID, parent and process ID momentum, medium and system are
 stored in the corresponding arrays at the position corresponing to the position
 of the added particle. The common tracks are implicitly ranked by their degree of
 commonness using the following numerical code mapped to user-friendly names:

 kTrackNotSet         = 0x00,  // This object does not contain valid data
 kSeenInRICHIPU       = 0x01,  // RICH IPU has seen this trackid

 kSeenInOuterMDC      = 0x02,  // Outer Mdc has seen this trackid
 kSeenInRICH          = 0x04,  // RICH has seen this trackid
 kSeenInInnerMDC      = 0x08,  // Inner Mdc has seen this trackid

 kSeenInTOF           = 0x10,  // TOF has seen this trackid
 kSeenInShower        = 0x20,  // Shower has seen this trackid
 kSeenInMETA          = 0x40,  // One of the Meta dets has seen this trackid

 Thereby META detectors are ranked highest because there is no way to perform
 particle identification without a hit in META. The second-most important
 piece of information is the inner MDC segment because together with META data
 it allows momentum computation with KICKPLANE
 The third highest numerical code is given to the RICH ring because together with
 KICKTRACKS one can do lepton analysis if a ring is present.
 Outer MDC segments are given the lowest number because they are not essential
 for candidate searching. They only allow to apply high-resolution tracking.


void checkPrimaryOrigin(void)
Int_t shrinkArrays(void)
Int_t enlargeArrays(void)
void diagnosis()
void Clear(Option_t* opt = "")
void addTrackWeightToDetector(Float_t weight, Int_t trackID, UInt_t detector)
Int_t getParticleIndex(Int_t trackID)
Bool_t isPartOfTrackSet(Int_t trackID)
TLorentzVector* buildGeantLorentzVector(Int_t iPos = 0) const
 Build TLorentzVector from the momentum and the particle mass from the track at position iPos in the array
TVector3* buildGeantMomentumVector(Int_t iPos = 0) const
Int_t addToContributingTracks(Int_t index, UInt_t detector)
UInt_t getNMetaTracks(void)
void print(void)
 Print all the members
Int_t findFirstHitInTof(Int_t trackID, Int_t* count, Int_t storeFirstTrack = 2)
 find the first track ID entering the TOF
 Used to suppress the secondaries created in the
 TOF itself.
        0 = realistic (secondaries included)
        1 primary particle is stored
        2 (default) the first track number entering the tof in SAME SECTOR is stored
        3 as 2 but condition on SAME SECTOR && MOD
        4 as 2 but SAME SECTOR && MOD && ROD
HPidGeantTrackSet(const HPidGeantTrackSet& source)
{ reset(); }
virtual ~HPidGeantTrackSet(void)
{}
Float_t getRichWeight(UInt_t iIdx) const
return the weight at counter-position iIdx in the array of track-weights
which contributed to the ring
{return RICHWeights[iIdx];}
Float_t getInnerMdcWeight(UInt_t iIdx) const
{return InnerMDCWeights[iIdx];}
Float_t getOuterMdcWeight(UInt_t iIdx) const
{return OuterMDCWeights[iIdx];}
Float_t getShowerWeight(UInt_t iIdx) const
{return ShowerWeights[iIdx];}
Float_t getTOFWeight(UInt_t iIdx) const
{return TOFWeights[iIdx];}
Float_t getRichIPUWeight(UInt_t iIdx) const
Float_t     getMetaWeight(UInt_t iIdx);
{return RICHIPUWeights[iIdx];}
UInt_t getNRichTracks(void)
Get number of tracks contributing to the detector hits
{return nRICHTracks;}
UInt_t getNRichIPUTracks(void)
{return nRICHIPUTracks;}
UInt_t getNInnerMdcTracks(void)
{return nInnerMdcTracks;}
UInt_t getNOuterMdcTracks(void)
{return nOuterMdcTracks;}
UInt_t getNShowerTracks(void)
{return nShowerTracks;}
UInt_t getNTOFTracks(void)
{return nTOFTracks;}
UInt_t getNCorrelatedTrackIds(void)
{return sNCorrTrackIds;}
Bool_t getPrimaryFlag(void)
{return bIsLepFromPrimary;}
Short_t getMostCommonCorrelation() const
What was the strongest correlation in this set of hits? (Which is the largest set of detectors that saw the same particle)
void Print(Option_t* option = "") const
{ print(); }
UInt_t getCorrelationFlag(Int_t i = 0) const
Get information from the geant-info arrays by index
{return correlationFlags[i];}
Int_t getGeantTrackID(Int_t i = 0) const
{return correlatedTrackIds[i];}
Int_t getGeantPID(Int_t i = 0) const
{return GeantPIDs[i];}
Int_t getGeantParentID(Int_t i = 0) const
{return ParentIds[i];}
Int_t getGeantParentTrackID(Int_t i = 0) const
{return Parents[i];}
Int_t getGeantGrandParentID(Int_t i = 0) const
{return GrandParentIds[i];}
Int_t getGeantGrandParentTrackID(Int_t i = 0) const
{return GrandParents[i];}
Float_t getGenInfo(Int_t i = 0) const
{return GenInfo[i];}
Float_t getGenInfo1(Int_t i = 0) const
{return GenInfo1[i];}
Float_t getGenInfo2(Int_t i = 0) const
{return GenInfo2[i];}
Float_t getGenWeight(Int_t i = 0) const
{return GenWeight[i];}
Float_t getGeantVertexX(Int_t i = 0) const
{return VertexX[i];}
Float_t getGeantVertexY(Int_t i = 0) const
{return VertexY[i];}
Float_t getGeantVertexZ(Int_t i = 0) const
{return VertexZ[i];}
Int_t getGeantMediumID(Int_t i = 0) const
{return MediumIds[i];}
Int_t getGeantProcessID(Int_t i = 0) const
{return ProcessIds[i];}
Float_t getGeantMomX(Int_t i = 0) const
{return GeantMomX[i];}
Float_t getGeantMomY(Int_t i = 0) const
{return GeantMomY[i];}
Float_t getGeantMomZ(Int_t i = 0) const
{return GeantMomZ[i];}

Author: Marcin Jaskula 01/12/2002
Last change: Sat May 22 13:07:07 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.