ROOT logo
AliRoot » TOF » AliTOFSDigitizer

class AliTOFSDigitizer: public TNamed

__________________________________________________________

This is a class that constructs SDigits out of Hits
A Summable Digits is the "sum" of all hits in a pad
Detector response has been simulated via the method
SimulateDetectorResponse

-- Authors: F. Pierella, A. De Caro
Use case: see AliTOFhits2sdigits.C macro in the CVS
__________________________________________________________

Function Members (Methods)

public:
AliTOFSDigitizer()
AliTOFSDigitizer(const AliTOFSDigitizer& source)
AliTOFSDigitizer(const char* HeaderFile, Int_t evNumber1 = -1, Int_t nEvents = 0)
virtual~AliTOFSDigitizer()
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 voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual voidDigitize(Option_t* verboseOption)
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 voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Float_tGetAdcBin() const
Float_tGetAdcMean() const
Float_tGetAdcRms() const
Float_tGetAddTRes() const
Int_tGetAverageTimeFlag() const
Float_tGetChargeSmearing() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Int_tGetEdgeEffect() const
Int_tGetEdgeTails() const
Float_tGetEff2Boundary() const
Float_tGetEff3Boundary() const
Float_tGetEffBoundary() const
Float_tGetEffCenter() const
Int_tGetFirstEvent() const
Float_tGetH2parameter() const
Float_tGetHparameter() const
virtual const char*TObject::GetIconName() const
Float_tGetK2parameter() const
Float_tGetKparameter() const
Float_tGetLogChargeSmearing() const
Float_tGetMinimumCharge() const
virtual const char*TNamed::GetName() const
Int_tGetNEvents() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Float_tGetPadefficiency() const
Float_tGetPulseHeightSlope() const
Float_tGetResBoundary() const
Float_tGetResCenter() const
Float_tGetResSlope() const
Int_tGetSecondEvent() const
Int_tGetTimeDelayFlag() const
Float_tGetTimeDelaySlope() const
Float_tGetTimeResolution() const
Float_tGetTimeSmearing() const
Float_tGetTimeWalkBoundary() const
Float_tGetTimeWalkCenter() const
Float_tGetTimeWalkSlope() const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::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
voidInitParameters()
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_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
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)
AliTOFSDigitizer&operator=(const AliTOFSDigitizer&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* opt) const
virtual voidPrintParameters() const
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 = "")
voidSelectSectorAndPlate(Int_t sector, Int_t plate)
voidSetAdcBin(Float_t adcBin)
voidSetAdcMean(Float_t adcMean)
voidSetAdcRms(Float_t adcRms)
voidSetAddTRes(Float_t addTRes)
voidSetAverageTimeFlag(Int_t averageTimeFlag)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetChargeSmearing(Float_t chargeSmearing)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetEdgeEffect(Int_t edgeEffect)
voidSetEdgeTails(Int_t edgeTails)
voidSetEff2Boundary(Float_t eff2Boundary)
voidSetEff3Boundary(Float_t eff3Boundary)
voidSetEffBoundary(Float_t effBoundary)
voidSetEffCenter(Float_t effCenter)
voidSetFirstEvent(Int_t event1)
voidSetH2parameter(Float_t h2parameter)
voidSetHparameter(Float_t hparameter)
voidSetK2parameter(Float_t k2parameter)
voidSetKparameter(Float_t kparameter)
voidSetLogChargeSmearing(Float_t logChargeSmearing)
voidSetMinimumCharge(Float_t minimumCharge)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetPadefficiency(Float_t padefficiency)
voidSetPulseHeightSlope(Float_t pulseHeightSlope)
voidSetResBoundary(Float_t resBoundary)
voidSetResCenter(Float_t resCenter)
voidSetResSlope(Float_t resSlope)
voidSetSDigitsFile(char*) const
voidSetSecondEvent(Int_t event2)
voidSetTimeDelayFlag(Int_t timeDelayFlag)
voidSetTimeDelaySlope(Float_t timeDelaySlope)
voidSetTimeResolution(Float_t time)
voidSetTimeSmearing(Float_t timeSmearing)
voidSetTimeWalkBoundary(Float_t timeWalkBoundary)
voidSetTimeWalkCenter(Float_t timeWalkCenter)
voidSetTimeWalkSlope(Float_t timeWalkSlope)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual voidSimulateDetectorResponse(Float_t z0, Float_t x0, Float_t geantTime, Int_t& nActivatedPads, Int_t& nFiredPads, Bool_t* isFired, Int_t* nPlace, Float_t* qInduced, Float_t* tofTime, Float_t& averageTime)
virtual voidSimulateDetectorResponseOLD(Float_t z0, Float_t x0, Float_t geantTime, Int_t& nActivatedPads, Int_t& nFiredPads, Bool_t* isFired, Int_t* nPlace, Float_t* qInduced, Float_t* tofTime, Float_t& averageTime)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_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
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:
TStringTNamed::fNameobject identifier
TStringTNamed::fTitleobject title
private:
Float_tfAdcBincharge-window for the ADC bins [pC]
Float_tfAdcMeanmean value for the ADC spectrum [bins]
Float_tfAdcRmsrms value for the ADC spectrum [bins]
Float_tfAddTResadditional contribution to
Int_tfAverageTimeFlagflag (see the setter for details)
AliTOFcalib*fCalib! calibration object
Float_tfChargeSmearingSmearing in charge in (q1/q2) vs x plot
Int_tfEdgeEffectedge effects option
Int_tfEdgeTailsedge tails option
Float_tfEff2Boundaryefficiency value at H2parameter
Float_tfEff3Boundaryefficiency value at K2parameter
Float_tfEffBoundaryefficiency at the boundary of the pad
Float_tfEffCenterefficiency in the central region of the pad
Int_tfEvent1lower bound for events to sdigitize
Int_tfEvent2upper bound for events to sdigitize
Float_tfH2parameterparameter to fit the efficiency
TStringfHeadersFileinput file
Float_tfHparametersensitive edge (to produce hits on the neighbouring pads)
Float_tfK2parameterparameter to fit the efficiency
Float_tfKparametersensitive edge (going ahead towards the center
Float_tfLogChargeSmearingSmearing in log of charge ratio
Float_tfMinimumChargeMinimum charge amount which could be induced
Float_tfPulseHeightSlopeIt determines the charge amount induced
Float_tfResBoundaryresolution (ps) at the boundary of the pad
Float_tfResCenterresolution (ps) in the central region of the pad
Float_tfResSlopeslope (ps/K) for neighbouring pad
AliRunLoader*fRunLoader! Run Loader
Int_tfSelectedPlateplate number for sdigitization
Int_tfSelectedSectorsector number for sdigitization
AliLoader*fTOFLoader! Loader
Int_tfTimeDelayFlagflag for delay due to the PulseHeightEffect
Float_tfTimeDelaySlopeIt determines the time delay. This is the slope
Float_tfTimeResolutiontime resolution (ps)
Float_tfTimeSmearingSmearing in time in time vs log(q1/q2) plot
Float_tfTimeWalkBoundarytime walk (ps) at the boundary of the pad
Float_tfTimeWalkCentertime walk (ps) in the central region of the pad
Float_tfTimeWalkSlopeslope (ps/K) for neighbouring pad
Float_tfpadefficiencyintrinsic pad efficiency, used if fEdgeEffect==0
TF1*ftailpointer to formula for time with tail

Class Charts

Inheritance Chart:
TNamed
AliTOFSDigitizer

Function documentation

AliTOFSDigitizer()
 ctor
AliTOFSDigitizer(const AliTOFSDigitizer& source)
 copy constructor
this->fTOFGeometry=source.fTOFGeometry;
AliTOFSDigitizer& operator=(const AliTOFSDigitizer& )
 ass. op.
AliTOFSDigitizer(const char* HeaderFile, Int_t evNumber1 = -1, Int_t nEvents = 0)
ctor, reading from input file
~AliTOFSDigitizer()
 dtor
void InitParameters()
 set parameters for detector simulation
void Digitize(Option_t* verboseOption)
execute TOF sdigitization
void Print(Option_t* opt) const
void SelectSectorAndPlate(Int_t sector, Int_t plate)
Select sector and plate
void SimulateDetectorResponse(Float_t z0, Float_t x0, Float_t geantTime, Int_t& nActivatedPads, Int_t& nFiredPads, Bool_t* isFired, Int_t* nPlace, Float_t* qInduced, Float_t* tofTime, Float_t& averageTime)
 Description:
 Input:  z0, x0 - hit position in the strip system (0,0 - center of the strip), cm
         geantTime - time generated by Geant, ns
 Output: nActivatedPads - the number of pads activated by the hit (1 || 2 || 4)
         nFiredPads - the number of pads fired (really activated) by the hit (nFiredPads <= nActivatedPads)
         qInduced[iPad]- charge induced on pad, arb. units
                         this array is initialized at zero by the caller
         tofAfterSimul[iPad] - time calculated with edge effect algorithm, ns
                                   this array is initialized at zero by the caller
         averageTime - time given by pad hited by the Geant track taking into account the times (weighted) given by the pads fired for edge effect also.
                       The weight is given by the qInduced[iPad]/qCenterPad
                                   this variable is initialized at zero by the caller
         nPlace[iPad] - the number of the pad place, iPad = 0, 1, 2, 3
                                   this variable is initialized at zero by the caller

 Description of used variables:
         eff[iPad] - efficiency of the pad
         res[iPad] - resolution of the pad, ns
         timeWalk[iPad] - time walk of the pad, ns
         timeDelay[iPad] - time delay for neighbouring pad to hited pad, ns
         PadId[iPad] - Pad Identifier
                    E | F    -->   PadId[iPad] = 5 | 6
                    A | B    -->   PadId[iPad] = 1 | 2
                    C | D    -->   PadId[iPad] = 3 | 4
         nTail[iPad] - the tail number, = 1 for tailA, = 2 for tailB
         qCenterPad - charge extimated for each pad, arb. units
         weightsSum - sum of weights extimated for each pad fired, arb. units
void SimulateDetectorResponseOLD(Float_t z0, Float_t x0, Float_t geantTime, Int_t& nActivatedPads, Int_t& nFiredPads, Bool_t* isFired, Int_t* nPlace, Float_t* qInduced, Float_t* tofTime, Float_t& averageTime)
 Description:
 Input:  z0, x0 - hit position in the strip system (0,0 - center of the strip), cm
         geantTime - time generated by Geant, ns
 Output: nActivatedPads - the number of pads activated by the hit (1 || 2 || 4)
         nFiredPads - the number of pads fired (really activated) by the hit (nFiredPads <= nActivatedPads)
         qInduced[iPad]- charge induced on pad, arb. units
                         this array is initialized at zero by the caller
         tofAfterSimul[iPad] - time calculated with edge effect algorithm, ns
                                   this array is initialized at zero by the caller
         averageTime - time given by pad hited by the Geant track taking into account the times (weighted) given by the pads fired for edge effect also.
                       The weight is given by the qInduced[iPad]/qCenterPad
                                   this variable is initialized at zero by the caller
         nPlace[iPad] - the number of the pad place, iPad = 0, 1, 2, 3
                                   this variable is initialized at zero by the caller

 Description of used variables:
         eff[iPad] - efficiency of the pad
         res[iPad] - resolution of the pad, ns
         timeWalk[iPad] - time walk of the pad, ns
         timeDelay[iPad] - time delay for neighbouring pad to hited pad, ns
         PadId[iPad] - Pad Identifier
                    E | F    -->   PadId[iPad] = 5 | 6
                    A | B    -->   PadId[iPad] = 1 | 2
                    C | D    -->   PadId[iPad] = 3 | 4
         nTail[iPad] - the tail number, = 1 for tailA, = 2 for tailB
         qCenterPad - charge extimated for each pad, arb. units
         weightsSum - sum of weights extimated for each pad fired, arb. units
void PrintParameters() const
 Print parameters used for sdigitization

void SetSDigitsFile(char* ) const
{;}
void SetFirstEvent(Int_t event1)
{fEvent1 = event1;}
void SetSecondEvent(Int_t event2)
{fEvent2 = event2;}
Int_t GetFirstEvent() const
{return fEvent1;}
Int_t GetSecondEvent() const
{return fEvent2;}
Int_t GetNEvents() const
{return (fEvent2-fEvent1);}
void SetPadefficiency(Float_t padefficiency)
 setters and getters for detector simulation
 it summarizes all it is known about TOF strip
{fpadefficiency=padefficiency;}
void SetEdgeEffect(Int_t edgeEffect)
{fEdgeEffect=edgeEffect;}
void SetEdgeTails(Int_t edgeTails)
{fEdgeTails=edgeTails;}
void SetHparameter(Float_t hparameter)
{fHparameter=hparameter;}
void SetH2parameter(Float_t h2parameter)
{fH2parameter=h2parameter;}
void SetKparameter(Float_t kparameter)
{fKparameter=kparameter;}
void SetK2parameter(Float_t k2parameter)
{fK2parameter=k2parameter;}
void SetEffCenter(Float_t effCenter)
{fEffCenter=effCenter;}
void SetEffBoundary(Float_t effBoundary)
{fEffBoundary=effBoundary;}
void SetEff2Boundary(Float_t eff2Boundary)
{fEff2Boundary=eff2Boundary;}
void SetEff3Boundary(Float_t eff3Boundary)
{fEff3Boundary=eff3Boundary;}
void SetAddTRes(Float_t addTRes)
{fAddTRes=addTRes;}
void SetResCenter(Float_t resCenter)
{fResCenter=resCenter;}
void SetResBoundary(Float_t resBoundary)
{fResBoundary=resBoundary;}
void SetResSlope(Float_t resSlope)
{fResSlope=resSlope;}
void SetTimeWalkCenter(Float_t timeWalkCenter)
{fTimeWalkCenter=timeWalkCenter;}
void SetTimeWalkBoundary(Float_t timeWalkBoundary)
{fTimeWalkBoundary=timeWalkBoundary;}
void SetTimeWalkSlope(Float_t timeWalkSlope)
{fTimeWalkSlope=timeWalkSlope;}
void SetTimeDelayFlag(Int_t timeDelayFlag)
{fTimeDelayFlag=timeDelayFlag;}
void SetPulseHeightSlope(Float_t pulseHeightSlope)
{fPulseHeightSlope=pulseHeightSlope;}
void SetTimeDelaySlope(Float_t timeDelaySlope)
{fTimeDelaySlope=timeDelaySlope;}
void SetMinimumCharge(Float_t minimumCharge)
{fMinimumCharge=minimumCharge;}
void SetChargeSmearing(Float_t chargeSmearing)
{fChargeSmearing=chargeSmearing;}
void SetLogChargeSmearing(Float_t logChargeSmearing)
{fLogChargeSmearing=logChargeSmearing;}
void SetTimeSmearing(Float_t timeSmearing)
{fTimeSmearing=timeSmearing;}
void SetAverageTimeFlag(Int_t averageTimeFlag)
{fAverageTimeFlag=averageTimeFlag;}
void SetAdcBin(Float_t adcBin)
{fAdcBin=adcBin;}
void SetAdcMean(Float_t adcMean)
{fAdcMean=adcMean;}
void SetAdcRms(Float_t adcRms)
{fAdcRms=adcRms;}
void SetTimeResolution(Float_t time)
Float_t GetPadefficiency() const
{return fpadefficiency;}
Int_t GetEdgeEffect() const
{return fEdgeEffect;}
Int_t GetEdgeTails() const
{return fEdgeTails;}
Float_t GetHparameter() const
{return fHparameter;}
Float_t GetH2parameter() const
{return fH2parameter;}
Float_t GetKparameter() const
{return fKparameter;}
Float_t GetK2parameter() const
{return fK2parameter;}
Float_t GetEffCenter() const
{return fEffCenter;}
Float_t GetEffBoundary() const
{return fEffBoundary;}
Float_t GetEff2Boundary() const
{return fEff2Boundary;}
Float_t GetEff3Boundary() const
{return fEff3Boundary;}
Float_t GetAddTRes() const
{return fAddTRes;}
Float_t GetResCenter() const
{return fResCenter;}
Float_t GetResBoundary() const
{return fResBoundary;}
Float_t GetResSlope() const
{return fResSlope;}
Float_t GetTimeWalkCenter() const
{return fTimeWalkCenter;}
Float_t GetTimeWalkBoundary() const
Float_t GetTimeWalkSlope() const
{return fTimeWalkSlope;}
Int_t GetTimeDelayFlag() const
{return fTimeDelayFlag;}
Float_t GetPulseHeightSlope() const
Float_t GetTimeDelaySlope() const
{return fTimeDelaySlope;}
Float_t GetMinimumCharge() const
{return fMinimumCharge;}
Float_t GetChargeSmearing() const
{return fChargeSmearing;}
Float_t GetLogChargeSmearing() const
Float_t GetTimeSmearing() const
{return fTimeSmearing;}
Int_t GetAverageTimeFlag() const
Float_t GetAdcBin() const
{return fAdcBin;}
Float_t GetAdcMean() const
{return fAdcMean;}
Float_t GetAdcRms() const
{return fAdcRms;}
Float_t GetTimeResolution() const
{return fTimeResolution;}