#include "hpidgeanttrackset.h" |
HPidGeantTrackSet
class description - source file - inheritance tree (.pdf)
protected:
void bringCorrelatedDetectorsToFront()
void diagnosis()
Int_t findFirstHitInTof(Int_t trackID, Int_t* count, Int_t storeFirstTrack = 2)
Bool_t isSingleDetector(UInt_t flag)
void sortCorrelatedDetectors()
void sortSingleDetectors()
void sortsmart()
void swap(Int_t i, Int_t j, TArrayF& array)
void swap(Int_t i, Int_t j, TArrayI& array)
void swapVectors(Int_t i, Int_t j)
public:
HPidGeantTrackSet()
HPidGeantTrackSet(const HPidGeantTrackSet& source)
virtual ~HPidGeantTrackSet()
Int_t addToContributingTracks(Int_t index, UInt_t detector)
void addTrackWeightToDetector(Float_t weight, Int_t trackID, UInt_t detector)
TLorentzVector* buildGeantLorentzVector(Int_t iPos = 0) const
TVector3* buildGeantMomentumVector(Int_t iPos = 0) const
static TClass* Class()
virtual void Clear(Option_t* opt)
Int_t enlargeArrays()
void fillFromMetaMatch(HMetaMatch* pMetaMatch)
UInt_t getCorrelationFlag(Int_t i = 0) const
Int_t getGeantGrandParentID(Int_t i = 0) const
Int_t getGeantGrandParentTrackID(Int_t i = 0) const
static HGeantKine* getGeantKine(Int_t iTrack, HCategory* pCat = 0)
Int_t getGeantMediumID(Int_t i = 0) const
Float_t getGeantMomX(Int_t i = 0) const
Float_t getGeantMomY(Int_t i = 0) const
Float_t getGeantMomZ(Int_t i = 0) const
Int_t getGeantParentID(Int_t i = 0) const
Int_t getGeantParentTrackID(Int_t i = 0) const
Int_t getGeantPID(Int_t i = 0) const
Int_t getGeantProcessID(Int_t i = 0) const
Int_t getGeantTrackID(Int_t i = 0) const
Float_t getGeantVertexX(Int_t i = 0) const
Float_t getGeantVertexY(Int_t i = 0) const
Float_t getGeantVertexZ(Int_t i = 0) const
Float_t getGenInfo(Int_t i = 0) const
Float_t getGenInfo1(Int_t i = 0) const
Float_t getGenInfo2(Int_t i = 0) const
Float_t getGenWeight(Int_t i = 0) const
Short_t getInnerMdcTrack(UInt_t n) const
Float_t getInnerMdcWeight(UInt_t iIdx) const
Short_t getMetaTrack(UInt_t n) const
Bool_t getMomentumComponents(Float_t& momx, Float_t& momy, Float_t& momz, Int_t i = 0)
Short_t getMostCommonCorrelation() const
UInt_t getNCorrelatedTrackIds() const
UInt_t getNInnerMdcTracks() const
UInt_t getNMetaTracks() const
UInt_t getNOuterMdcTracks() const
UInt_t getNRichIPUTracks() const
UInt_t getNRichTracks() const
UInt_t getNShowerTracks() const
UInt_t getNTOFTracks() const
Short_t getOuterMdcTrack(UInt_t n) const
Float_t getOuterMdcWeight(UInt_t iIdx) const
Int_t getParticleIndex(Int_t trackID)
Short_t getRichIPUTrack(UInt_t n) const
Float_t getRichIPUWeight(UInt_t iIdx) const
Short_t getRichTrack(UInt_t n) const
Float_t getRichWeight(UInt_t iIdx) const
Short_t getShowerTrack(UInt_t n) const
Float_t getShowerWeight(UInt_t iIdx) const
Short_t getTOFTrack(UInt_t n) const
Float_t getTOFWeight(UInt_t iIdx) const
Float_t getTotalMomentum(Int_t i = 0) const
virtual TClass* IsA() const
Bool_t isPartOfTrackSet(Int_t trackID)
HPidGeantTrackSet& operator=(const HPidGeantTrackSet&)
virtual void Print(Option_t* option) const
void print() const
void reset()
virtual void ShowMembers(TMemberInspector& insp, char* parent)
Int_t shrinkArrays()
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
Bool_t wasSeenInDetector(const UInt_t flag, const UInt_t detector, Bool_t verbose = kFALSE) const
protected:
Bool_t isSorted indicates whether the contributing tracks have been sorted according to
Short_t sNCorrTrackIds How many different geant Ids where found in this set of matched hits ?
UInt_t nRICHTracks
UInt_t nRICHIPUTracks
UInt_t nInnerMdcTracks
UInt_t nOuterMdcTracks
UInt_t nShowerTracks
UInt_t nTOFTracks
TArrayI correlatedTrackIds [sNCorrTrackIds] // A unique list of correlated Ids - size is fixed to avoid new delete calls!
TArrayI correlationFlags [sNCorrTrackIds] // List of bit patterns storing which detectors saw the tracks in corrTrackIds
TArrayI ProcessIds [sNCorrTrackIds] // A list of the processes in which the correlated particles have been made
TArrayI ParentIds [sNCorrTrackIds ] // A list of the parent IDs of the correlated particles
TArrayI Parents [sNCorrTrackIds ] // A list of the parents track IDs of the correlated particles
TArrayI GrandParentIds [sNCorrTrackIds ] // A list of the grand parent IDs of the correlated particles
TArrayI GrandParents [sNCorrTrackIds ] // A list of the grand parents track IDs of the correlated particles
TArrayF GenInfo [sNCorrTrackIds ]
TArrayF GenInfo1 [sNCorrTrackIds ]
TArrayF GenInfo2 [sNCorrTrackIds ]
TArrayF GenWeight [sNCorrTrackIds ]
TArrayF VertexX [sNCorrTrackIds] // X,Y,Z Coordinate of the particles creation vertex
TArrayF VertexY [sNCorrTrackIds]
TArrayF VertexZ [sNCorrTrackIds]
TArrayI GeantPIDs [sNCorrTrackIds] // A list of the Geant PIDs of the correlated particles
TArrayI MediumIds [sNCorrTrackIds] // A list of the Medium IDs in which the correlated particles were created
TArrayF GeantMomX [sNCorrTrackIds] // Arrays holding the three momentum-components of all involved particles
TArrayF GeantMomY [sNCorrTrackIds]
TArrayF GeantMomZ [sNCorrTrackIds]
TArrayF ShowerWeights [sNCorrTrackIds] // Weights of all contributing particles to the hits that where reconstructed
TArrayF TOFWeights [sNCorrTrackIds] // in the different subsystems
TArrayF RICHWeights [sNCorrTrackIds]
TArrayF RICHIPUWeights [sNCorrTrackIds]
TArrayF InnerMDCWeights [sNCorrTrackIds]
TArrayF OuterMDCWeights [sNCorrTrackIds]
TArrayI hasHitInShower [sNCorrTrackIds] // Booleans indicating the systems (0,1) in which a contributing particle
TArrayI hasHitInTOF [sNCorrTrackIds] // has been seen
public:
static const enum HPidGeantTrackSet:: kOutOfBound
static Int_t nullparent
HPidGeantTrackSet
Geant tracks matched in HPidTrackCand
HPidGeantTrackSet(const HPidGeantTrackSet& source)
void reset(void)//OK
Bool_t wasSeenInDetector(const UInt_t flag, const UInt_t detector,Bool_t verbose) const //OK
Short_t getRichTrack(UInt_t iIdx) const //OK
Get iIdx-th track from list of correlated tracks that was seen in RICH
Short_t getRichIPUTrack(UInt_t iIdx) const //OK
Get iIdx-th track from list of correlated tracks that was seen in RICH-IPU
Short_t getInnerMdcTrack(UInt_t iIdx) const //OK
Get iIdx-th track from list of correlated tracks that was seen in the inner MDC
Short_t getOuterMdcTrack(UInt_t iIdx) const//OK
Get iIdx-th track from list of correlated tracks that was seen in the outer MDC
Short_t getTOFTrack(UInt_t iIdx) const//OK
Get iIdx-th track from list of correlated tracks that was seen in TOF
Short_t getShowerTrack(UInt_t iIdx) const//OK
Get iIdx-th track from list of correlated tracks that was seen in Shower
Short_t getMetaTrack(UInt_t iIdx) const//Well
Get iIdx-th track from list of correlated tracks that was seen in META
HGeantKine* getGeantKine(Int_t iTrack, HCategory *pCat)//OK
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)//OK
void swap(Int_t i, Int_t j, TArrayI& array)//OK
void swap(Int_t i, Int_t j, TArrayF& array) //OK
void sortsmart(void) //OK
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() //OK
We loop over all contributing particles
void sortCorrelatedDetectors() //OK
void sortSingleDetectors() //OK
Bool_t isSingleDetector(UInt_t flag) //OK
Bool_t getMomentumComponents(Float_t& momx, Float_t& momy, Float_t& momz, Int_t index)//OK
Float_t getTotalMomentum(Int_t index) const //OK
void fillFromMetaMatch(HMetaMatch* pMetaMatch) //OK
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.
Int_t shrinkArrays(void) //OK
Int_t enlargeArrays(void) //OK
void diagnosis() //OK
void Clear(Option_t *opt) //OK
void addTrackWeightToDetector(Float_t weight, Int_t trackID, UInt_t detector) //OK
Int_t getParticleIndex(Int_t trackID)//OK
Bool_t isPartOfTrackSet(Int_t trackID)//OK
TLorentzVector* buildGeantLorentzVector(Int_t iPos) const //OK
Build TLorentzVector from the momentum and the particle mass from the track at position iPos in the array
TVector3* buildGeantMomentumVector(Int_t iPos) const //OK
Int_t addToContributingTracks(Int_t trackID, UInt_t detector) //OK
UInt_t getNMetaTracks(void) const //OK
void print(void) const //OK
Print all the members
Int_t findFirstHitInTof(Int_t trackID,Int_t* count,Int_t storeFirstTrack)
-------------------------------------------------
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
Float_t getRichWeight(UInt_t iIdx) const
Float_t getRichIPUWeight(UInt_t iIdx) const
Float_t getInnerMdcWeight(UInt_t iIdx) const
Float_t getOuterMdcWeight(UInt_t iIdx) const
Float_t getTOFWeight(UInt_t iIdx) const
Float_t getShowerWeight(UInt_t iIdx) const
Inline Functions
void ~HPidGeantTrackSet()
HPidGeantTrackSet HPidGeantTrackSet(const HPidGeantTrackSet& source)
UInt_t getNRichTracks() const
UInt_t getNRichIPUTracks() const
UInt_t getNInnerMdcTracks() const
UInt_t getNOuterMdcTracks() const
UInt_t getNShowerTracks() const
UInt_t getNTOFTracks() const
UInt_t getNCorrelatedTrackIds() const
Short_t getMostCommonCorrelation() const
void Print(Option_t* option) const
UInt_t getCorrelationFlag(Int_t i = 0) const
Int_t getGeantTrackID(Int_t i = 0) const
Int_t getGeantPID(Int_t i = 0) const
Int_t getGeantParentID(Int_t i = 0) const
Int_t getGeantParentTrackID(Int_t i = 0) const
Int_t getGeantGrandParentID(Int_t i = 0) const
Int_t getGeantGrandParentTrackID(Int_t i = 0) const
Float_t getGenInfo(Int_t i = 0) const
Float_t getGenInfo1(Int_t i = 0) const
Float_t getGenInfo2(Int_t i = 0) const
Float_t getGenWeight(Int_t i = 0) const
Float_t getGeantVertexX(Int_t i = 0) const
Float_t getGeantVertexY(Int_t i = 0) const
Float_t getGeantVertexZ(Int_t i = 0) const
Int_t getGeantMediumID(Int_t i = 0) const
Int_t getGeantProcessID(Int_t i = 0) const
Float_t getGeantMomX(Int_t i = 0) const
Float_t getGeantMomY(Int_t i = 0) const
Float_t getGeantMomZ(Int_t i = 0) const
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
HPidGeantTrackSet& operator=(const HPidGeantTrackSet&)
Author: Marcin Jaskula 11/11/2002
Last update: Fri Jan 26 12:22:18 2007
ROOT page - Class index - Class Hierarchy - Top of the page
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.