class HMdcGeantTrack: public TObject

_HADES_CLASS_DESCRIPTION


 HMdcGeantSeg

   Class collect and keep GEANT and mdc digitized information about
   one inner or outer mdc segment


 HMdcGeantTrack

   Class collect and keep GEANT and mdc digitized information about
   one track. Keep also array of HMdcGeantSeg objects for this track.


 HMdcGeantEvent

   Class fill and keep array of HMdcGeantTrack objects for one event.


 HMdcTrackInfSim

   Class fill HMdcClusSim, HMdcSegSim and HMdcHitSim objects
   by information from HMdcGeantTrack and HMdcGeantSeg


 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Meaning of HMdcGeantTrack::trackStatus, HMdcGeantSeg::segmentStatus
 and HMdcClusSim::trackStatus[tr] bits.

 Bits in HMdcGeantTrack::trackStatus:

  Bit 8, GEANT_BUG          : =0 - GEANT bug was found in this track
  Bit 7, NO_META_HIT        : =0 - track don't reach META
  Bit 6, NOT_RECONSTRUCTABLE: =0 - not reconstructable track. It can be if
                                   track not present in mdc,
                                   track cross more then one sector,
                                   numder of segments <1 or >2,
                                   upstream direction of at list one segment,
                                   track doesn't cross inner or outer segment,
                                   num. of segments with digi.wires <1 or >2,
                                   num.digi.wires in track < 5*num.segments,
                                   at list one seg. has <3 layers or <5 wires
  Bits 1-5 are eq.1

 Bits in HMdcGeantSeg::segmentStatus trackStatus bits plus:

  Bit 5, SEG_NOT_RECONS_ABLE: =0 - segment has <3 layers or <5 digi.wires
  Bit 4, HIT_NOT_RECONS_ABLE: =0 - at list one mdc in segment has
                                   <3 fired layers or <5 wires

 Bits in HMdcClusSim::trackStatus[tr] are segmentStatus bits plus:

  Bit 3, CLFLEVEL_TOO_HIGH  : =0 - segment can't be found due to high level
                                   of cluster finder
  Bit 2, FAKE_CONTRIBUTION  : =0 - fake contribution in cluster
  Bit 1, SEGS_MATH_OK       : =0 - no inner-outer segments matching

Function Members (Methods)

public:
HMdcGeantTrack()
HMdcGeantTrack(const HMdcGeantTrack&)
HMdcGeantTrack(TObjArray* arr, Int_t* size, Int_t* offst)
virtual~HMdcGeantTrack()
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
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
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
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Char_tgetDigiMdcSector() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Char_tgetFirstLayer12(Int_t ns)
HGeantKine*getGeantKine()
Char_tgetGeantMdcSector() const
virtual const char*TObject::GetIconName() const
Char_tgetIOSeg(Int_t ns)
Char_tgetLastLayer12(Int_t ns)
Bool_tgetLayerHitPos(Int_t ns, Int_t m, Int_t l, HGeomVector& hit, Bool_t extrFlag = kTRUE)
Bool_tgetLayerHitPosLab(Int_t ns, Int_t m, Int_t l, HGeomVector& hit, Bool_t extrFlag = kTRUE)
Bool_tgetLayerHitPosSec(Int_t ns, Int_t m, Int_t l, HGeomVector& hit, Bool_t extrFlag = kTRUE)
Bool_tgetMdcHitPos(Int_t ns, Int_t m, HGeomVector& hit)
Bool_tgetMdcHitPosLab(Int_t ns, Int_t m, HGeomVector& hit)
Bool_tgetMdcHitPosSec(Int_t ns, Int_t m, HGeomVector& hit)
HGeantMdc*getMdcLayerHit(Int_t nseg, Int_t mod, Int_t lay)
HGeantMdc*getMdcMidPlaneHit(Int_t nseg, Int_t mod)
Float_tgetMomentum() const
virtual const char*TObject::GetName() const
Char_tgetNDigiMdcSectors() const
Short_tgetNDigiSegments() const
Short_tgetNGeantMdcHits() const
Char_tgetNGeantMdcSectors() const
Char_tgetNGMdcHits(Int_t ns)
Short_tgetNSegments() const
Int_tgetNSegments(Int_t seg, Int_t sec = -1)
Int_tgetNSegsInMdc(Int_t m, Int_t sec = -1)
Int_tgetNWires() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Char_tgetSector(Int_t ns)
Char_tgetSegDirection(Int_t ns)
HMdcGeantSeg*getSegment(Int_t ns)
virtual const char*TObject::GetTitle() const
Int_tgetTrack() const
virtual UInt_tTObject::GetUniqueID() const
Int_tgetUserFlag() 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
Bool_tisDirectionGood() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tisGeantBug() const
Bool_tisGEANTBug()
Bool_tisGntTrackOk()
Bool_tisInMdc() const
Bool_tisInMeta() const
Bool_tisInRich() const
static Bool_tisMdcActive(Int_t s, Int_t m)
Bool_tisNoMeta()
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tisTrackNotRec()
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)
HMdcGeantTrack&operator=(const HMdcGeantTrack&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
voidprint()
virtual voidTObject::Print(Option_t* option = "") const
static voidprintDebug(HGeantMdc* pGeantMdc, Int_t i, const Char_t* st = 0)
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
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)
voidsetDebugPrintFlag(Bool_t fg = kTRUE)
voidsetDefault()
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
Bool_tsetMdcCal1Cat()
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidsetUserFlag(Int_t fl)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
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
Short_ttestGeantTrack(HGeantKine* pGK)
Short_ttestGeantTrack(Int_t trNum)
static voidtestMdcSetup()
static voidunsetMdc(Int_t s, Int_t m)
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()
private:
Bool_taddSegAtAndExpand(Short_t segNum)
Bool_taddSegment()
static Int_tcalcLay14(Int_t m, Int_t l)
voidcalcNSectors()
Int_tcollectWires(Char_t sec, Char_t mod, Char_t lay, Float_t atof)
Char_tdirDLayer(Char_t dir)
Bool_tisGeantBug1(Float_t momLay)
Bool_tisGeantBug2(Char_t sec, Char_t dMod, Char_t dLay, Char_t hitDir, Float_t dTof)
Bool_tisGeantBug3()
Bool_tmayBeGeantBug(Float_t dMom)
Bool_tnMdcOk(Int_t nm)
Bool_tnSecOk(Int_t ns)
Bool_tnSegOk(Short_t ns)
voidprintDebug(Float_t dMom, const Char_t dMod)
voidsetStatusFlags()
Bool_ttestBit(UChar_t bit) const
voidtestHitsInDetectors()
Short_ttestMdcHits()

Data Members

public:
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
Int_t*arrGlobOffsetglobal offset in array for this track
Int_tarrOffsetoffset of this track first segment in array
Int_t*arrSizesize of segments array
Int_tarrSizeLocsize of segments array
Bool_tdebugPrintFlag
Bool_tdirectionFlag=kTRUE if all segments have dir.=+1
Bool_tgeantBugFlag=kTRUE if geant bug was found
Bool_tisInMdcFlag=kTRUE if GEANT track has hits in MDC's
Bool_tisInMetaFlag=kTRUE if GEANT track reach META
Bool_tisInRichFlag=kTRUE if GEANT track has hits in RICH
HIterator*iterMdcCal1iterator for MdcCal1 category
HLocationlocMdcCal1location of HMdcCal1Sim object
Char_tmdcSectorif <0 - num.of crossed sectors
static Bool_tmdcSetup[6][4][sec][mod]=kFALSE - skip this MDC
Char_tmdcWSectorthe same as mdcSector but num.of wires>0
Float_tmommomentum (in MeV/c)
Short_tnGeantMdcHitsnumber HGeantMdc hits in track
Char_tnIOSeg=1,2,3 - inner seg.only, outer only, both
Short_tnSegmentsnumber of segments
Char_tnWIOSegthe same as nIOSeg but num.of wires>0
Short_tnWSegmentsnumber of segments with wires from track
Int_tnWiresnumber of wires in track (=-1 no MdcCal1Cat)
HGeantKine*pGeantKinepointer to HGeantKine object
HGeantMdc*pGeantMdccurrent GeantMdc hit
HGeantMdc*pGeantMdcPrevprevious GeantMdc hit
HCategory*pMdcCal1Catcategory MdcCal1
HMdcGeantSeg*segmentpointer to current segment
TObjArray*segmentsarray of HMdcGeantSeg objects
Int_ttrackNumberGEANT track number
UChar_ttrackStatusbits array (see hmdcgeanttrack.cc)
Int_tuserFlagUser's flag

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

HMdcGeantTrack(const HMdcGeantTrack& )
 constructor for the case when geantSegment array created in HMdcGeantTrack
HMdcGeantTrack(TObjArray* arr, Int_t* size, Int_t* offst)
 constructor for the case when geantSegment array created out of HMdcGeantTrack
 parameters:
 arr - pointer to TObjArray for HMdcGeantSeg objects
 size - pointer to Int_t value which keep num. of not empty slots
        in TObjArray (should not has empty slots between not empty slots)
 offset - pointer to Int_t value which keep num. of HMdcGeantSeg objects
          already used in TObjArray for previous tracks
~HMdcGeantTrack(void)
void clear(void)
void setDefault(void)
void testMdcSetup(void)
Bool_t setMdcCal1Cat(void)
Short_t testGeantTrack(Int_t trNum)
 return number of mdc segments
Short_t testGeantTrack(HGeantKine* pGK)
 return number of mdc segments
void testHitsInDetectors(void)
Short_t testMdcHits(void)
 return number of mdc segments
void setStatusFlags(void)
Bool_t addSegAtAndExpand(Short_t segNum)
Bool_t addSegment(void)
Int_t calcLay14(Int_t m, Int_t l)
 recalculate module and layer number in layer number from 0 to 13
 were numb. 3 and 10 correspond mid-planes of mdc's
Bool_t isGeantBug1(Float_t momLay)
 Finding bug in HGeantMdc. Hit momentum > vertex momentum.
Bool_t isGeantBug2(Char_t sec, Char_t dMod, Char_t dLay, Char_t hitDir, Float_t dTof)
 Finding bug in HGeantMdc. Too short t.o.f. between two hits.
Bool_t mayBeGeantBug(Float_t dMom)
 Finding bug in HGeantMdc. Hit momentum > prev.hit momentum.
Bool_t isGeantBug3(void)
 removing fake HGeantMdc hits from list
Int_t collectWires(Char_t sec, Char_t mod, Char_t lay, Float_t atof)
void unsetMdc(Int_t s, Int_t m)
void print(void)
 nseg<0 - print all segments
void printDebug(Float_t dMom, const Char_t dMod)
void printDebug(HGeantMdc* pGeantMdc, Int_t i, const Char_t* st = 0)
Int_t getNSegsInMdc(Int_t m, Int_t sec = -1)
 return number of segments where mdc "m" present in sector "sec"
 if "sec"<0 - return number of segments where mdc "m" present
Int_t getNSegments(Int_t seg, Int_t sec = -1)
 return number of segments where mdc "m" present in sector "sec"
 if "sec"<0 - return number of segments where mdc "m" present
HGeantMdc* getMdcMidPlaneHit(Int_t nseg, Int_t mod)
HGeantMdc* getMdcLayerHit(Int_t nseg, Int_t mod, Int_t lay)
Bool_t getMdcHitPos(Int_t ns, Int_t m, HGeomVector& hit)
 Return geant "hit" position in mid-plane mdc.
Bool_t getLayerHitPos(Int_t ns, Int_t m, Int_t l, HGeomVector& hit, Bool_t extrFlag = kTRUE)
 Return geant "hit" position in mdc layer.
Bool_t getMdcHitPosSec(Int_t ns, Int_t m, HGeomVector& hit)
 Return geant "hit" position in mid-plane mdc in sector coor.sys.
Bool_t getMdcHitPosLab(Int_t ns, Int_t m, HGeomVector& hit)
 Return geant "hit" position in mid-plane mdc in lab.coor.sys..
Bool_t getLayerHitPosSec(Int_t ns, Int_t m, Int_t l, HGeomVector& hit, Bool_t extrFlag = kTRUE)
 Return geant "hit" position in mdc layer in sector coor.sys..
Bool_t getLayerHitPosLab(Int_t ns, Int_t m, Int_t l, HGeomVector& hit, Bool_t extrFlag = kTRUE)
 Return geant "hit" position in mdc layer in lab.coor.sys.
 If no GeantMdc hit in this layer and extrFlag=kTRUE
 function does extrapolation to this layer.
Char_t getSegDirection(Int_t ns)
Char_t getSector(Int_t ns)
Char_t getIOSeg(Int_t ns)
Char_t getFirstLayer12(Int_t ns)
Char_t getLastLayer12(Int_t ns)
Char_t getNGMdcHits(Int_t ns)
void calcNSectors(void)
Int_t getTrack(void)
{return trackNumber;}
Bool_t isGntTrackOk(void)
{return testBit(255);}
Bool_t isGEANTBug(void)
{return !testBit(128);}
Bool_t isNoMeta(void)
{return !testBit(64);}
Bool_t isTrackNotRec(void)
{return !testBit(32);}
void setUserFlag(Int_t fl)
{userFlag=fl;}
Int_t getUserFlag(void)
{return userFlag;}
Bool_t nMdcOk(Int_t nm)
{return m>=0 && m<4 && ioseg==m/2;}
Bool_t testBit(UChar_t bit) const
{return (segmentStatus&bit)==bit;}
HMdcGeantTrack(const HMdcGeantTrack& )
Bool_t isMdcActive(Int_t s, Int_t m)
{return mdcSetup[s][m];}
void setDebugPrintFlag(Bool_t fg = kTRUE)
{debugPrintFlag=fg;}
HMdcGeantSeg* getSegment(Int_t ns)
Float_t getMomentum(void)
{return mom;}
Bool_t isInMdc(void)
{return isInMdcFlag;}
Bool_t isInRich(void)
{return isInRichFlag;}
Bool_t isInMeta(void)
{return isInMetaFlag;}
Short_t getNSegments(void)
{return nSegments;}
Short_t getNDigiSegments(void)
{return nWSegments;}
Short_t getNGeantMdcHits(void)
{return nGeantMdcHits;}
Int_t getNWires(void)
{return nWires;}
Char_t getGeantMdcSector(void)
{return mdcSector;}
Char_t getDigiMdcSector(void)
{return mdcWSector;}
Char_t getNGeantMdcSectors(void)
Char_t getNDigiMdcSectors(void)
Bool_t isDirectionGood(void)
{return directionFlag;}
Bool_t isGeantBug(void)
{return geantBugFlag;}
HGeantKine* getGeantKine(void)
{return pGeantKine;}
Bool_t nSegOk(Short_t ns)
{return ns>=0 && ns<nSegments;}
Bool_t nSecOk(Int_t ns)
{return ns>=0 && ns<6;}
Char_t dirDLayer(Char_t dir)

Last change: Sat May 22 13:02:06 2010
Last generated: 2010-05-22 13:02

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.