ROOT logo
AliRoot » MUON » AliMUONTrackReconstructor

class AliMUONTrackReconstructor: public AliMUONVTrackReconstructor

 \class AliMUONTrackReconstructor
 MUON track reconstructor using the original method

 This class contains as data:
 - the parameters for the track reconstruction

 It contains as methods, among others:
 - MakeTracks to build the tracks

Function Members (Methods)

public:
AliMUONTrackReconstructor(const AliMUONRecoParam* recoParam, AliMUONVClusterServer* clusterServer, const AliMUONGeometryTransformer* transformer)
virtual~AliMUONTrackReconstructor()
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
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
voidAliMUONVTrackReconstructor::EventReconstruct(AliMUONVClusterStore& clusterStore, AliMUONVTrackStore& trackStore)
voidAliMUONVTrackReconstructor::EventReconstructTrigger(const AliMUONTriggerCircuit& triggerCircuit, const AliMUONVTriggerStore& triggerStore, AliMUONVTriggerTrackStore& triggerTrackStore)
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
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
const AliMUONRecoParam*AliMUONVTrackReconstructor::GetRecoParam() const
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
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)
virtual Bool_tRefitTrack(AliMUONTrack& track, Bool_t enableImprovement = kTRUE)
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)
static voidTObject::SetObjectStat(Bool_t stat)
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
Bool_tAliMUONVTrackReconstructor::TriggerToTrack(const AliMUONTriggerCircuit& circuit, const AliMUONLocalTrigger& locTrg, AliMUONTriggerTrack& triggerTrack, UChar_t globalTriggerPattern = 0)
virtual voidTObject::UseCurrentStyle()
voidAliMUONVTrackReconstructor::ValidateTracksWithTrigger(AliMUONVTrackStore& trackStore, const AliMUONVTriggerTrackStore& triggerTrackStore, const AliMUONVTriggerStore& triggerStore, const AliMUONTrackHitPattern& trackHitPattern)
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:
voidAliMUONVTrackReconstructor::AskForNewClustersInChamber(const AliMUONTrackParam& trackParam, AliMUONVClusterStore& clusterStore, Int_t chamber)
voidAliMUONVTrackReconstructor::AskForNewClustersInStation(const AliMUONTrackParam& trackParam, AliMUONVClusterStore& clusterStore, Int_t station)
voidAliMUONVTrackReconstructor::ChangeMonoCathodClusterRes(AliMUONTrack& track)
virtual Bool_tComplementTracks(const AliMUONVClusterStore& clusterStore)
voidAliMUONVTrackReconstructor::DiscardMonoCathodClusters()
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidAliMUONVTrackReconstructor::Finalize()
virtual Bool_tFinalizeTrack(AliMUONTrack& track)
Bool_tAliMUONVTrackReconstructor::FollowLinearTrackInChamber(AliMUONTrack& trackCandidate, const AliMUONVClusterStore& clusterStore, Int_t nextChamber)
Bool_tAliMUONVTrackReconstructor::FollowLinearTrackInStation(AliMUONTrack& trackCandidate, const AliMUONVClusterStore& clusterStore, Int_t nextStation)
virtual Bool_tFollowTracks(AliMUONVClusterStore& clusterStore)
virtual voidImproveTrack(AliMUONTrack& track)
voidAliMUONVTrackReconstructor::ImproveTracks()
Bool_tAliMUONVTrackReconstructor::IsAcceptable(AliMUONTrackParam& trackParam)
virtual Bool_tMakeMoreTrackCandidates(AliMUONVClusterStore& clusterStore)
TClonesArray*AliMUONVTrackReconstructor::MakeSegmentsBetweenChambers(const AliMUONVClusterStore& clusterStore, Int_t ch1, Int_t ch2)
virtual Bool_tMakeTrackCandidates(AliMUONVClusterStore& clusterStore)
voidTObject::MakeZombie()
voidAliMUONVTrackReconstructor::RemoveBadTracks()
voidAliMUONVTrackReconstructor::RemoveConnectedTracks(Int_t stMin, Int_t stMax, Bool_t all)
voidAliMUONVTrackReconstructor::RemoveDoubleTracks()
voidAliMUONVTrackReconstructor::RemoveIdenticalTracks()
voidAliMUONVTrackReconstructor::RemoveUsedSegments(TClonesArray& segments)
voidAliMUONVTrackReconstructor::TagConnectedTracks(Int_t stMin, Int_t stMax, Bool_t all)
Double_tAliMUONVTrackReconstructor::TryOneCluster(const AliMUONTrackParam& trackParam, AliMUONVCluster* cluster, AliMUONTrackParam& trackParamAtCluster, Bool_t updatePropagator = kFALSE)
Bool_tAliMUONVTrackReconstructor::TryOneClusterFast(const AliMUONTrackParam& trackParam, const AliMUONVCluster* cluster)
Double_tAliMUONVTrackReconstructor::TryTwoClustersFast(const AliMUONTrackParam& trackParamAtCluster1, AliMUONVCluster* cluster2, AliMUONTrackParam& trackParamAtCluster2)
private:
AliMUONTrackReconstructor(const AliMUONTrackReconstructor& rhs)
voidFit(AliMUONTrack& track, Bool_t includeMCS, Bool_t fitWithVertex, Bool_t calcCov)
Bool_tFollowTrackInChamber(AliMUONTrack& trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextChamber)
Bool_tFollowTrackInStation(AliMUONTrack& trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextStation)
AliMUONTrackReconstructor&operator=(const AliMUONTrackReconstructor& rhs)
Bool_tRecoverTrack(AliMUONTrack& track, AliMUONVClusterStore& clusterStore, Int_t nextStation)
voidSetVertexErrXY2ForFit(AliMUONTrack& trackCandidate)
Double_tTryTwoClusters(const AliMUONTrackParam& trackParamAtCluster, AliMUONVCluster* cluster2, AliMUONTrackParam& trackParamAtCluster2)
voidUpdateTrack(AliMUONTrack& track, AliMUONTrackParam& trackParamAtCluster)
voidUpdateTrack(AliMUONTrack& track, AliMUONTrackParam& trackParamAtCluster1, AliMUONTrackParam& trackParamAtCluster2)

Data Members

protected:
AliMUONVClusterServer*AliMUONVTrackReconstructor::fClusterServer/< reference to our cluster server
Double_t*AliMUONVTrackReconstructor::fMaxMCSAngle2/< maximum angle dispersion due to MCS
Int_tAliMUONVTrackReconstructor::fNRecTracks/< number of reconstructed tracks
TClonesArray*AliMUONVTrackReconstructor::fRecTracksPtr/< pointer to array of reconstructed tracks
const AliMUONRecoParam*AliMUONVTrackReconstructor::fkRecoParam/< reference to reco parameters
const AliMUONGeometryTransformer*AliMUONVTrackReconstructor::fkTransformer!< geometry transformer (not owner)

Class Charts

Inheritance Chart:
TObject
AliMUONVTrackReconstructor
AliMUONTrackReconstructor

Function documentation

AliMUONTrackReconstructor(const AliMUONRecoParam* recoParam, AliMUONVClusterServer* clusterServer, const AliMUONGeometryTransformer* transformer)
 Constructor
~AliMUONTrackReconstructor()
 Destructor
Bool_t MakeTrackCandidates(AliMUONVClusterStore& clusterStore)
 To make track candidates (assuming linear propagation if the flag fgkMakeTrackCandidatesFast is set to kTRUE):
 Start with segments station(1..) 4 or 5 then follow track in station 5 or 4.
 Good candidates are made of at least three clusters.
 Keep only best candidates or all of them according to the flag fgkTrackAllTracks.
Bool_t MakeMoreTrackCandidates(AliMUONVClusterStore& clusterStore)
 To make extra track candidates (assuming linear propagation if the flag fgkMakeTrackCandidatesFast is set to kTRUE):
 clustering is supposed to be already done
 Start with segments made of 1 cluster in each of the stations 4 and 5 then follow track in remaining chambers.
 Good candidates are made of at least three clusters if both station are requested (two otherwise).
 Keep only best candidates or all of them according to the flag fgkTrackAllTracks.
Bool_t FollowTracks(AliMUONVClusterStore& clusterStore)
 Follow tracks in stations(1..) 3, 2 and 1
Bool_t FollowTrackInChamber(AliMUONTrack& trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextChamber)
 Follow trackCandidate in chamber(0..) nextChamber and search for compatible cluster(s)
 Keep all possibilities or only the best one(s) according to the flag fgkTrackAllTracks:
 kTRUE:  duplicate "trackCandidate" if there are several possibilities and add the new tracks at the end of
         fRecTracksPtr to avoid conficts with other track candidates at this current stage of the tracking procedure.
         Remove the obsolete "trackCandidate" at the end.
 kFALSE: add only the best cluster(s) to the "trackCandidate". Try to add a couple of clusters in priority.
Bool_t FollowTrackInStation(AliMUONTrack& trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextStation)
 Follow trackCandidate in station(0..) nextStation and search for compatible cluster(s)
 Keep all possibilities or only the best one(s) according to the flag fgkTrackAllTracks:
 kTRUE:  duplicate "trackCandidate" if there are several possibilities and add the new tracks at the end of
         fRecTracksPtr to avoid conficts with other track candidates at this current stage of the tracking procedure.
         Remove the obsolete "trackCandidate" at the end.
 kFALSE: add only the best cluster(s) to the "trackCandidate". Try to add a couple of clusters in priority.
Double_t TryTwoClusters(const AliMUONTrackParam& trackParamAtCluster, AliMUONVCluster* cluster2, AliMUONTrackParam& trackParamAtCluster2)
 Test the compatibility between the track and the 2 clusters together (using trackParam's covariance matrix):
 return the corresponding Chi2 accounting for covariances between the 2 clusters
 return trackParamAtCluster1 & 2
void UpdateTrack(AliMUONTrack& track, AliMUONTrackParam& trackParamAtCluster)
 Add 1 cluster to the track candidate
 Update chi2 of the track
void UpdateTrack(AliMUONTrack& track, AliMUONTrackParam& trackParamAtCluster1, AliMUONTrackParam& trackParamAtCluster2)
 Add 2 clusters to the track candidate
 Update track and local chi2
Bool_t RecoverTrack(AliMUONTrack& track, AliMUONVClusterStore& clusterStore, Int_t nextStation)
 Try to recover the track candidate in the next station
 by removing the worst of the two clusters attached in the current station
 Return kTRUE if recovering succeeds
void SetVertexErrXY2ForFit(AliMUONTrack& trackCandidate)
 Compute the vertex resolution square from natural vertex dispersion and
 multiple scattering effets according to trackCandidate path in absorber
 It is necessary to account for multiple scattering effects here instead of during the fit of
 the "trackCandidate" to do not influence the result by changing track resolution at vertex
void Fit(AliMUONTrack& track, Bool_t includeMCS, Bool_t fitWithVertex, Bool_t calcCov)
 Fit the track
 w/wo multiple Coulomb scattering according to "includeMCS".
 w/wo constraining the vertex according to "fitWithVertex".
 calculating or not the covariance matrix according to "calcCov".
Bool_t ComplementTracks(const AliMUONVClusterStore& clusterStore)
 Complete tracks by adding missing clusters (if there is an overlap between
 two detection elements, the track may have two clusters in the same chamber).
 Re-fit track parameters and covariances.
 Return kTRUE if one or more tracks have been complemented.
void ImproveTrack(AliMUONTrack& track)
 Improve the given track by removing clusters with local chi2 highter than the defined cut
 Recompute track parameters and covariances at the remaining clusters
Bool_t FinalizeTrack(AliMUONTrack& track)
 Recompute track parameters and covariances at each attached cluster
 from those at the first one, if not already done
Bool_t RefitTrack(AliMUONTrack& track, Bool_t enableImprovement = kTRUE)
 re-fit the given track
AliMUONTrackReconstructor(const AliMUONRecoParam* recoParam, AliMUONVClusterServer* clusterServer, const AliMUONGeometryTransformer* transformer)
AliMUONTrackReconstructor& operator=(const AliMUONTrackReconstructor& rhs)
 Not implemented copy assignment operator