ROOT logo
AliRoot » MUON » AliMUONTrackReconstructorK

class AliMUONTrackReconstructorK: public AliMUONVTrackReconstructor

 \class AliMUONTrackReconstructorK

 MUON track reconstructor using the kalman 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:
AliMUONTrackReconstructorK(const AliMUONRecoParam* recoParam, AliMUONVClusterServer* clusterServer, const AliMUONGeometryTransformer* transformer)
virtual~AliMUONTrackReconstructorK()
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:
AliMUONTrackReconstructorK(const AliMUONTrackReconstructorK& rhs)
Bool_tFollowTrackInChamber(AliMUONTrack& trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextChamber)
Bool_tFollowTrackInStation(AliMUONTrack& trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextStation)
AliMUONTrackReconstructorK&operator=(const AliMUONTrackReconstructorK& rhs)
Bool_tRecoverTrack(AliMUONTrack& track, AliMUONVClusterStore& clusterStore, Int_t nextStation)
Bool_tRetracePartialTrack(AliMUONTrack& trackCandidate, const AliMUONTrackParam* startingTrackParam)
Bool_tRetraceTrack(AliMUONTrack& trackCandidate, Bool_t resetSeed)
Double_tRunKalmanFilter(AliMUONTrackParam& trackParamAtCluster)
Bool_tRunSmoother(AliMUONTrack& track)
voidUpdateTrack(AliMUONTrack& track, AliMUONTrackParam& trackParamAtCluster, Double_t addChi2)
voidUpdateTrack(AliMUONTrack& track, AliMUONTrackParam& trackParamAtCluster1, AliMUONTrackParam& trackParamAtCluster2, Double_t addChi2AtCluster1, Double_t addChi2AtCluster2)

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
AliMUONTrackReconstructorK

Function documentation

AliMUONTrackReconstructorK(const AliMUONRecoParam* recoParam, AliMUONVClusterServer* clusterServer, const AliMUONGeometryTransformer* transformer)
 Constructor
~AliMUONTrackReconstructorK()
 Destructor
Bool_t MakeTrackCandidates(AliMUONVClusterStore& clusterStore)
 To make track candidates (assuming linear propagation if AliMUONRecoParam::MakeTrackCandidatesFast() return 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 if both stations are requested (two otherwise).
 Keep only best candidates or all of them according to the flag AliMUONRecoParam::TrackAllTracks().
Bool_t MakeMoreTrackCandidates(AliMUONVClusterStore& clusterStore)
 To make extra track candidates assuming linear propagation:
 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 stations are requested (two otherwise).
 Keep only best candidates or all of them according to the flag fgkTrackAllTracks.
Bool_t RetraceTrack(AliMUONTrack& trackCandidate, Bool_t resetSeed)
 Re-run the kalman filter from the most downstream cluster to the most uptream one
 Return kFALSE in case of failure (i.e. extrapolation problem)
Bool_t RetracePartialTrack(AliMUONTrack& trackCandidate, const AliMUONTrackParam* startingTrackParam)
 Re-run the kalman filter from the cluster attached to startingTrackParam to the most uptream cluster
 Return kFALSE in case of failure (i.e. extrapolation problem)
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.
 return kTRUE if new cluster(s) have been found (otherwise return kFALSE)
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.
 return kTRUE if new cluster(s) have been found (otherwise return kFALSE)
Double_t RunKalmanFilter(AliMUONTrackParam& trackParamAtCluster)
 Compute new track parameters and their covariances including new cluster using kalman filter
 return the additional track chi2
void UpdateTrack(AliMUONTrack& track, AliMUONTrackParam& trackParamAtCluster, Double_t addChi2)
 Add 1 cluster to the track candidate
 Update chi2 of the track
void UpdateTrack(AliMUONTrack& track, AliMUONTrackParam& trackParamAtCluster1, AliMUONTrackParam& trackParamAtCluster2, Double_t addChi2AtCluster1, Double_t addChi2AtCluster2)
 Add 2 clusters to the track candidate (order is important)
 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
Bool_t RunSmoother(AliMUONTrack& track)
 Compute new track parameters and their covariances using smoother
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).
 Recompute track parameters and covariances at each clusters.
 Remove tracks getting abnormal (i.e. extrapolation failed...) after being complemented.
 Return kTRUE if one or more tracks have been complemented or removed.
void ImproveTrack(AliMUONTrack& track)
 Improve the given track by removing removable clusters with local chi2 highter than the defined cut
 Removable clusters are identified by the method AliMUONTrack::TagRemovableClusters()
 Recompute track parameters and covariances at the remaining clusters
 and if something goes wrong (i.e. extrapolation failed...) set track chi2 to max value
Bool_t FinalizeTrack(AliMUONTrack& track)
 Update track parameters and covariances at each attached cluster
 using smoother if required, if not already done
 return kFALSE if the track cannot be extrapolated uo to the last chamber
Bool_t RefitTrack(AliMUONTrack& track, Bool_t enableImprovement = kTRUE)
 re-fit the given track
AliMUONTrackReconstructorK(const AliMUONRecoParam* recoParam, AliMUONVClusterServer* clusterServer, const AliMUONGeometryTransformer* transformer)
AliMUONTrackReconstructorK& operator=(const AliMUONTrackReconstructorK& rhs)
 Not implemented copy assignment operator