\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
AliMUONTrackReconstructor(const AliMUONRecoParam* recoParam, AliMUONVClusterServer* clusterServer, const AliMUONGeometryTransformer* transformer) | |
virtual | ~AliMUONTrackReconstructor() |
void | TObject::AbstractMethod(const char* method) const |
virtual void | TObject::AppendPad(Option_t* option = "") |
virtual void | TObject::Browse(TBrowser* b) |
static TClass* | Class() |
virtual const char* | TObject::ClassName() const |
virtual void | TObject::Clear(Option_t* = "") |
virtual TObject* | TObject::Clone(const char* newname = "") const |
virtual Int_t | TObject::Compare(const TObject* obj) const |
virtual void | TObject::Copy(TObject& object) const |
virtual void | TObject::Delete(Option_t* option = "")MENU |
virtual Int_t | TObject::DistancetoPrimitive(Int_t px, Int_t py) |
virtual void | TObject::Draw(Option_t* option = "") |
virtual void | TObject::DrawClass() constMENU |
virtual TObject* | TObject::DrawClone(Option_t* option = "") constMENU |
virtual void | TObject::Dump() constMENU |
virtual void | TObject::Error(const char* method, const char* msgfmt) const |
void | AliMUONVTrackReconstructor::EventReconstruct(AliMUONVClusterStore& clusterStore, AliMUONVTrackStore& trackStore) |
void | AliMUONVTrackReconstructor::EventReconstructTrigger(const AliMUONTriggerCircuit& triggerCircuit, const AliMUONVTriggerStore& triggerStore, AliMUONVTriggerTrackStore& triggerTrackStore) |
virtual void | TObject::Execute(const char* method, const char* params, Int_t* error = 0) |
virtual void | TObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0) |
virtual void | TObject::ExecuteEvent(Int_t event, Int_t px, Int_t py) |
virtual void | TObject::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_t | TObject::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_t | TObject::GetObjectStat() |
virtual Option_t* | TObject::GetOption() const |
const AliMUONRecoParam* | AliMUONVTrackReconstructor::GetRecoParam() const |
virtual const char* | TObject::GetTitle() const |
virtual UInt_t | TObject::GetUniqueID() const |
virtual Bool_t | TObject::HandleTimer(TTimer* timer) |
virtual ULong_t | TObject::Hash() const |
virtual void | TObject::Info(const char* method, const char* msgfmt) const |
virtual Bool_t | TObject::InheritsFrom(const char* classname) const |
virtual Bool_t | TObject::InheritsFrom(const TClass* cl) const |
virtual void | TObject::Inspect() constMENU |
void | TObject::InvertBit(UInt_t f) |
virtual TClass* | IsA() const |
virtual Bool_t | TObject::IsEqual(const TObject* obj) const |
virtual Bool_t | TObject::IsFolder() const |
Bool_t | TObject::IsOnHeap() const |
virtual Bool_t | TObject::IsSortable() const |
Bool_t | TObject::IsZombie() const |
virtual void | TObject::ls(Option_t* option = "") const |
void | TObject::MayNotUse(const char* method) const |
virtual Bool_t | TObject::Notify() |
void | TObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const |
static void | TObject::operator delete(void* ptr) |
static void | TObject::operator delete(void* ptr, void* vp) |
static void | TObject::operator delete[](void* ptr) |
static void | TObject::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 void | TObject::Paint(Option_t* option = "") |
virtual void | TObject::Pop() |
virtual void | TObject::Print(Option_t* option = "") const |
virtual Int_t | TObject::Read(const char* name) |
virtual void | TObject::RecursiveRemove(TObject* obj) |
virtual Bool_t | RefitTrack(AliMUONTrack& track, Bool_t enableImprovement = kTRUE) |
void | TObject::ResetBit(UInt_t f) |
virtual void | TObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU |
virtual void | TObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "") |
void | TObject::SetBit(UInt_t f) |
void | TObject::SetBit(UInt_t f, Bool_t set) |
virtual void | TObject::SetDrawOption(Option_t* option = "")MENU |
static void | TObject::SetDtorOnly(void* obj) |
static void | TObject::SetObjectStat(Bool_t stat) |
virtual void | TObject::SetUniqueID(UInt_t uid) |
virtual void | ShowMembers(TMemberInspector&) |
virtual void | Streamer(TBuffer&) |
void | StreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b) |
virtual void | TObject::SysError(const char* method, const char* msgfmt) const |
Bool_t | TObject::TestBit(UInt_t f) const |
Int_t | TObject::TestBits(UInt_t f) const |
Bool_t | AliMUONVTrackReconstructor::TriggerToTrack(const AliMUONTriggerCircuit& circuit, const AliMUONLocalTrigger& locTrg, AliMUONTriggerTrack& triggerTrack, UChar_t globalTriggerPattern = 0) |
virtual void | TObject::UseCurrentStyle() |
void | AliMUONVTrackReconstructor::ValidateTracksWithTrigger(AliMUONVTrackStore& trackStore, const AliMUONVTriggerTrackStore& triggerTrackStore, const AliMUONVTriggerStore& triggerStore, const AliMUONTrackHitPattern& trackHitPattern) |
virtual void | TObject::Warning(const char* method, const char* msgfmt) const |
virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) |
virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const |
AliMUONTrackReconstructor(const AliMUONTrackReconstructor& rhs) | |
void | Fit(AliMUONTrack& track, Bool_t includeMCS, Bool_t fitWithVertex, Bool_t calcCov) |
Bool_t | FollowTrackInChamber(AliMUONTrack& trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextChamber) |
Bool_t | FollowTrackInStation(AliMUONTrack& trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextStation) |
AliMUONTrackReconstructor& | operator=(const AliMUONTrackReconstructor& rhs) |
Bool_t | RecoverTrack(AliMUONTrack& track, AliMUONVClusterStore& clusterStore, Int_t nextStation) |
void | SetVertexErrXY2ForFit(AliMUONTrack& trackCandidate) |
Double_t | TryTwoClusters(const AliMUONTrackParam& trackParamAtCluster, AliMUONVCluster* cluster2, AliMUONTrackParam& trackParamAtCluster2) |
void | UpdateTrack(AliMUONTrack& track, AliMUONTrackParam& trackParamAtCluster) |
void | UpdateTrack(AliMUONTrack& track, AliMUONTrackParam& trackParamAtCluster1, AliMUONTrackParam& trackParamAtCluster2) |
enum TObject::EStatusBits { | kCanDelete | |
kMustCleanup | ||
kObjInCanvas | ||
kIsReferenced | ||
kHasUUID | ||
kCannotPick | ||
kNoContextMenu | ||
kInvalidObject | ||
}; | ||
enum TObject::[unnamed] { | kIsOnHeap | |
kNotDeleted | ||
kZombie | ||
kBitMask | ||
kSingleKey | ||
kOverwrite | ||
kWriteDelete | ||
}; |
AliMUONVClusterServer* | AliMUONVTrackReconstructor::fClusterServer | /< reference to our cluster server |
Double_t* | AliMUONVTrackReconstructor::fMaxMCSAngle2 | /< maximum angle dispersion due to MCS |
Int_t | AliMUONVTrackReconstructor::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) |
Inheritance Chart: | ||||||||||||
|
Constructor
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.
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.
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.
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.
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
Add 1 cluster to the track candidate Update chi2 of the track
Add 2 clusters to the track candidate Update track and local chi2
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
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
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".
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.
Improve the given track by removing clusters with local chi2 highter than the defined cut Recompute track parameters and covariances at the remaining clusters
Recompute track parameters and covariances at each attached cluster from those at the first one, if not already done
Not implemented copy assignment operator