ROOT logo
AliRoot » ITS » UPGRADE » AliITSUTrackerCooked

class AliITSUTrackerCooked: public AliITSUTrackerGlo

               Implementation of the ITS tracker class
    The pattern recongintion based on the "cooked covariance" approach

Function Members (Methods)

public:
AliITSUTrackerCooked(AliITSUReconstructor* rec)
virtual~AliITSUTrackerCooked()
voidTObject::AbstractMethod(const char* method) const
voidAliITSUTrackerGlo::AddProlongationHypothesis(AliITSUSeed* seed, Int_t lr)
Bool_tAliITSUTrackerGlo::AddSeedBranch(AliITSUSeed* seed)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
Bool_tAliITSUTrackerGlo::CheckBackwardMatching(AliITSUSeed* seed)
Int_tAliITSUTrackerGlo::CheckCluster(AliITSUSeed* seed, Int_t lr, Int_t clID)
voidAliITSUTrackerGlo::CheckClusterSharingConflicts(AliITSUTrackHyp* hyp)
voidAliITSUTrackerGlo::CheckClusterUsage()
static TClass*Class()
virtual const char*TObject::ClassName() const
voidAliITSUTrackerGlo::CleanHypothesis(AliITSUTrackHyp* hyp)
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tClusters2Tracks(AliESDEvent* event)
virtual Int_tAliTracker::Clusters2TracksHLT(AliESDEvent* event, const AliESDEvent*)
virtual Int_tTObject::Compare(const TObject* obj) const
Bool_tAliITSUTrackerGlo::ContainsSplitCluster(const AliITSUSeed* seed, Int_t maxSize = 99999)
virtual voidAliTracker::CookLabel(AliKalmanTrack* t, Float_t wrong) const
voidAliITSUTrackerGlo::CookMCLabel(AliITSUTrackHyp* hyp)
virtual voidTObject::Copy(TObject& object) const
voidAliITSUTrackerGlo::CreateDefaultTrackCond()
virtual voidTObject::Delete(Option_t* option = "")MENU
voidAliITSUTrackerGlo::DeleteLastSeedFromPool()
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)
voidAliITSUTrackerGlo::FinalizeHypotheses()
Bool_tAliITSUTrackerGlo::FinalizeHypothesis(AliITSUTrackHyp* hyp)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
voidAliITSUTrackerGlo::FindTrack(AliESDtrack* esdTr, Int_t esdID)
static Double_tAliTrackerBase::FitTrack(AliExternalTrackParam* trackParam, AliTrackPointArray* pointArray, Double_t mass, Double_t maxStep)
voidAliITSUTrackerGlo::FlagSeedClusters(const AliITSUSeed* seed, Bool_t flg, UShort_t hypRef)
voidAliITSUTrackerGlo::FlagSplitClusters()
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 index) const
Int_tAliITSUTrackerGlo::GetCountITSin() const
Int_tAliITSUTrackerGlo::GetCountITSout() const
Int_tAliITSUTrackerGlo::GetCountITSrefit() const
Int_tAliITSUTrackerGlo::GetCountPronlongationTrials() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
const AliEventInfo*AliTracker::GetEventInfo() const
virtual const char*TObject::GetIconName() const
AliITSURecoDet*AliITSUTrackerGlo::GetITSInterface() const
Double_tAliITSUTrackerGlo::GetMaterialBudget(const double* pnt0, const double* pnt1, double& x2x0, double& rhol) 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()
Bool_tAliITSUTrackerGlo::GetRoadWidth(AliITSUSeed* seed, int ilrA)
Bool_tGetSAonly() const
Double_tAliTrackerBase::GetSigmaX() const
Double_tAliTrackerBase::GetSigmaY() const
Double_tAliTrackerBase::GetSigmaZ() const
virtual const char*TObject::GetTitle() const
AliITSUTrackHyp*AliITSUTrackerGlo::GetTrackHyp(Int_t id) const
Int_tAliITSUTrackerGlo::GetTrackingPhase() 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
Bool_tAliITSUTrackerGlo::GoToEntranceToLayer(AliITSUSeed* seed, AliITSURecoLayer* lr, Int_t dir, Bool_t check = kFALSE)
Bool_tAliITSUTrackerGlo::GoToEntranceToLayer(AliExternalTrackParam* seed, AliITSURecoLayer* lr, Int_t dir, Bool_t check = kFALSE)
Bool_tAliITSUTrackerGlo::GoToExitFromLayer(AliITSUSeed* seed, AliITSURecoLayer* lr, Int_t dir, Bool_t check = kTRUE)
Bool_tAliITSUTrackerGlo::GoToExitFromLayer(AliExternalTrackParam* seed, AliITSURecoLayer* lr, Int_t dir, Bool_t check = kTRUE)
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
voidAliITSUTrackerGlo::Init(AliITSUReconstructor* rec)
AliITSUTrackHyp*AliITSUTrackerGlo::InitHypothesis(AliESDtrack* esdTr, Int_t esdID)
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
voidAliITSUTrackerGlo::KillSeed(AliITSUSeed* seed, Bool_t branch = kFALSE)
virtual Int_tLoadClusters(TTree* ct)
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)
voidAliITSUTrackerGlo::MarkSeedFree(AliITSUSeed* seed)
voidTObject::MayNotUse(const char* method) const
static Double_tAliTrackerBase::MeanMaterialBudget(const Double_t* start, const Double_t* end, Double_t* mparam)
Bool_tAliITSUTrackerGlo::NeedToKill(AliITSUSeed* seed, Int_t flag)
Bool_tAliITSUTrackerGlo::NeedToProlong(AliESDtrack* estTr, Int_t esdID)
AliITSUSeed*AliITSUTrackerGlo::NewSeedFromPool(const AliITSUSeed* src = 0)
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 Int_tAliTracker::PostProcess(AliESDEvent*)
virtual voidTObject::Print(Option_t* option = "") const
voidAliITSUTrackerGlo::PrintSeedClusters(const AliITSUSeed* seed, Option_t* option = "")
virtual Int_tPropagateBack(AliESDEvent* event)
Bool_tAliITSUTrackerGlo::PropagateSeed(AliITSUSeed* seed, Double_t xToGo, Double_t mass, Double_t maxStep = 1.0, Bool_t matCorr = kTRUE)
Bool_tAliITSUTrackerGlo::PropagateSeed(AliExternalTrackParam* seed, Double_t xToGo, Double_t mass, Double_t maxStep = 1.0, Bool_t matCorr = kTRUE)
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)
Bool_tRefitAt(Double_t x, AliITSUTrackCooked* seed, const AliITSUTrackCooked* t)
virtual Int_tRefitInward(AliESDEvent* event)
Double_tAliITSUTrackerGlo::RefitTrack(AliITSUTrackHyp* trc, Double_t r, Int_t& nclFit, Int_t stopCond = 0)
voidTObject::ResetBit(UInt_t f)
voidAliITSUTrackerGlo::ResetSeedsPool()
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidAliITSUTrackerGlo::SaveReducedHypothesesTree(AliITSUTrackHyp* dest)
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)
voidAliTracker::SetEventInfo(AliEventInfo* evInfo)
static voidAliTracker::SetFillResiduals(AliRecoParam::EventSpecie_t es, Bool_t flag = kTRUE)
static voidTObject::SetObjectStat(Bool_t stat)
static voidAliTracker::SetResidualsArray(TObjArray** arr)
voidSetSAonly(Bool_t sa = kTRUE)
voidAliITSUTrackerGlo::SetTrackHyp(AliITSUTrackHyp* hyp, Int_t id)
voidAliITSUTrackerGlo::SetTrackingPhase(Int_t p)
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
Bool_tAliITSUTrackerGlo::TransportToLayer(AliITSUSeed* seed, Int_t lFrom, Int_t lTo, Double_t rLim = -1)
Bool_tAliITSUTrackerGlo::TransportToLayer(AliExternalTrackParam* seed, Int_t lFrom, Int_t lTo, Double_t rLim = -1)
Bool_tAliITSUTrackerGlo::TransportToLayerX(AliExternalTrackParam* seed, Int_t lFrom, Int_t lTo, Double_t xStop)
static Bool_tAliTrackerBase::UniformField()
virtual voidUnloadClusters()
voidAliITSUTrackerGlo::UpdateESDTrack(AliITSUTrackHyp* hyp, Int_t flag)
static voidAliTrackerBase::UpdateTrack(AliExternalTrackParam&, const AliExternalTrackParam&)
virtual voidAliTracker::UseClusters(const AliKalmanTrack* t, Int_t from = 0) const
virtual voidTObject::UseCurrentStyle()
voidAliITSUTrackerGlo::ValidateAllowedBranches(Int_t accMax)
voidAliITSUTrackerGlo::ValidateAllowedCandidates(Int_t ilr, Int_t accMax)
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:
AliITSUTrackerCooked(const AliITSUTrackerCooked&)
Bool_tAddCookedSeed(const Float_t* r1, Int_t l1, Int_t i1, const Float_t* r2, Int_t l2, Int_t i2, const AliCluster* c3, Int_t l3, Int_t i3)
TObjArray*AliITSUTrackerGlo::BookControlHistos(const char* pref)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidFollowProlongation()
Int_tAliITSUTrackerGlo::GetHistoID(Int_t lr, Int_t hid, Int_t pass = 0, Int_t phase = 0)
Int_tMakeSeeds()
voidTObject::MakeZombie()
TObject*&AliITSUTrackerGlo::NextFreeSeed()
voidResetBestTrack()
voidResetTrackToFollow(const AliITSUTrackCooked& t)
Int_tTakeNextProlongation()

Data Members

protected:
TObjArray*AliITSUTrackerGlo::fCHistoArrCorrset of histos for each tracking pass/phase: correct
TObjArray*AliITSUTrackerGlo::fCHistoArrFakeset of histos for each tracking pass/phase: fakse
Int_tAliITSUTrackerGlo::fCountITSinnumber of successful ITSin
Int_tAliITSUTrackerGlo::fCountITSoutnumber of successful ITSout
Int_tAliITSUTrackerGlo::fCountITSrefitnumber of successful ITSrefit
Int_tAliITSUTrackerGlo::fCountProlongationTrialsnumber of TPC seeds
Int_tAliITSUTrackerGlo::fCurrActLrID! current active layer ID being processed (set only when needed, not guaranteed)
Int_tAliITSUTrackerGlo::fCurrESDtrMClbits eventual mc label
AliESDtrack*AliITSUTrackerGlo::fCurrESDtrackcurrent esd track in processing
AliITSUTrackHyp*AliITSUTrackerGlo::fCurrHyp! hypotheses container for current track
AliITSURecoLayer*AliITSUTrackerGlo::fCurrLayer! current layer being processed (set only when needed, not guaranteed)
Double_tAliITSUTrackerGlo::fCurrMasscurrent track mass
Int_tAliITSUTrackerGlo::fCurrPassID! tracking pass (different tracking conditions)
AliITSUTrackCond*AliITSUTrackerGlo::fCurrTrackCond! current tracking condition
TObjArrayAliITSUTrackerGlo::fDefTrackConds! default tracking conditions
TArrayIAliITSUTrackerGlo::fESDIndex! array of ID's of freed seeds
TArrayIAliITSUTrackerGlo::fFreeSeedsID! array of ID's of freed seeds
TObjArrayAliITSUTrackerGlo::fHypStorestorage for tracks hypotheses
AliITSURecoDet*AliITSUTrackerGlo::fITSinterface to ITS, borrowed from reconstructor
Int_tAliITSUTrackerGlo::fLastSeedID! id of the pool seed on which is returned by the NextFreeSeed method
AliITSUSeed**AliITSUTrackerGlo::fLayerCandidates! array for branches of current track prolongation
Int_tAliITSUTrackerGlo::fLayerMaxCandidates! size of tmp candidates array
AliITSUMatLUT*AliITSUTrackerGlo::fMatLUTmaterial lookup table
Int_tAliITSUTrackerGlo::fNBranchesAddednumber of branches created for current seed in prolongation
Int_tAliITSUTrackerGlo::fNCandidatesAddednumber of candidates added for current seed in prolongation
Int_tAliITSUTrackerGlo::fNFreeSeeds! number of seeds freed in the pool
Int_tAliITSUTrackerGlo::fNLrActive! number of active layers
Int_tAliITSUTrackerGlo::fNTracksESDnumber of esd tracks
AliITSUReconstructor*AliITSUTrackerGlo::fReconstructorITS global reconstructor
TClonesArrayAliITSUTrackerGlo::fSeedsPool! pool for seeds
Double_tAliITSUTrackerGlo::fTrImpData[12]data on track impact on the layer
Int_tAliITSUTrackerGlo::fTrackPhaseID! tracking phase (clusters2tracks, backward, inward)
Bool_tAliITSUTrackerGlo::fUseMatLUT! use material lookup table rather than TGeo
AliITSUTrackHyp*AliITSUTrackerGlo::fWorkHyp! temporary hypothesis for track finding
static const Double_tAliITSUTrackerGlo::fgkTolertracking tolerance
private:
AliITSUTrackCooked*fBestTrack"best" track
Int_tfIindex of the current layer
Bool_tfSAonlykTRUE if the standalone tracking only
TObjArray*fSeedsTrack seeds
AliITSUTrackCooked*fTrackToFollowfollowed track
static AliITSUTrackerCooked::AliITSUlayerfgLayers[7]Layers

Class Charts

Inheritance Chart:
TObject
AliTrackerBase
AliTracker
AliITSUTrackerGlo
AliITSUTrackerCooked

Function documentation

AliITSUTrackerCooked(AliITSUReconstructor* rec)
 This default constructor needs to be provided

void ResetTrackToFollow(const AliITSUTrackCooked& t)
 Prepare to follow a new track seed

void ResetBestTrack()
 Replace the best track branch

~AliITSUTrackerCooked()
 Virtual destructor

Int_t MakeSeeds()
 This is the main pattern recongition function.
 Creates seeds out of two clusters and another point.

Int_t Clusters2Tracks(AliESDEvent* event)
 This is the main tracking function
 The clusters must already be loaded

void FollowProlongation()
 Push this track tree branch towards the primary vertex

Int_t TakeNextProlongation()
 Switch to the next track tree branch

Int_t PropagateBack(AliESDEvent* event)
 Here, we implement the Kalman smoother ?
 The clusters must already be loaded

Int_t RefitInward(AliESDEvent* event)
 Some final refit, after the outliers get removed by the smoother ?
 The clusters must be loaded

Int_t LoadClusters(TTree* ct)
 This function reads the ITSU clusters from the tree,
 sort them, distribute over the internal tracker arrays, etc

void UnloadClusters()
 This function unloads ITSU clusters from the RAM

AliCluster * GetCluster(Int_t index) const
       Return pointer to a given cluster

AliITSUTrackerCooked(AliITSUReconstructor* rec)
RefitAt(Double_t x, AliITSUTrackCooked* seed, const AliITSUTrackCooked* t)
void SetSAonly(Bool_t sa = kTRUE)
{fSAonly=sa;}
Bool_t GetSAonly() const
{return fSAonly;}
Bool_t AddCookedSeed(const Float_t* r1, Int_t l1, Int_t i1, const Float_t* r2, Int_t l2, Int_t i2, const AliCluster* c3, Int_t l3, Int_t i3)
AliITSUTrackerCooked & operator=(const AliITSUTrackerCooked& tr)