ROOT logo
HYDRA - THE HADES ANALYSIS PACKAGE » GEANTUTIL » HGeantKine

class HGeantKine: public TObject

Function Members (Methods)

public:
HGeantKine()
HGeantKine(HGeantKine& aKine)
virtual~HGeantKine()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
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
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
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
voidfillAcceptanceBit()
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
static Int_tgetAllDaughters(HGeantKine* mother, vector<HGeantKine*>& daughters)
static HGeantKine*getChargedDecayDaughter(HGeantKine* mother)
static HGeantKine*getCommonAncestor(Int_t track1, Int_t track2, HLinearCategory* cat = 0)
voidgetCreator(Int_t& aPar, Int_t& aMed, Int_t& aMech)
static Int_tgetDaughters(HGeantKine* mother, vector<HGeantKine*>& daughters)
Float_tgetDistFromVertex()
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Float_tgetE() const
Float_tgetEkin() const
Int_tgetEmcHits(vector<HGeantEmc*>& v)
Int_tgetFirstEmcHit()
Int_tgetFirstMdcHit()
Int_tgetFirstRichHit()
Int_tgetFirstRpcHit()
Int_tgetFirstShowerHit()
Int_tgetFirstStartHit()
Int_tgetFirstTofHit()
Int_tgetFirstWallHit()
static Int_tgetGeneration(HGeantKine*)
voidgetGenerator(Float_t& aInfo, Float_t& aWeight)
voidgetGenerator(Float_t& aInfo, Float_t& aInfo1, Float_t& aInfo2)
Int_tgetGeneratorInfo() const
Int_tgetGeneratorInfo1() const
Int_tgetGeneratorInfo2() const
Float_tgetGeneratorWeight() const
static HGeantKine*getGrandParent(Int_t track, HLinearCategory* cat = 0)
virtual const char*TObject::GetIconName() const
Int_tgetID() const
Bool_tgetLayer(UInt_t io, UInt_t lay)
Float_tgetM() const
Int_tgetMdcHits(vector<HGeantMdc*>& v)
UInt_tgetMdcSectorBitArray()
UInt_tgetMdcSectorDecimalArray()
Int_tgetMechanism() const
Int_tgetMedium() const
voidgetMomentum(HGeomVector& v)
voidgetMomentum(Float_t& apx, Float_t& apy, Float_t& apz)
static Int_tgetMothers(HGeantKine*, vector<HGeantKine*>& mothers)
virtual const char*TObject::GetName() const
Int_tgetNEmcHits()
voidgetNHits(Int_t& m0, Int_t& m1, Int_t& m2, Int_t& m3, Int_t& sys0, Int_t& sys1)
voidgetNHitsBit(Int_t& m0, Int_t& m1, Int_t& m2, Int_t& m3, Int_t& sys0, Int_t& sys1)
voidgetNHitsDecay(Int_t& m0, Int_t& m1, Int_t& m2, Int_t& m3, Int_t& sys0, Int_t& sys1)
voidgetNHitsDecayBit(Int_t& m0, Int_t& m1, Int_t& m2, Int_t& m3, Int_t& sys0, Int_t& sys1)
Int_tgetNLayer(UInt_t io)
Int_tgetNLayerMod(UInt_t mod)
Int_tgetNMdcHits()
Int_tgetNMdcHits(Int_t module)
Int_tgetNRichHits()
Int_tgetNRpcHits()
Int_tgetNShowerHits()
Int_tgetNStartHits()
Int_tgetNTofHits()
Int_tgetNWallHits()
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
static HGeantKine*getParent(Int_t track, HLinearCategory* cat = 0)
Int_tgetParentTrack() const
voidgetParticle(Int_t& aTrack, Int_t& aID)
Float_tgetPhiDeg(Bool_t labSys = kTRUE)
Int_tgetPhiThetaDeg(Float_t& theta, Float_t& phi, Bool_t labSys = kTRUE)
static HGeantKine*getPrimary(Int_t track, HLinearCategory* cat = 0)
Float_tgetRapidity() const
Int_tgetRichHits(vector<HGeantRichPhoton*>& v)
UInt_tgetRichSectorBitArray()
UInt_tgetRichSectorDecimalArray()
Int_tgetRpcHits(vector<HGeantRpc*>& v)
UInt_tgetRpcSectorBitArray()
UInt_tgetRpcSectorDecimalArray()
Int_tgetSector()
UInt_tgetSectorBitArray()
UInt_tgetSectorDecimalArray()
Int_tgetSectorFromBitArray()
UInt_tgetShowerSectorBitArray()
UInt_tgetShowerSectorDecimalArray()
Int_tgetStartHits(vector<HGeantStart*>& v)
Bool_tgetSys(UInt_t sys)
Int_tgetSystem()
Float_tgetThetaDeg()
virtual const char*TObject::GetTitle() const
Int_tgetTofHits(vector<HGeantTof*>& v)
UInt_tgetTofSectorBitArray()
UInt_tgetTofSectorDecimalArray()
Float_tgetTotalMomentum() const
Float_tgetTotalMomentum2() const
Int_tgetTrack() const
Float_tgetTransverseMomentum() const
virtual UInt_tTObject::GetUniqueID() const
Float_tgetUserVal() const
voidgetVertex(HGeomVector& ver)
voidgetVertex(Float_t& ax, Float_t& ay, Float_t& az)
Int_tgetWallHits(vector<HGeantWall*>& v)
virtual Bool_tTObject::HandleTimer(TTimer* timer)
Bool_thasAncestor(Int_t track, HLinearCategory* cat = 0)
virtual ULong_tTObject::Hash() const
Bool_thasLayers(UInt_t io, UInt_t layerstest)
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
Bool_tisAcceptanceFilled()
Bool_tisActive() const
Bool_tisAtAnyMdcEdge(UInt_t io = 2)
Bool_tisAtMdcEdge(UInt_t i)
Bool_tisBugInfo()
Bool_tisCropedFilled()
virtual Bool_tTObject::IsEqual(const TObject* obj) const
Bool_tisExternalSource()
virtual Bool_tTObject::IsFolder() const
Bool_tisInAcceptance(Int_t m0 = 4, Int_t m1 = 4, Int_t m2 = 4, Int_t m3 = 4, Int_t sys0 = 1, Int_t sys1 = 1)
Bool_tisInAcceptanceBit(Int_t m0 = 4, Int_t m1 = 4, Int_t m2 = 4, Int_t m3 = 4, Int_t sys0 = 1, Int_t sys1 = 1)
Bool_tisInAcceptanceDecay(Int_t m0, Int_t m1, Int_t m2, Int_t m3, Int_t sys0, Int_t sys1)
Bool_tisInAcceptanceDecayBit(Int_t m0, Int_t m1, Int_t m2, Int_t m3, Int_t sys0, Int_t sys1)
Bool_tTObject::IsOnHeap() const
Bool_tisPrimary() const
Bool_tisSameExternalSource(HGeantKine* kine1)
static Bool_tisSameExternalSource(HGeantKine* kine1, HGeantKine* kine2)
virtual Bool_tTObject::IsSortable() const
Bool_tisSuppressed() const
Bool_tisThermalSource()
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
HLinkedDataObject*nextEmcHit()
HLinkedDataObject*nextMdcHit()
HLinkedDataObject*nextRichHit()
HLinkedDataObject*nextRpcHit()
HLinkedDataObject*nextShowerHit()
HLinkedDataObject*nextStartHit()
HLinkedDataObject*nextTofHit()
HLinkedDataObject*nextWallHit()
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)
HGeantKine&operator=(const HGeantKine&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
voidprint()
virtual voidTObject::Print(Option_t* option = "") const
voidprintHistory()
voidprintLayers()
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
voidresetEmcIter()
voidresetMdcIter()
voidresetRichIter()
voidresetRpcIter()
voidresetShowerIter()
voidresetStartIter()
voidresetTofIter()
voidresetWallIter()
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidsetAcceptanceFilled()
voidsetActive(Bool_t flag = kTRUE)
static Bool_tsetAllDescendentsActive(Int_t track, Bool_t flag = kTRUE, HLinearCategory* cat = 0)
static Bool_tsetAllDescendentsSuppressed(Int_t track, Bool_t flag = kTRUE, HLinearCategory* cat = 0)
voidsetAtMdcEdge(UInt_t i)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
static Bool_tsetChainActive(Int_t track, Bool_t flag = kTRUE, HLinearCategory* cat = 0)
voidsetCreator(Int_t aPar, Int_t aMed, Int_t aMech)
voidsetCropedFilled()
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidsetEmcCategory(HCategory* p)
Int_tsetEmcHitIndex(Int_t index)
voidsetFirstEmcHit(Int_t index)
voidsetFirstMdcHit(Int_t index)
voidsetFirstRichHit(Int_t index)
voidsetFirstRpcHit(Int_t index)
voidsetFirstShowerHit(Int_t index)
voidsetFirstStartHit(Int_t index)
voidsetFirstTofHit(Int_t index)
voidsetFirstWallHit(Int_t index)
voidsetGenerator(Float_t aInfo, Float_t aWeight)
voidsetGenerator(Float_t aInfo, Float_t aInfo1, Float_t aInfo2)
voidsetID(Int_t aID)
voidsetLayer(UInt_t io, UInt_t lay)
static voidsetLayer(UInt_t io, UInt_t lay, UInt_t& layers)
voidsetLayers(UInt_t io, UInt_t layers)
voidsetMdcCategory(HCategory* p)
Int_tsetMdcHitIndex(Int_t index)
voidsetMechanism(Int_t aMech)
voidsetMedium(Int_t aMed)
voidsetMomentum(Float_t apx, Float_t apy, Float_t apz)
voidsetNewTrackNumber(Int_t track)
static voidTObject::SetObjectStat(Bool_t stat)
voidsetParentTrack(Int_t track)
voidsetParticle(Int_t aTrack, Int_t aID)
voidsetRichCategory(HCategory* p)
Int_tsetRichHitIndex(Int_t index)
voidsetRpcCategory(HCategory* p)
Int_tsetRpcHitIndex(Int_t index)
voidsetShowerCategory(HCategory* p)
Int_tsetShowerHitIndex(Int_t index)
voidsetStartCategory(HCategory* p)
Int_tsetStartHitIndex(Int_t index)
voidsetSuppressed(Bool_t flag = kTRUE)
voidsetSys(UInt_t sys)
voidsetTofCategory(HCategory* p)
Int_tsetTofHitIndex(Int_t index)
voidsetTrack(Int_t aTrack)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidsetUserVal(Float_t val)
voidsetVertex(Float_t ax, Float_t ay, Float_t az)
voidsetWallCategory(HCategory* p)
Int_tsetWallHitIndex(Int_t index)
voidsetWeight(Float_t aWeight)
virtual voidShowMembers(TMemberInspector&)
voidsortMdcHits()
voidsortRichHits()
voidsortRpcHits()
voidsortShowerHits()
voidsortTofHits()
voidsortWallHits()
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
static Bool_tsuppressTracks(Int_t id, Float_t acceptedFraction, HLinearCategory* cat = 0)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
voidunsetAcceptanceFilled()
voidunsetAllLayers()
voidunsetAtMdcEdge(UInt_t i)
voidunsetCropedFilled()
voidunsetSys(UInt_t sys)
virtual voidTObject::UseCurrentStyle()
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
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

protected:
UInt_tacceptancebit wise : 1-25 MDCLAYER 26-27 sys0/sys1 28-31 layer crop highest bit : filled/not filled
Bool_tactiveactive flag (set if track participates in a hit)
Int_tcreationMechanismGEANT creation mechanism number
Short_tfirstEmcHitindex of first hit in EMC category
Short_tfirstMdcHitindex of first hit in MDC category
Short_tfirstRichHitindex of first hit in RICH category
Short_tfirstRpcHitindex of first hit in RPC category
Short_tfirstShowerHitindex of first hit in SHOWER category
Short_tfirstStartHitindex of first hit in START category
Short_tfirstTofHitindex of first hit in TOF category
Short_tfirstWallHitindex of first hit in WALL category
Float_tgeneratorInfoevent generator info PLUTO: SourceID : thermal (parentid + 500) or decay code (example : pp->pppi0 ==> 141407)
Float_tgeneratorInfo1additional event generator info PLUTO: parentID
Float_tgeneratorInfo2additional event generator info PLUTO: parentIndex
Float_tgeneratorWeightassociated weight
Int_tmediumNumberGEANT medium of creation number
Int_tparentTrackGEANT track number of parent particle
Int_tparticleIDGEANT particle ID number
Bool_tsuppressedflag used to filter out particle hits before digitization
Int_ttrackNumberGEANT track number
Float_tuserValstores user specific values (for expample evtSeqnumber of PLUTO particles for embedding)
Float_txMomx component of particle momentum (in MeV/c)
Float_txVertexx of track vertex (in mm)
Float_tyMomy
Float_tyVertexy
Float_tzMomz
Float_tzVertexz
private:
Int_temcIndex!
Int_tmdcIndex! used to set up linked chains
HCategory*pEmc!
HCategory*pMdc! used to set up linked chains
HCategory*pRich! internal pointers to category
HCategory*pRpc!
HCategory*pShow!
HCategory*pStart!
HCategory*pTof! of hit objects
HCategory*pWall!
Int_trichIndex! internal index variables
Int_trpcIndex!
Int_tshowIndex!
Int_tstartIndex!
Int_ttofIndex! of hit objects
Int_twallIndex!

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

HGeantKine(HGeantKine& aKine)
 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 getVertex(HGeomVector& ver)
 Retrieve creation vertex (in mm) in lab frame.
Float_t getDistFromVertex()
 get distance from primary vertex
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.
Int_t getGeneration(HGeantKine* )
Int_t getMothers(HGeantKine* , vector<HGeantKine*>& mothers)
 return in vector all mothers of the particles of kine
 index 0 is mother , index 1 grand mother etc.
the function return the number of mothers found.
Int_t getAllDaughters(HGeantKine* mother, vector<HGeantKine*>& daughters)
 retrieve daughters from all following generations of this mother.

Int_t getDaughters(HGeantKine* mother, vector<HGeantKine*>& daughters)
 retrieve daughters from this mother.

HGeantKine* getChargedDecayDaughter(HGeantKine* mother)
 has the particle a decayed daughter ? like pion->muon
Float_t getThetaDeg()
 Convert geant mom to theta angle in degree
Float_t getPhiDeg(Bool_t labSys = kTRUE)
 Convert geant mom to phi angle in degree
 labSys == kTRUE  -> 0-360 deg (lab)
        == kFALSE -> 0-60  deg (sector)
Int_t getSector()
 returns the sector number (0-5)
Int_t getPhiThetaDeg(Float_t& theta, Float_t& phi, Bool_t labSys = kTRUE)
 Convert geant mom to phi/theta angle in degree
 labSys == kTRUE  -> 0-360 deg (lab)
        == kFALSE -> 0-60  deg (sector)
 returns the sector number (0-5)
 Meaningful if used with primaries
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* p, Short_t& first, 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.

void sortWallHits(void)
 Sort WALL hits in linked list for present track

HLinkedDataObject* nextHit(HCategory* p, Int_t& next)
 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(Int_t module)
 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 getNWallHits(void)
 Return number of WALL hits made by present track.

Int_t getNEmcHits(void)
 Return number of EMC hits made by present track.

Int_t getNStartHits(void)
 Return number of START hits made by present track.

Int_t getRichHits(vector<HGeantRichPhoton*>& v)
 Return  RICH photon hits made by present track.

Int_t getMdcHits(vector<HGeantMdc*>& v)
 Return  MDC hits made by present track.

Int_t getTofHits(vector<HGeantTof*>& v)
 Return  Tof hits made by present track.

Int_t getRpcHits(vector<HGeantRpc*>& v)
 Return  Rpc hits made by present track.

Int_t getWallHits(vector<HGeantWall*>& v)
 Return  Wall hits made by present track.

Int_t getEmcHits(vector<HGeantEmc*>& v)
 Return  Emc hits made by present track.

Int_t getStartHits(vector<HGeantStart*>& v)
 Return  Start hits made by present track.

Bool_t isInAcceptance(Int_t m0 = 4, Int_t m1 = 4, Int_t m2 = 4, Int_t m3 = 4, Int_t sys0 = 1, Int_t sys1 = 1)
 return kTRUE if the particle has hit at least m0-m3 (default 4
 out of 7 per module) layers in MDCI-MDCIV and Meta (RPC or Shower >= sys0, Tof>=sys1)
Bool_t isInAcceptanceDecay(Int_t m0, Int_t m1, Int_t m2, Int_t m3, Int_t sys0, Int_t sys1)
 return kTRUE if the particle (and his decayed charged daughter it it exist) has hit at
 least m0-m3 (default 4 out of 7 per module) layers in MDCI-MDCIV and Meta (RPC or Shower >= sys0, Tof>=sys1)
Bool_t isInAcceptanceBit(Int_t m0 = 4, Int_t m1 = 4, Int_t m2 = 4, Int_t m3 = 4, Int_t sys0 = 1, Int_t sys1 = 1)
 return kTRUE if the particle has hit at least m0-m3 (default 4
 out of 7 per module) layers in MDCI-MDCIV and Meta sys0/1
 this function works on prefilled acceptance bits and needs no
 additional categories. If sys 0/1 should be checked exclusive
 the other system threshold has to larger 1
Bool_t isInAcceptanceDecayBit(Int_t m0, Int_t m1, Int_t m2, Int_t m3, Int_t sys0, Int_t sys1)
 return kTRUE if the particle (and his decayed charged daughter it it exist) has hit at
 least m0-m3 (default 4 out of 7 per module) layers in MDCI-MDCIV and Meta (RPC or
 Shower >= sys0, Tof>=sys1)
 this function works on prefilled acceptance bits and needs no
 additional categories. If sys 0/1 should be checked exclusive
 the other system threshold has to larger 1
void fillAcceptanceBit()
void getNHits(Int_t& m0, Int_t& m1, Int_t& m2, Int_t& m3, Int_t& sys0, Int_t& sys1)
 returns the number of hits in MDC modules 0-3,
 sys0 (shower+rpc) and sys1 (tof)
void getNHitsDecay(Int_t& m0, Int_t& m1, Int_t& m2, Int_t& m3, Int_t& sys0, Int_t& sys1)
 returns the number of hits in MDC modules 0-3,
 sys0 (shower+rpc) and sys1 (tof) of the track
 (and his decayed charged daughter it it exist)
void getNHitsBit(Int_t& m0, Int_t& m1, Int_t& m2, Int_t& m3, Int_t& sys0, Int_t& sys1)
 returns the number of hits in MDC modules 0-3,
 sys0 (shower+rpc) and sys1 (tof) of the track
 number of hits for sys 0/1 can be only 0 or 1
 this function works on prefilled acceptance bits and needs no
 additional categories.
void getNHitsDecayBit(Int_t& m0, Int_t& m1, Int_t& m2, Int_t& m3, Int_t& sys0, Int_t& sys1)
 returns the number of hits in MDC modules 0-3,
 sys0 (shower+emc+rpc) and sys1 (tof) of the track
 (and his decayed charged daughter it it exist).
 number of hits for sys 0/1 can be only 0 or 1
 this function works on prefilled acceptance bits and needs no
 additional categories.
Int_t getSystem(void)
 Return system crossed by the present track
  -1: no contact:
   0: RPC
   1: TOF
   2: RPC 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 getSectorFromBitArray(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& )
 Stream an object of class HGeantKine.
Bool_t setChainActive(Int_t track, Bool_t flag = kTRUE, HLinearCategory* cat = 0)
 Set track and all its ancestors up to primary track active.

Bool_t setAllDescendentsActive(Int_t track, Bool_t flag = kTRUE, HLinearCategory* cat = 0)
 Set track and all of its descendents active.

Bool_t setAllDescendentsSuppressed(Int_t track, Bool_t flag = kTRUE, HLinearCategory* cat = 0)
 Set track and all of its descendents suppressed.

Bool_t suppressTracks(Int_t id, Float_t acceptedFraction, HLinearCategory* cat = 0)
 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 = 0)
 Return pointer to parent object, return NULL if none.

HGeantKine* getGrandParent(Int_t track, HLinearCategory* cat = 0)
 Return pointer to grandparent object, return NULL if none.

HGeantKine* getPrimary(Int_t track, HLinearCategory* cat = 0)
 Return pointer to primary ancestor of track.

Bool_t hasAncestor(Int_t track, HLinearCategory* cat = 0)
 Check if current track has trackIn as ancestor (or is trackIn).

HGeantKine* getCommonAncestor(Int_t track1, Int_t track2, HLinearCategory* cat = 0)
 Return pointer to nearest ancestor of 2 tracks.
 This ancestor is not necessarily a primary.

void printHistory()
void print()
 print particle infos
Bool_t isBugInfo()
 caused by GEANT bug: file input number has been written
 to geninfo (geninfo1 and geninfo are 0) if the input did
 not provide generator infos (fixed for HGeant2 > 3.2)
Bool_t isExternalSource()
 For PLUTO generatorInfo will be
 set to the parentPID.
Bool_t isThermalSource()
 For PLUTO  generatorInfo keeps
 the source ID. For themal sources
 the PID is genarated  parentID + 500
 if generatorInfo is >= 500 and < 600
 we assume this as thermal source.
 For other decays as for example
 pp->p p pi0 the source ID will be coded from
 the outging particles ==> 141407
Bool_t isSameExternalSource(HGeantKine* kine1, HGeantKine* kine2)
 For PLUTO both particles kine1,kine2 as to come from an external source
 and the parentPID (generatorInfo1) are equal. both particles
 have to stem from the same parentIndex (generatorInfo2)(if
 there are more than 1 source of the same type in the event)
 CAUTION: For particles from a fireball without decay in PLUTO
 parentIndex will be -1. In case of multiple particles from
 such an source they canot be distinguished. The function will
 retun kTRUE in this case.

Bool_t isSameExternalSource(HGeantKine* kine1)
Int_t getNLayer(UInt_t io)
 i0 :  0 = inner seg , 1 = outer seg, 2 = both segs
Int_t getNLayerMod(UInt_t mod)
void printLayers()
Int_t setRichHitIndex(Int_t index)
inlines
hit index
Int_t setMdcHitIndex(Int_t index)
 set next MDC hit index in linked list
Int_t setTofHitIndex(Int_t index)
 set next TOF hit index in linked list
Int_t setRpcHitIndex(Int_t index)
 set next RPC hit index in linked list
Int_t setShowerHitIndex(Int_t index)
 set next SHOWER hit index in linked list
Int_t setWallHitIndex(Int_t index)
 set next WALL hit index in linked list
Int_t setEmcHitIndex(Int_t index)
 set next EMC hit index in linked list
Int_t setStartHitIndex(Int_t index)
 set next START hit index in linked list
HLinkedDataObject* nextRichHit()
linked data objects
HLinkedDataObject* nextMdcHit()
 return next MDC hit made by present track
HLinkedDataObject* nextTofHit()
 return next TOF hit made by present track
HLinkedDataObject* nextRpcHit()
 return next RPC hit made by present track
HLinkedDataObject* nextShowerHit()
 return next SHOWER hit made by present track
HLinkedDataObject* nextWallHit()
 return next WALL hit made by present track
HLinkedDataObject* nextEmcHit()
 return next EMC hit made by present track
HLinkedDataObject* nextStartHit()
 return next START hit made by present track
void resetRichIter(void)
iterators
void resetMdcIter(void)
void resetTofIter(void)
void resetRpcIter(void)
void resetShowerIter(void)
void resetWallIter(void)
void resetEmcIter(void)
void resetStartIter(void)
void setTrack(Int_t aTrack)
{ trackNumber = aTrack;}
void setWeight(Float_t aWeight)
{generatorWeight = aWeight;}
void setID(Int_t aID)
{ particleID = aID; }
void setMedium(Int_t aMed)
{ mediumNumber = aMed; }
void setMechanism(Int_t aMech)
{ creationMechanism = aMech; }
void getMomentum(Float_t& apx, Float_t& apy, Float_t& apz)
Int_t getTrack(void)
{ return trackNumber; }
Int_t getMedium() const
{ return mediumNumber; }
Int_t getMechanism() const
{ return creationMechanism; }
Int_t getID(void)
{ return particleID; }
Int_t getParentTrack(void)
{ return parentTrack; }
void setParentTrack(Int_t track)
{ parentTrack = track; }
Float_t getTotalMomentum2(void)
{ return xMom*xMom + yMom*yMom + zMom*zMom; }
Float_t getTotalMomentum(void)
{ return TMath::Sqrt(getTotalMomentum2()); }
Float_t getTransverseMomentum(void)
{ return TMath::Sqrt(xMom*xMom + yMom*yMom); }
Float_t getM(void)
Float_t getE(void)
{return TMath::Sqrt(getM()*getM() + getTotalMomentum2());}
Float_t getEkin(void)
{return getE()-getM();}
Float_t getRapidity(void)
{return 0.5*TMath::Log((getE()+zMom)/(getE()-zMom));}
Int_t getGeneratorInfo() const
{return generatorInfo;}
Int_t getGeneratorInfo1() const
{return generatorInfo1;}
Int_t getGeneratorInfo2() const
{return generatorInfo2;}
Float_t getGeneratorWeight() const
{return generatorWeight;}
void setActive(Bool_t flag = kTRUE)
{active=flag;}
void setSuppressed(Bool_t flag = kTRUE)
{suppressed=flag;}
void setUserVal(Float_t val)
{userVal=val;}
Bool_t isActive(void)
{return active;}
Bool_t isPrimary(void)
{return (parentTrack==0);}
Bool_t isSuppressed(void)
{return suppressed;}
Float_t getUserVal(void)
{return userVal;}
Int_t getFirstRichHit()
{return firstRichHit;}
Int_t getFirstMdcHit()
{return firstMdcHit;}
Int_t getFirstTofHit()
{return firstTofHit;}
Int_t getFirstRpcHit()
{return firstRpcHit;}
Int_t getFirstShowerHit()
{return firstShowerHit;}
Int_t getFirstWallHit()
{return firstWallHit;}
Int_t getFirstEmcHit()
{return firstEmcHit;}
Int_t getFirstStartHit()
{return firstStartHit;}
void setFirstRichHit(Int_t index)
{ firstRichHit = index;}
void setFirstMdcHit(Int_t index)
{ firstMdcHit = index;}
void setFirstTofHit(Int_t index)
{ firstTofHit = index;}
void setFirstRpcHit(Int_t index)
{ firstRpcHit = index;}
void setFirstShowerHit(Int_t index)
{ firstShowerHit= index;}
void setFirstWallHit(Int_t index)
{ firstWallHit = index;}
void setFirstEmcHit(Int_t index)
{ firstEmcHit = index;}
void setFirstStartHit(Int_t index)
{ firstStartHit = index;}
void setRichCategory(HCategory* p)
 The following 4 are needed if the categories are created outside the HYDRA event
 and are hence not accessible via HRecEvent::getCategory(cat), e.g. in a macro.
{pRich = p;}
void setMdcCategory(HCategory* p)
{pMdc = p;}
void setTofCategory(HCategory* p)
{pTof = p;}
void setRpcCategory(HCategory* p)
{pRpc = p;}
void setShowerCategory(HCategory* p)
{pShow = p;}
void setWallCategory(HCategory* p)
{pWall = p;}
void setEmcCategory(HCategory* p)
{pEmc = p;}
void setStartCategory(HCategory* p)
{pStart = p;}
void setLayers(UInt_t io, UInt_t layers)
 acceptance bits
{ acceptance|=(layers&(0xFFF<<(io*12)));}
void setLayer(UInt_t io, UInt_t lay)
{ acceptance |= ( 0x01 << (io*12+lay) ); }
void unsetAllLayers()
{ acceptance &= ~0xFFFFFF; }
void setLayer(UInt_t io, UInt_t lay, UInt_t& layers)
{ layers |= ( 0x01 << (io*12+lay) ); }
Bool_t getLayer(UInt_t io, UInt_t lay)
{ return ( acceptance & ( 0x01 << (io*12+lay) )); }
Bool_t hasLayers(UInt_t io, UInt_t layerstest)
{ return (((acceptance>>(io*12))&0xFFF)==((layerstest>>(io*12))&0xFFF));}
void setSys(UInt_t sys)
{ acceptance |= ( 0x01 << (24+sys) ); }
void unsetSys(UInt_t sys)
{ acceptance &= ~( 0x01 << (24+sys) ); }
Bool_t getSys(UInt_t sys)
{ return ( acceptance & ( 0x01 << (24+sys) )); }
void setAtMdcEdge(UInt_t i)
void unsetAtMdcEdge(UInt_t i)
Bool_t isAtMdcEdge(UInt_t i)
Bool_t isAtAnyMdcEdge(UInt_t io = 2)
void setCropedFilled()
{ acceptance |=((0x1)<<(30)); }
void unsetCropedFilled()
{ acceptance &=~((0x1)<<(30)); }
Bool_t isCropedFilled()
{ return ( acceptance & ( 0x01 << (30) )); }
void setAcceptanceFilled()
{ acceptance |=((0x1)<<(31)); }
void unsetAcceptanceFilled()
{ acceptance &=~((0x1)<<(31)); }
Bool_t isAcceptanceFilled()
{ return ( acceptance & ( 0x01 << (31) )); }