HGeantKine
class description - source file - inheritance tree (.pdf)
private:
HLinkedDataObject* nextHit(HCategory* p, Int_t& next)
Int_t setHitIndex(HCategory* p, Short_t& first, Int_t index)
public:
HGeantKine()
HGeantKine(HGeantKine& aKine)
~HGeantKine()
static TClass* Class()
static HGeantKine* getCommonAncestor(Int_t track1, Int_t track2, HLinearCategory* cat = 0)
void getCreator(Int_t& aPar, Int_t& aMed, Int_t& aMech)
Int_t getFirstMdcHit()
Int_t getFirstRichHit()
Int_t getFirstRpcHit()
Int_t getFirstShowerHit()
Int_t getFirstTofHit()
void getGenerator(Float_t& aInfo, Float_t& aWeight)
void getGenerator(Float_t& aInfo, Float_t& aInfo1, Float_t& aInfo2)
static HGeantKine* getGrandParent(Int_t track, HLinearCategory* cat = 0)
Int_t getID() const
UInt_t getMdcSectorBitArray()
UInt_t getMdcSectorDecimalArray()
void getMomentum(Float_t& apx, Float_t& apy, Float_t& apz)
void getMomentum(HGeomVector& v)
Int_t getNMdcHits()
Int_t getNMdcHits(Int_t module)
Int_t getNRichHits()
Int_t getNRpcHits()
Int_t getNShowerHits()
Int_t getNTofHits()
static HGeantKine* getParent(Int_t track, HLinearCategory* cat = 0)
Int_t getParentTrack() const
void getParticle(Int_t& aTrack, Int_t& aID)
static HGeantKine* getPrimary(Int_t track, HLinearCategory* cat = 0)
UInt_t getRichSectorBitArray()
UInt_t getRichSectorDecimalArray()
UInt_t getRpcSectorBitArray()
UInt_t getRpcSectorDecimalArray()
Int_t getSector()
UInt_t getSectorBitArray()
UInt_t getSectorDecimalArray()
UInt_t getShowerSectorBitArray()
UInt_t getShowerSectorDecimalArray()
Int_t getSystem()
UInt_t getTofSectorBitArray()
UInt_t getTofSectorDecimalArray()
Float_t getTotalMomentum() const
Int_t getTrack() const
Float_t getTransverseMomentum() const
void getVertex(Float_t& ax, Float_t& ay, Float_t& az)
Bool_t hasAncestor(Int_t track, HLinearCategory* cat = 0)
virtual TClass* IsA() const
Bool_t isActive() const
Bool_t isPrimary() const
Bool_t isSuppressed() const
HLinkedDataObject* nextMdcHit()
HLinkedDataObject* nextRichHit()
HLinkedDataObject* nextRpcHit()
HLinkedDataObject* nextShowerHit()
HLinkedDataObject* nextTofHit()
HGeantKine& operator=(const HGeantKine&)
void resetMdcIter()
void resetRichIter()
void resetRpcIter()
void resetShowerIter()
void resetTofIter()
void setActive(Bool_t flag = kTRUE)
static Bool_t setAllDescendentsActive(Int_t track, Bool_t flag = kTRUE, HLinearCategory* cat = 0)
static Bool_t setAllDescendentsSuppressed(Int_t track, Bool_t flag = kTRUE, HLinearCategory* cat = 0)
static Bool_t setChainActive(Int_t track, Bool_t flag = kTRUE, HLinearCategory* cat = 0)
void setCreator(Int_t aPar, Int_t aMed, Int_t aMech)
void setGenerator(Float_t aInfo, Float_t aWeight)
void setGenerator(Float_t aInfo, Float_t aInfo1, Float_t aInfo2)
void setMdcCategory(HCategory* p)
Int_t setMdcHitIndex(Int_t index)
void setMomentum(Float_t apx, Float_t apy, Float_t apz)
void setNewTrackNumber(Int_t track)
void setParentTrack(Int_t track)
void setParticle(Int_t aTrack, Int_t aID)
void setRichCategory(HCategory* p)
Int_t setRichHitIndex(Int_t index)
void setRpcCategory(HCategory* p)
Int_t setRpcHitIndex(Int_t index)
void setShowerCategory(HCategory* p)
Int_t setShowerHitIndex(Int_t index)
void setSuppressed(Bool_t flag = kTRUE)
void setTofCategory(HCategory* p)
Int_t setTofHitIndex(Int_t index)
void setVertex(Float_t ax, Float_t ay, Float_t az)
void setWeight(Float_t aWeight)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
void sortMdcHits()
void sortRichHits()
void sortRpcHits()
void sortShowerHits()
void sortTofHits()
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
static Bool_t suppressTracks(Int_t id, Float_t acceptedFraction, HLinearCategory* cat = 0)
private:
Int_t richIndex ! internal index variables
Int_t mdcIndex ! used to set up linked chains
Int_t tofIndex ! of hit objects
Int_t rpcIndex ! of hit objects
Int_t showIndex !
HCategory* pRich ! internal pointers to category
HCategory* pMdc ! used to set up linked chains
HCategory* pTof ! of hit objects
HCategory* pRpc ! of hit objects
HCategory* pShow !
protected:
Int_t trackNumber GEANT track number
Int_t parentTrack GEANT track number of parent particle
Int_t particleID GEANT particle ID number
Int_t mediumNumber GEANT medium of creation number
Int_t creationMechanism GEANT creation mechanism number
Float_t xVertex x of track vertex (in mm)
Float_t yVertex y
Float_t zVertex z
Float_t xMom x component of particle momentum (in MeV/c)
Float_t yMom y
Float_t zMom z
Float_t generatorInfo event generator info
Float_t generatorInfo1 additional event generator info
Float_t generatorInfo2 additional event generator info
Float_t generatorWeight associated weight
Short_t firstRichHit index of first hit in RICH category
Short_t firstMdcHit index of first hit in MDC category
Short_t firstTofHit index of first hit in TOF category
Short_t firstRpcHit index of first hit in RPC category
Short_t firstShowerHit index of first hit in SHOWER category
Bool_t active active flag (set if track participates in a hit)
Bool_t suppressed flag used to filter out particle hits before digitization
HGeantKine
GEANT KINE data on primary and secondary particles in the simulated event
***************************************************************************
Inline functions:
void setWeight(Float_t aWeight) Set weight of track
Int_t getTrack() const Get GEANT track number
Int_t getID() const Get GEANT particle id
Int_t getParentTrack() const Get parent track number
void setParentTrack(Int_t track) Set parent track number
Float_t getTotalMomentum() const Get particle momentum (Ptot)
Float_t getTransverseMomentum() const Get transverse momentum (Pt)
void getMomentum(HGeomVector& v) Get momentum vector
void setActive(Bool_t flag = kTRUE) Set track active/inactive
void setSuppressed(Bool_t flag = kTRUE) Set track suppressed/unsuppressed
Bool_t isActive() const Test if track is active
Bool_t isPrimary() const Test if track is a primary
Bool_t isSuppressed() const Test if track is suppressed
Int_t setRichHitIndex(Int_t index) Set index of RICH photon hit
Int_t setMdcHitIndex(Int_t index) Set index of MDC hit
Int_t setTofHitIndex(Int_t index) Set index of TOF hit
Int_t setRpcHitIndex(Int_t index) Set index of RPC hit
Int_t setShowerHitIndex(Int_t index) Set index of SHOWER hit
Int_t getFirstRichHit() Get index of first RICH photon hit of this track
Int_t getFirstMdcHit() Get index of first MDC hit of this track
Int_t getFirstTofHit() Get index of first TOF hit of this track
Int_t getFirstRpcHit() Get index of first TOF hit of this track
Int_t getFirstShowerHit() Get index of first RPC hit of this track
HLinkedDataObject* nextRichHit() Get pointer to next RICH photon hit in linked list
HLinkedDataObject* nextMdcHit() Get pointer to next MDC photon hit in linked list
HLinkedDataObject* nextTofHit() Get pointer to next TOF photon hit in linked list
HLinkedDataObject* nextShowerHit() Get pointer to next SHOWER hit in linked list
HLinkedDataObject* nextRpcHit() Get pointer to next RPC hit in linked list
void setRichCategory(HCategory* p) Set pointer to RICH photon hit category
void setMdcCategory(HCategory* p) Set pointer to MDC hit category
void setTofCategory(HCategory* p) Set pointer to TOF hit category
void setRpcCategory(HCategory* p) Set pointer to RPC hit category
void setShowerCategory(HCategory* p) Set pointer to SHOWER hit category
void resetRichIter() Reset iterator on RICH photon hits
void resetMdcIter() Reset iterator on MDC hits
void resetTofIter() Reset iterator on TOF hits
void resetRpcIter() Reset iterator on RPC hits
void resetShowerIter() Reset iterator on SHOWER hits
HGeantKine(void)
Default constructor.
HGeantKine(HGeantKine &aKine)
Copy constructor.
~HGeantKine(void)
Destructor.
void setParticle(Int_t aTrack, Int_t aID)
Set GEANT track and particle id.
void setCreator(Int_t aPar, Int_t aMed, Int_t aMech)
Set information on particle creation: parent track number, midium number, and creation mechanism.
void setVertex(Float_t ax, Float_t ay, Float_t az)
Set creation vertex (x,y,z in mm) in lab frame.
void setMomentum(Float_t apx, Float_t apy, Float_t apz)
Set particle momentum components at creation (in MeV/c).
void setGenerator(Float_t aInfo, Float_t aWeight)
Set information on generator and weight.
void setGenerator(Float_t aInfo, Float_t aInfo1, Float_t aInfo2)
Set full generator information.
void getParticle(Int_t &aTrack, Int_t &aID)
Retrieve GEANT track number and id.
void getCreator(Int_t &aPar, Int_t &aMed, Int_t &aMech)
Retrieve parenet track number, medium and mechanism of creation.
void getVertex(Float_t &ax, Float_t &ay, Float_t &az)
Retrieve creation vertex (in mm) in lab frame.
void getMomentum(Float_t &apx, Float_t &apy, Float_t &apz)
Retrieve momentum components at creation time.
void getGenerator(Float_t &aInfo, Float_t &aWeight)
Retrieve generator infomation and track weight.
void getGenerator(Float_t &aInfo, Float_t &aInfo1, Float_t &aInfo2)
Retrieve full generator information.
void setNewTrackNumber(Int_t track)
Set track number to new value and update indexes in all hit categories.
Used in HGeant to re-index after having suppressed non-active tracks;
see fillkine.cc.
Int_t setHitIndex(HCategory* pCat,Short_t& firstHit, Int_t index)
Set next hit index in generic linked list.
void sortRichHits(void)
Sort RICH photon hits in linked list for present track.
void sortMdcHits(void)
Sort MDC hits in linked list for actual track by increasing time-of-flight
(this is a simple bubble sort, should be replaced by something faster!).
As sortVariable is non-persistent, the sort cannot be done a posteriori,
i.e. when the tree is read back. It has to be done before writing!
void sortTofHits(void)
Sort TOF hits in linked list for present track.
void sortRpcHits(void)
Sort RPC hits in linked list for present track FIXME!! Is it ok??
void sortShowerHits(void)
Sort SHOWER hits in linked list for present track.
HLinkedDataObject* nextHit(HCategory* pCat,Int_t& index)
Return next hit in category made by present track.
Int_t getNRichHits(void)
Return number of RICH photon hits made by present track.
Int_t getNMdcHits(void)
Return number of MDC hits made by present track.
Int_t getNMdcHits(Int_t module)
Return number of MDC hits made by present track
for MDC module (range: [0,3]).
Int_t getNTofHits(void)
Return number of TOF hits made by present track.
Int_t getNRpcHits(void)
Return number of RPC hits made by present track.
Int_t getNShowerHits(void)
Return number of SHOWER hits made by present track.
Int_t getSystem(void)
Return system crossed by the present track
-1: no contact:
0: TOFINO
1: TOF
2: TOFINO and TOF
UInt_t getMdcSectorBitArray(void)
Returns bit array containing sectors crossed by current track
bit 0: sector 0
bit 1: sector 1
bit 2: sector 2
bit 3: sector 3
bit 4: sector 4
bit 5: sector 5
i.e. 101010 -> Track crossed sector 1,3 and 5
in hex: 0x2a
decimal: 34
UInt_t getMdcSectorDecimalArray(void)
Returns decimal array containing sectors crossed by current track
digit 10^0: sector 0
digit 10^1: sector 1
digit 10^2: sector 2
digit 10^3: sector 3
digit 10^4: sector 4
digit 10^5: sector 5
i.e. 101010 -> Track crossed sector 1,3 and 5
UInt_t getShowerSectorBitArray(void)
Returns bit array containing sectors crossed by current track
bit 0: sector 0
bit 1: sector 1
bit 2: sector 2
bit 3: sector 3
bit 4: sector 4
bit 5: sector 5
i.e. 101010 -> Track crossed sector 1,3 and 5
in hex: 0x2a
decimal: 34
UInt_t getShowerSectorDecimalArray(void)
Returns decimal array containing sectors crossed by current track
digit 10^0: sector 0
digit 10^1: sector 1
digit 10^2: sector 2
digit 10^3: sector 3
digit 10^4: sector 4
digit 10^5: sector 5
i.e. 101010 -> Track crossed sector 1,3 and 5
UInt_t getTofSectorBitArray(void)
Returns bit array containing sectors crossed by current track
bit 0: sector 0
bit 1: sector 1
bit 2: sector 2
bit 3: sector 3
bit 4: sector 4
bit 5: sector 5
i.e. 101010 -> Track crossed sector 1,3 and 5
in hex: 0x2a
decimal: 34
UInt_t getTofSectorDecimalArray(void)
Returns decimal array containing sectors crossed by current track
digit 10^0: sector 0
digit 10^1: sector 1
digit 10^2: sector 2
digit 10^3: sector 3
digit 10^4: sector 4
digit 10^5: sector 5
i.e. 101010 -> Track crossed sector 1,3 and 5
UInt_t getRpcSectorBitArray(void)
Returns bit array containing sectors crossed by current track
bit 0: sector 0
bit 1: sector 1
bit 2: sector 2
bit 3: sector 3
bit 4: sector 4
bit 5: sector 5
i.e. 101010 -> Track crossed sector 1,3 and 5
in hex: 0x2a
decimal: 34
UInt_t getRpcSectorDecimalArray(void)
Returns decimal array containing sectors crossed by current track
digit 10^0: sector 0
digit 10^1: sector 1
digit 10^2: sector 2
digit 10^3: sector 3
digit 10^4: sector 4
digit 10^5: sector 5
i.e. 101010 -> Track crossed sector 1,3 and 5
UInt_t getRichSectorBitArray(void)
Returns bit array containing sectors crossed by current track
bit 0: sector 0
bit 1: sector 1
bit 2: sector 2
bit 3: sector 3
bit 4: sector 4
bit 5: sector 5
i.e. 101010 -> Track crossed sector 1,3 and 5
in hex: 0x2a
decimal: 34
UInt_t getRichSectorDecimalArray(void)
Returns decimal array containing sectors crossed by current track
digit 10^0: sector 0
digit 10^1: sector 1
digit 10^2: sector 2
digit 10^3: sector 3
digit 10^4: sector 4
digit 10^5: sector 5
i.e. 101010 -> Track crossed sector 1,3 and 5
UInt_t getSectorBitArray(void)
Returns bit array containing sectors crossed by current track
as an or of all detectors (RICH, TOF, SHOWER, MDC)
bit 0: sector 0
bit 1: sector 1
bit 2: sector 2
bit 3: sector 3
bit 4: sector 4
bit 5: sector 5
i.e. 101010 -> Track crossed sector 1,3 and 5
in hex: 0x2a
decimal: 34
UInt_t getSectorDecimalArray(void)
Returns decimal array containing sectors crossed by current track
as an or of all detectors (RICH, TOF, SHOWER, MDC)
digit 10^0: sector 0
digit 10^1: sector 1
digit 10^2: sector 2
digit 10^3: sector 3
digit 10^4: sector 4
digit 10^5: sector 5
i.e. 101010 -> Track crossed sector 1,3 and 5.
Int_t getSector(void)
Returns sector if only one sector is crossed by current track
otherwise it returns a negative value
(-7 is returned if there is no hit)
where its absolute value gives the number of sectors crossed.
See getSectorBitArray(), getMdcBitArray(), getTofBitArray(), getRpcBitArray(),
getRichBitArray(), getShowerBitArray() for more details.
void Streamer(TBuffer &R__b)
Stream an object of class HGeantKine.
Bool_t setChainActive(Int_t track, Bool_t flag, HLinearCategory* cat)
Set track and all its ancestors up to primary track active.
Bool_t setAllDescendentsActive(Int_t trackIn, Bool_t flag, HLinearCategory* cat)
Set track and all of its descendents active.
Bool_t setAllDescendentsSuppressed(Int_t trackIn, Bool_t flag, HLinearCategory* cat)
Set track and all of its descendents suppressed.
Bool_t suppressTracks(Int_t id, Float_t acceptedFraction, HLinearCategory* cat)
Suppress randomly a certain fraction of tracks of particle kind id, as well as all of its
descendants. This can be used to correct (lower!) the yield of a certain particle species
AFTER the event generator has been run.
HGeantKine* getParent(Int_t track, HLinearCategory* cat)
Return pointer to parent object, return NULL if none.
HGeantKine* getGrandParent(Int_t track, HLinearCategory* cat)
Return pointer to grandparent object, return NULL if none.
HGeantKine* getPrimary(Int_t trackIn, HLinearCategory* cat)
Return pointer to primary ancestor of track.
Bool_t hasAncestor(Int_t trackIn, HLinearCategory* cat)
Check if current track has trackIn as ancestor (or is trackIn).
HGeantKine* getCommonAncestor(Int_t track1, Int_t track2, HLinearCategory* cat)
Return pointer to nearest ancestor of 2 tracks.
This ancestor is not necessarily a primary.
Inline Functions
void setWeight(Float_t aWeight)
Int_t getTrack() const
Int_t getID() const
Int_t getParentTrack() const
void setParentTrack(Int_t track)
Float_t getTotalMomentum() const
Float_t getTransverseMomentum() const
void getMomentum(HGeomVector& v)
void setActive(Bool_t flag = kTRUE)
void setSuppressed(Bool_t flag = kTRUE)
Bool_t isActive() const
Bool_t isPrimary() const
Bool_t isSuppressed() const
Int_t setRichHitIndex(Int_t index)
Int_t setMdcHitIndex(Int_t index)
Int_t setTofHitIndex(Int_t index)
Int_t setRpcHitIndex(Int_t index)
Int_t setShowerHitIndex(Int_t index)
Int_t getFirstRichHit()
Int_t getFirstMdcHit()
Int_t getFirstTofHit()
Int_t getFirstRpcHit()
Int_t getFirstShowerHit()
HLinkedDataObject* nextRichHit()
HLinkedDataObject* nextMdcHit()
HLinkedDataObject* nextTofHit()
HLinkedDataObject* nextRpcHit()
HLinkedDataObject* nextShowerHit()
void setRichCategory(HCategory* p)
void setMdcCategory(HCategory* p)
void setTofCategory(HCategory* p)
void setRpcCategory(HCategory* p)
void setShowerCategory(HCategory* p)
void resetRichIter()
void resetMdcIter()
void resetTofIter()
void resetRpcIter()
void resetShowerIter()
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void StreamerNVirtual(TBuffer& b)
HGeantKine& operator=(const HGeantKine&)
Author: Romain Holzmann, GSI
Last update: 23/03/05 by Romain Holzmann
Copyright GSI, Darmstadt
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.