A++ » INC » AtlTRTDigit

class AtlTRTDigit: public HepDriftChamberDigit



  Atlas TRT digitisation


 Overview of the identifiers for the TRT detector elements.


 Definition and the range of values for the levels of the
 identifiers are:

 element           range              meaning
 -------           -----              -------

 fEndCapOrBarrel   +/- 1            positive/negative barrel
                   +/- 2            positive/negative endcap
                   0 to 17          endcap wheel range

 fPhiSector        0 to 31          for barrel modular geometry
                      0             for barrel "simple layer" geometry
                   0 to 31          for endcap

 fModuleOrWheel    0 to 2           barrel module layer number
                   0 to 72          is straw layer for barrel "simple layer" geometry

 fStrawLayer       0 to 18 (19)     for barrel module 0 for modular (layer) geometry
                   0 to 23          for barrel module 1       "        "      " 
                   0 to 29 (28)     for barrel module 2       "        "      " 
                       0            for barrel "simple layer" geometry
                   0 to 15 or 7     for ec (middle modules have 8 layers,
                                           224 total layers in ec)

 fStraw            0 to <28         for barrel, depends upon layer
                   0 to <981        for barrel "simple layer" geometry
                   0 to <23         for ec (fewer for last 4 modules/wheels due
                                           to smaller inner radius)


Function Members (Methods)

public:
virtual~AtlTRTDigit()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
AtlTRTDigit()
AtlTRTDigit(const AtlTRTDigit&)
AtlTRTDigit(Int_t Id, Float_t DriftTime, Float_t DriftRadius, UInt_t Digit)
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidClear(Option_t* option = "")
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
UInt_tDigit() const
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
Float_tHepDriftChamberDigit::DriftRadius() const
Float_tHepDriftChamberDigit::DriftTime() const
virtual voidTObject::Dump() constMENU
Int_tEndCapOrBarrel() const
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
Int_tFirstSetBit()
Float_tHepDriftChamberDigit::FittedRadius() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
Int_tHepDigit::GetId() const
Int_tGetN_Islands()
Int_tGetN_Transitions()
Int_tGetN_Zeros(Int_t island)
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
Bool_tHasSetBitAt(Int_t bit)
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_tIsHighThrHit() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
Int_tLastSetBit()
Int_tLeadingEdge()
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
Int_tModuleOrWheel() const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
voidTObject::operator delete(void* ptr)
voidTObject::operator delete(void* ptr, void* vp)
voidTObject::operator delete[](void* ptr)
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)
AtlTRTDigit&operator=(const AtlTRTDigit&)
virtual voidTObject::Paint(Option_t* option = "")
Int_tPhiSector() const
virtual voidTObject::Pop()
virtual voidPrint(Option_t* option = "") const
static voidPrintFooter()
static voidPrintHeader()
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(ostream& 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)
voidSetEndCapOrBarrel(Int_t EndCapOrBarrel)
voidHepDriftChamberDigit::SetFittedRadius(Float_t FittedRadius)
voidHepDigit::SetId(Int_t Id)
voidSetModuleOrWheel(Int_t ModuleOrWheel)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetPhiSector(Int_t PhiSector)
voidSetStraw(Int_t Straw)
voidSetStrawLayer(Int_t StrawLayer)
voidHepDriftChamberDigit::SetT0(Float_t T0)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp) const
Int_tStraw() const
Int_tStrawLayer() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Float_tHepDriftChamberDigit::T0() const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
Float_tTimeOverThreshold(Option_t* option = "prsnt") const
Int_tTrailingEdge()
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

public:
static TObject::(anonymous)TObject::kBitMask
static TObject::EStatusBitsTObject::kCanDelete
static TObject::EStatusBitsTObject::kCannotPick
static TObject::EStatusBitsTObject::kHasUUID
static TObject::EStatusBitsTObject::kInvalidObject
static TObject::(anonymous)TObject::kIsOnHeap
static TObject::EStatusBitsTObject::kIsReferenced
static TObject::EStatusBitsTObject::kMustCleanup
static TObject::EStatusBitsTObject::kNoContextMenu
static TObject::(anonymous)TObject::kNotDeleted
static TObject::EStatusBitsTObject::kObjInCanvas
static TObject::(anonymous)TObject::kOverwrite
static TObject::(anonymous)TObject::kSingleKey
static TObject::(anonymous)TObject::kWriteDelete
static TObject::(anonymous)TObject::kZombie
protected:
UInt_tfDigitTRT digitisation bit pattern
Float_tHepDriftChamberDigit::fDriftRadiusRadius of drift circle (mum)
Float_tHepDriftChamberDigit::fDriftTimeDrift time (ns)
Int_tfEndCapOrBarrelHit is barrel or endcap
Float_tHepDriftChamberDigit::fFittedRadiusRadius determined by tracking (mum)
Int_tHepDigit::fIdId number (for convenience only)
Int_tfModuleOrWheelModule (barrel) or wheel (endcap) of the hit
Int_tfPhiSectorPhi sector of the hit
Int_tfStrawStraw number of the hit in a layer
Int_tfStrawLayerStraw layer of the hit
Float_tHepDriftChamberDigit::fT0Individual timing constant (ns)

Class Charts

Inheritance Chart:
TObject
HepDigit
HepDriftChamberDigit
AtlTRTDigit

Function documentation

AtlTRTDigit()
 Default constructor

AtlTRTDigit(Int_t Id, Float_t DriftTime, Float_t DriftRadius, UInt_t Digit)
 Normal constructor

~AtlTRTDigit()
 Default destructor

void Clear(Option_t* option = "")
 Clear this object

void Print(Option_t* option = "") const
 Print out TRT hit

 Options available:
   "nohead" - No header containing the variable names is
              displayed. Useful when printing a whole table
              for a list of TRT hits

void PrintHeader()
 Print information header

void PrintFooter()
 Print footer

Bool_t IsHighThrHit() const
 Check if hit is a high-threshold hit

Bool_t HasSetBitAt(Int_t bit)
 Check whether a bit is set. Choose the bit in the
 range: 0 < bit < 28.

Int_t FirstSetBit()
 Returns the first set LT bit in the digit. 1 < bit < 24.

Int_t LastSetBit()
 Returns the last set LT bit in the digit. 1 < bit < 24.

Int_t LeadingEdge()
 Return the leading edge of the signal. For the time being this
 is just the same as FirstSetBit(), but we might want to change
 this in the future.

Int_t TrailingEdge()
 Return the trailing edge of the signal. For the time being this
 is just the same as LastSetBit(), but we might want to change
 this in the future.

Int_t GetN_Transitions()
 Returns the number of transitions in the digit.
 A transition here means a change in the state
 of low threshold bits along the bitpattern.

 The following digit has 5 transitions:

          000011111110001111110011

Int_t GetN_Islands()
 Returns the number of islands in the digit.
 An island here means a group of subsequenly
 set bits in the bitpattern.

 The following digit has 3 islands:

          000011111110001111110011

Int_t GetN_Zeros(Int_t island)
 Returns the number of zeros in a given hole.

Float_t TimeOverThreshold(Option_t* option = "prsnt") const
 returns the Time-Over-Threshold of a TRT hit. The option string
 determines which definition should be used to calculate the
 Time-Over-Threshold. The following definitions are available:

    A) "ctb"    - Definition as to Athena 12.0.6 and Combined Test Beam
    B) "smpl"   - Most simple Time-over-Threshold definition
    C) "prsnt"  - The present official Time-over-Threshold definition


  A) "ctb"

 This is the standard Time-Over-Threshold of a TRT hit as defined for
 Combined Test Beam or Athena 12.0.6. The procedure is as follows:

 1) We look for a valid trailing edge which in this case is the
    very last set bit.
 2) We look for a valid leading edge which in this case is the
    first set bit.
 3) We consider all bits in between the leading and trailing edge set.
    The Time-over-Threshold hence is the number of these bits multiplied
    by 3.125 ns.


  B) "smpl"

 This is the most simple definition. We count all set bits and multiply
 the result by 3.125 ns. We do not care about leading edges in the very
 first or trailing edges in the very last bit.


  C) "prsnt"

 This definition is similar to definition A) but the trailing edge
 is not allowed to be situated in the very last (the 24th) time bin.
 This is the present official Time-over-Threshold of the TRT hits.


AtlTRTDigit()
UInt_t Digit() const
{ return fDigit; }
Int_t EndCapOrBarrel() const
{ return fEndCapOrBarrel; }
Int_t PhiSector() const
{ return fPhiSector; }
Int_t ModuleOrWheel() const
{ return fModuleOrWheel; }
Int_t StrawLayer() const
{ return fStrawLayer; }
Int_t Straw() const
{ return fStraw; }
void SetEndCapOrBarrel(Int_t EndCapOrBarrel)
void SetPhiSector(Int_t PhiSector)
void SetModuleOrWheel(Int_t ModuleOrWheel)
void SetStrawLayer(Int_t StrawLayer)
void SetStraw(Int_t Straw)