ROOT logo
AliRoot » EMCAL » AliEMCALTracker

class AliEMCALTracker: public AliTracker

 Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved.

 Author: The ALICE Off-line Project.
 Contributors are mentioned in the code where appropriate.

 Permission to use, copy, modify and distribute this software and its
 documentation strictly for non-commercial purposes is hereby granted
 without fee, provided that the above copyright notice appears in all
 copies and that both the copyright notice and this permission notice
 appear in the supporting documentation. The authors make no claims
 about the suitability of this software for any purpose. It is
 provided "as is" without express or implied warranty.


                       Class AliEMCALTracker

 Implementation of the track matching method between barrel tracks and
 EMCAL clusters.
 Besides algorithm implementation, some cuts are required to be set
 in order to define, for each track, an acceptance window where clusters
 are searched to find best match (if any).
 The class accepts as input an ESD container, and works directly on it,
 simply setting, for each of its tracks, the fEMCALindex flag, for each
 track which is matched to a cluster.
 In order to use method, one must launch PropagateBack().


 author: A. Pulvirenti (alberto.pulvirenti@ct.infn.it)
 Revised by Rongrong 2010-05-31 (rongrong.ma@cern.ch)

Function Members (Methods)

public:
AliEMCALTracker()
AliEMCALTracker(const AliEMCALTracker& t)
virtual~AliEMCALTracker()
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 voidClear(Option_t* option = "ALL")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tClusters2Tracks(AliESDEvent*)
virtual Int_tAliTracker::Clusters2TracksHLT(AliESDEvent* event, const AliESDEvent*)
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidAliTracker::CookLabel(AliKalmanTrack* t, Float_t wrong) 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 voidAliTracker::FillClusterArray(TObjArray* array) const
static voidAliTracker::FillResiduals(const AliExternalTrackParam* t, const AliCluster* c, Bool_t updated = kTRUE)
static voidAliTracker::FillResiduals(const AliExternalTrackParam* t, Double_t* p, Double_t* cov, UShort_t id, Bool_t updated = kTRUE)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
static Double_tAliTrackerBase::FitTrack(AliExternalTrackParam* trackParam, AliTrackPointArray* pointArray, Double_t mass, Double_t maxStep)
static voidAliTrackerBase::GetBxByBz(const Double_t* r, Double_t* b)
static Double_tAliTrackerBase::GetBz()
static Double_tAliTrackerBase::GetBz(const Double_t* r)
virtual AliCluster*GetCluster(Int_t) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
const AliEventInfo*AliTracker::GetEventInfo() const
virtual const char*TObject::GetIconName() 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
virtual AliPlaneEff*AliTracker::GetPlaneEff()
static TObjArray**AliTracker::GetResidualsArray()
Double_tAliTrackerBase::GetSigmaX() const
Double_tAliTrackerBase::GetSigmaY() const
Double_tAliTrackerBase::GetSigmaZ() const
virtual const char*TObject::GetTitle() const
virtual Bool_tAliTracker::GetTrackPoint(Int_t, AliTrackPoint&) const
virtual Bool_tAliTracker::GetTrackPointTrackingError(Int_t, AliTrackPoint&, const AliESDtrack*)
static Double_tAliTrackerBase::GetTrackPredictedChi2(AliExternalTrackParam* track, Double_t mass, Double_t step, const AliExternalTrackParam* backup)
virtual UInt_tTObject::GetUniqueID() const
Double_tAliTrackerBase::GetX() const
Double_tAliTrackerBase::GetY() const
Double_tAliTrackerBase::GetZ() 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
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_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual Int_tLoadClusters(TTree*)
Int_tLoadClusters(AliESDEvent* esd)
Int_tLoadTracks(AliESDEvent* esd)
virtual voidTObject::ls(Option_t* option = "") const
static Double_tAliTrackerBase::MakeC(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Double_t x3, Double_t y3)
static AliExternalTrackParam*AliTrackerBase::MakeSeed(AliTrackPoint& point0, AliTrackPoint& point1, AliTrackPoint& point2)
static Double_tAliTrackerBase::MakeSnp(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Double_t x3, Double_t y3)
static Double_tAliTrackerBase::MakeTgl(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Double_t z1, Double_t z2)
static Double_tAliTrackerBase::MakeTgl(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Double_t z1, Double_t z2, Double_t c)
voidTObject::MayNotUse(const char* method) const
static Double_tAliTrackerBase::MeanMaterialBudget(const Double_t* start, const Double_t* end, Double_t* mparam)
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)
AliEMCALTracker&operator=(const AliEMCALTracker& source)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual Int_tAliTracker::PostProcess(AliESDEvent*)
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tPropagateBack(AliESDEvent* esd)
static Bool_tAliTrackerBase::PropagateTrackTo(AliExternalTrackParam* track, Double_t x, Double_t m, Double_t maxStep, Bool_t rotateTo = kTRUE, Double_t maxSnp = 0.8, Int_t sign = 0, Bool_t addTimeStep = kFALSE, Bool_t correctMaterialBudget = kTRUE)
static Int_tAliTrackerBase::PropagateTrackTo2(AliExternalTrackParam* track, Double_t x, Double_t m, Double_t maxStep, Bool_t rotateTo = kTRUE, Double_t maxSnp = 0.8, Int_t sign = 0, Bool_t addTimeStep = kFALSE, Bool_t correctMaterialBudget = kTRUE)
static Bool_tAliTrackerBase::PropagateTrackToBxByBz(AliExternalTrackParam* track, Double_t x, Double_t m, Double_t maxStep, Bool_t rotateTo = kTRUE, Double_t maxSnp = 0.8, Int_t sign = 0, Bool_t addTimeStep = kFALSE)
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual Int_tRefitInward(AliESDEvent*)
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)
voidSetCutEta(Double_t value)
voidSetCutNITS(Double_t value)
voidSetCutNTPC(Double_t value)
voidSetCutPhi(Double_t value)
voidSetCutPt(Double_t value)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetEMCalSurfaceDistance(Double_t d)
voidAliTracker::SetEventInfo(AliEventInfo* evInfo)
static voidAliTracker::SetFillResiduals(AliRecoParam::EventSpecie_t es, Bool_t flag = kTRUE)
voidSetGeometry(AliEMCALGeometry* geom)
static voidTObject::SetObjectStat(Bool_t stat)
static voidAliTracker::SetResidualsArray(TObjArray** arr)
voidSetStepLength(Float_t length)
voidSetTrackCorrectionMode(Option_t* option)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidAliTrackerBase::SetVertex(const Double_t* xyz, const Double_t* ers = 0)
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
static Bool_tAliTrackerBase::UniformField()
virtual voidUnloadClusters()
static voidAliTrackerBase::UpdateTrack(AliExternalTrackParam&, const AliExternalTrackParam&)
virtual voidAliTracker::UseClusters(const AliKalmanTrack* t, Int_t from = 0) 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

public:
enum { kUnmatched
};
enum ETrackCorr { kTrackCorrNone
kTrackCorrMMB
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
private:
Double_tfClusterWindowSelect clusters in the window to be matched to tracks
TObjArray*fClusters! collection of EMCAL clusters (ESDCaloCluster or EMCALRecPoint)
Double_tfCutEtacut on eta difference
Double_tfCutNITSmimimum number of track hits in the ITS
Double_tfCutNTPCmimimum number of track hits in the TPC
Double_tfCutPhicut on phi difference
Double_tfCutPtmimimum pT cut on tracks
Float_tfEMCalSurfaceDistanceEMCal surface distance
AliEMCALGeometry*fGeom! EMCAL geometry
Bool_tfITSTrackSAIf ITS Tracks
Float_tfStepLength of each step in propagation
AliEMCALTracker::ETrackCorrfTrackCorrModeMaterial budget correction mode
TObjArray*fTracks! collection of tracks

Class Charts

Inheritance Chart:
TObject
AliTrackerBase
AliTracker
AliEMCALTracker

Function documentation

AliEMCALTracker()
 Default constructor.
 Initializes all simple data members to default values,
 and all collections to NULL.
 Output file name is set to a default value.

AliEMCALTracker(const AliEMCALTracker& t)
 Copy constructor
 Besides copying all parameters, duplicates all collections.

AliEMCALTracker& operator=(const AliEMCALTracker& source)
void InitParameters()
 Retrieve initialization parameters

void Clear(Option_t* option = "ALL")
 Clearing method
 Deletes all objects in arrays and the arrays themselves

Int_t LoadClusters(TTree* )
 Load EMCAL clusters in the form of AliEMCALRecPoint,
 from simulation temporary files.
 (When included in reconstruction chain, this method is used automatically)

Int_t LoadClusters(AliESDEvent* esd)
 Load EMCAL clusters in the form of AliESDCaloClusters,
 from an AliESD object.

Int_t LoadTracks(AliESDEvent* esd)
 Load ESD tracks.

void SetTrackCorrectionMode(Option_t* option)
 Set track correction mode
 gest the choice in string format and converts into
 internal enum

Int_t PropagateBack(AliESDEvent* esd)
 Main operation method.
 Gets external AliESD containing tracks to be matched.
 After executing match finding, stores in the same ESD object all infos
 and releases the object for further reconstruction steps.


 Note: should always return 0=OK, because otherwise all tracking
 is aborted for this event
Int_t FindMatchedCluster(AliESDtrack* track)
 For each track, extrapolate it to all the clusters
 Find the closest one as matched if the residuals (dEta, dPhi) satisfy the cuts

void UnloadClusters()
 Free memory from all arrays
 This method is called after the local tracking step
 so we can safely delete everything

virtual ~AliEMCALTracker()
{Clear();}
Int_t Clusters2Tracks(AliESDEvent* )
{return -1;}
Int_t RefitInward(AliESDEvent* )
{return -1;}
AliCluster* GetCluster(Int_t ) const
{return NULL;}
void SetCutEta(Double_t value)
{fCutEta=value;}
void SetCutPhi(Double_t value)
{fCutPhi=value;}
void SetGeometry(AliEMCALGeometry* geom)
{fGeom=geom;}
void SetCutPt(Double_t value)
{fCutPt=value;}
void SetCutNITS(Double_t value)
{fCutNITS=value;}
void SetCutNTPC(Double_t value)
{fCutNTPC=value;}
void SetStepLength(Float_t length)
{fStep=length;}
void SetEMCalSurfaceDistance(Double_t d)