ROOT logo
AliRoot » TOF » AliTOFT0v1

class AliTOFT0v1: public TObject

 This is a TTask that made the calculation of the Time zero using TOF.
 Description: The algorithm used to calculate the time zero of interaction
 using TOF detector is the following.
 We select in the ESD some "primary" particles - or tracks in the following -
 that strike the TOF detector (the larger part are pions, kaons or protons).
 We choose a set of 10 selected tracks, for each track You have the length
 of the track when the TOF is reached,
 the momentum and the time of flight
 given by the TOF detector.
 Let consider now only one set of 10 tracks (the algorithm is the same for all sets).
 Assuming the (mass) hypothesis that each track can be AUT a pion, AUT a kaon, AUT a proton,
 we consider all the 3 at 10 possible cases.
 For each track in each (mass) configuration
 (a configuration can be e.g. pion/pion/kaon/proton/pion/proton/kaon/kaon/pion/pion)
 we calculate the time zero (we know in fact the velocity of the track after
 the assumption about its mass, the time of flight given by the TOF, and the
 corresponding path travelled till the TOF detector). Then for each mass configuration we have
 10 time zero and we can calculate the ChiSquare for the current configuration using the
 weighted mean over all 10 time zero.
 We call the best assignment the mass configuration that gives the minimum value of the ChiSquare.
 We plot the weighted mean over all 10 time zero for the best assignment,
 the ChiSquare for the best assignment and the corresponding confidence level.
 The strong assumption is the MC selection of primary particles. It will be introduced
 in the future also some more realistic simulation about this point.
 Use case:
 root [0] AliTOFT0v1 * tzero = new AliTOFT0v1("galice.root")
 Warning in <TDatabasePDG::TDatabasePDG>: object already instantiated
 root [1] tzero->ExecuteTask()
 root [2] tzero->ExecuteTask("tim")
             // available parameters:
             tim - print benchmarking information
             all - print usefull informations about the number of misidentified tracks
                   and a comparison about the true configuration (known from MC) and the best
                   assignment
 Different Selections for pp and Pb-Pb: Momentum Range, Max Time, # pions
-- Author: F. Pierella
-- Mod By Silvia Arcelli, Francesco Noferini, Barbara Guerzoni
-- AliTOFT0v1 contains code speed up provided by Jens Wiechula (look-up table
   for Power3)

Function Members (Methods)

public:
AliTOFT0v1(AliESDpid* extPID = NULL)
AliTOFT0v1(AliESDEvent* event, AliESDpid* extPID = NULL)
virtual~AliTOFT0v1()
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
Double_t*DefineT0(Option_t* option, Float_t pMinCut = 3, Float_t pMaxCut = 5)
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
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
Float_tGetMomError(Int_t index, Float_t mom, Float_t texp) const
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
Double_tGetResult(Int_t i)
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() 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
voidInit(AliESDEvent* event)
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_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::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)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") 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 = "")
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)
voidSetMomBounds(Float_t pLow, Float_t pUp)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetOptimization(Bool_t flag = kFALSE)
voidSetTimeCorr(Float_t timecorr)
voidSetTimeResolution(Float_t)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
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

private:
AliESDEvent*fEventevento per il quale si vuole calcolare il T0
TObjArray*fGTracks! array of good tracks
Int_tfLookupPowerThree[15]! lookup table for power 3 to speed up the code
Float_tfLowerMomBoundmomentum lower bound for selected primary tracks
Bool_tfOptFlaguse optimized code
AliESDpid*fPIDesdclass with the detector response
Double_tfT0SigmaT0def[6]array with the event information ([0]=event time -- [1] = sigma -- [2] = tracks on the TOF -- [3] = tracks used for the event time)
Float_tfTimeCorrglobal time resolution used to calculate T0
TObjArray*fTracks! array of tracks
TObjArray*fTracksT0! array of tracks usefull for T0 estimate
Float_tfUpperMomBoundmomentum upper bound for selected primary tracks

Class Charts

Inheritance Chart:
TObject
AliTOFT0v1

Function documentation

AliTOFT0v1(AliESDpid* extPID = NULL)
 default constructor

AliTOFT0v1(AliESDEvent* event, AliESDpid* extPID = NULL)
 real constructor

AliTOFT0v1& operator=(const AliTOFT0v1& )
 assign. operator

~AliTOFT0v1()
 dtor
Init(AliESDEvent* event)
Double_t * DefineT0(Option_t* option, Float_t pMinCut = 3, Float_t pMaxCut = 5)
Float_t GetMomError(Int_t index, Float_t mom, Float_t texp) const
 Take the error extimate for the TOF time in the track reconstruction
Bool_t AcceptTrack(AliESDtrack* track)
Float_t GetSigmaToVertex(AliESDtrack* track) const
 Calculates the number of sigma to the vertex.
Bool_t CheckTPCMatching(AliESDtrack* track, Int_t imass) const
Float_t ToCalculatePower(Float_t base, Int_t exponent) const
 Returns base^exponent

Int_t ToCalculatePower(Int_t base, Int_t exponent) const
 Returns base^exponent

AliTOFT0v1(AliESDpid* extPID = NULL)
void SetMomBounds(Float_t pLow, Float_t pUp)
void SetTimeCorr(Float_t timecorr)
{fTimeCorr=timecorr;}
Double_t GetResult(Int_t i)
void  Print(Option_t* option) const ;
{if(i < 6) return fT0SigmaT0def[i]; else return -1.;}
void SetTimeResolution(Float_t )
{}
void SetOptimization(Bool_t flag = kFALSE)
{fOptFlag=flag;}