AliRoot Core  3abf5b4 (3abf5b4)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliMUONVTrackReconstructor Class Referenceabstract

Virtual class for the MUON track reconstruction. More...

#include <AliMUONVTrackReconstructor.h>

Inheritance diagram for AliMUONVTrackReconstructor:

Public Member Functions

 AliMUONVTrackReconstructor (const AliMUONRecoParam *recoParam, AliMUONVClusterServer *clusterServer, const AliMUONGeometryTransformer *transformer)
 
virtual ~AliMUONVTrackReconstructor ()
 
void EventReconstruct (AliMUONVClusterStore &clusterStore, AliMUONVTrackStore &trackStore)
 
void EventReconstructTrigger (const AliMUONTriggerCircuit &triggerCircuit, const AliMUONVTriggerStore &triggerStore, AliMUONVTriggerTrackStore &triggerTrackStore)
 
void ValidateTracksWithTrigger (AliMUONVTrackStore &trackStore, const AliMUONVTriggerTrackStore &triggerTrackStore, const AliMUONVTriggerStore &triggerStore, const AliMUONTrackHitPattern &trackHitPattern)
 
const AliMUONRecoParamGetRecoParam () const
 Return reco parameters. More...
 
virtual Bool_t RefitTrack (AliMUONTrack &track, Bool_t enableImprovement=kTRUE)=0
 Re-fit the given track. More...
 
Bool_t TriggerToTrack (const AliMUONTriggerCircuit &circuit, const AliMUONLocalTrigger &locTrg, AliMUONTriggerTrack &triggerTrack, UChar_t globalTriggerPattern=0)
 

Protected Member Functions

 AliMUONVTrackReconstructor (const AliMUONVTrackReconstructor &rhs)
 copy constructor More...
 
AliMUONVTrackReconstructoroperator= (const AliMUONVTrackReconstructor &rhs)
 assignment operator More...
 
virtual Bool_t MakeTrackCandidates (AliMUONVClusterStore &clusterStore)=0
 Make track candidates from clusters in stations(1..) 4 and 5. More...
 
virtual Bool_t MakeMoreTrackCandidates (AliMUONVClusterStore &clusterStore)=0
 Make extra track candidates from clusters in stations(1..) 4 and 5. More...
 
virtual Bool_t FollowTracks (AliMUONVClusterStore &clusterStore)=0
 Follow tracks in stations(1..) 3, 2 and 1. More...
 
virtual Bool_t ComplementTracks (const AliMUONVClusterStore &clusterStore)=0
 Complement the reconstructed tracks. More...
 
void ImproveTracks ()
 
virtual void ImproveTrack (AliMUONTrack &track)=0
 Improve the given reconstructed track. More...
 
void Finalize ()
 
virtual Bool_t FinalizeTrack (AliMUONTrack &track)=0
 Finalize the given track. More...
 
void DiscardMonoCathodClusters ()
 
void ChangeMonoCathodClusterRes (AliMUONTrack &track)
 
Bool_t IsAcceptable (AliMUONTrackParam &trackParam)
 
TClonesArray * MakeSegmentsBetweenChambers (const AliMUONVClusterStore &clusterStore, Int_t ch1, Int_t ch2)
 
void RemoveUsedSegments (TClonesArray &segments)
 
void RemoveIdenticalTracks ()
 
void RemoveDoubleTracks ()
 
void RemoveBadTracks ()
 
void RemoveConnectedTracks (Int_t stMin, Int_t stMax, Bool_t all)
 
void TagConnectedTracks (Int_t stMin, Int_t stMax, Bool_t all)
 
void AskForNewClustersInStation (const AliMUONTrackParam &trackParam, AliMUONVClusterStore &clusterStore, Int_t station)
 
void AskForNewClustersInChamber (const AliMUONTrackParam &trackParam, AliMUONVClusterStore &clusterStore, Int_t chamber)
 
Double_t TryOneCluster (const AliMUONTrackParam &trackParam, AliMUONVCluster *cluster, AliMUONTrackParam &trackParamAtCluster, Bool_t updatePropagator=kFALSE)
 
Bool_t TryOneClusterFast (const AliMUONTrackParam &trackParam, const AliMUONVCluster *cluster)
 
Double_t TryTwoClustersFast (const AliMUONTrackParam &trackParamAtCluster1, AliMUONVCluster *cluster2, AliMUONTrackParam &trackParamAtCluster2)
 
Bool_t FollowLinearTrackInChamber (AliMUONTrack &trackCandidate, const AliMUONVClusterStore &clusterStore, Int_t nextChamber)
 
Bool_t FollowLinearTrackInStation (AliMUONTrack &trackCandidate, const AliMUONVClusterStore &clusterStore, Int_t nextStation)
 

Protected Attributes

TClonesArray * fRecTracksPtr
 pointer to array of reconstructed tracks More...
 
Int_t fNRecTracks
 number of reconstructed tracks More...
 
AliMUONVClusterServerfClusterServer
 reference to our cluster server More...
 
const AliMUONRecoParamfkRecoParam
 reference to reco parameters More...
 
const AliMUONGeometryTransformerfkTransformer
 ! geometry transformer (not owner) More...
 
Double_t * fMaxMCSAngle2
 maximum angle dispersion due to MCS More...
 

Private Member Functions

void ResetTracks ()
 

Detailed Description

Virtual class for the MUON track reconstruction.

Virtual MUON track reconstructor in ALICE (class renamed from AliMUONEventReconstructor)

This class contains as data a pointer to the array of reconstructed tracks

It contains as methods, among others:

  • EventReconstruct to build the muon tracks
  • EventReconstructTrigger to build the trigger tracks
  • ValidateTracksWithTrigger to match tracker/trigger tracks

Several options and adjustable parameters are available for both KALMAN and ORIGINAL tracking algorithms. They can be changed through the AliMUONRecoParam object set in the reconstruction macro or read from the CDB (see methods in AliMUONRecoParam.h file for details)

Main parameters and options are:

  • fgkSigmaToCutForTracking : quality cut used to select new clusters to be attached to the track candidate and to select good tracks.
  • fgkMakeTrackCandidatesFast : if this flag is set to 'true', the track candidates are made assuming linear propagation between stations 4 and 5.
  • fgkTrackAllTracks : according to the value of this flag, in case that several new clusters pass the quality cut, either we consider all the possibilities (duplicating tracks) or we attach only the best cluster.
  • fgkRecoverTracks : if this flag is set to 'true', we try to recover the tracks lost during the tracking by removing the worst of the 2 clusters attached in the previous station.
  • fgkImproveTracks : if this flag is set to 'true', we try to improve the quality of the tracks at the end of the tracking by removing clusters that do not pass new quality cut (the track is removed is it does not contain enough cluster anymore).
  • fgkComplementTracks : if this flag is set to 'true', we try to improve the quality of the tracks at the end of the tracking by adding potentially missing clusters (we may have 2 clusters in the same chamber because of the overlapping of detection elements, which is not handle by the tracking algorithm).
  • fgkSigmaToCutForImprovement : quality cut used when we try to improve the quality of the tracks.

    Author
    Philippe Pillot

Definition at line 33 of file AliMUONVTrackReconstructor.h.

Constructor & Destructor Documentation

AliMUONVTrackReconstructor::AliMUONVTrackReconstructor ( const AliMUONRecoParam recoParam,
AliMUONVClusterServer clusterServer,
const AliMUONGeometryTransformer transformer 
)

Constructor for class AliMUONVTrackReconstructor WARNING: if clusterServer=0x0, no clusterization will be possible at this level

Definition at line 108 of file AliMUONVTrackReconstructor.cxx.

AliMUONVTrackReconstructor::~AliMUONVTrackReconstructor ( )
virtual

Destructor for class AliMUONVTrackReconstructor

Definition at line 139 of file AliMUONVTrackReconstructor.cxx.

AliMUONVTrackReconstructor::AliMUONVTrackReconstructor ( const AliMUONVTrackReconstructor rhs)
protected

copy constructor

Member Function Documentation

void AliMUONVTrackReconstructor::AskForNewClustersInChamber ( const AliMUONTrackParam trackParam,
AliMUONVClusterStore clusterStore,
Int_t  chamber 
)
protected

Ask the clustering to reconstruct new clusters around the track candidate position

Definition at line 659 of file AliMUONVTrackReconstructor.cxx.

Referenced by AskForNewClustersInStation(), AliMUONTrackReconstructor::FollowTrackInChamber(), and AliMUONTrackReconstructorK::FollowTrackInChamber().

void AliMUONVTrackReconstructor::AskForNewClustersInStation ( const AliMUONTrackParam trackParam,
AliMUONVClusterStore clusterStore,
Int_t  station 
)
protected

Ask the clustering to reconstruct new clusters around the track candidate position in the 2 chambers of the given station

Definition at line 697 of file AliMUONVTrackReconstructor.cxx.

Referenced by AliMUONTrackReconstructor::FollowTrackInStation(), and AliMUONTrackReconstructorK::FollowTrackInStation().

void AliMUONVTrackReconstructor::ChangeMonoCathodClusterRes ( AliMUONTrack track)
protected

Assign a different resolution to the mono-cathod clusters in the direction of the missing plane and refit the track

Definition at line 1334 of file AliMUONVTrackReconstructor.cxx.

Referenced by DiscardMonoCathodClusters().

virtual Bool_t AliMUONVTrackReconstructor::ComplementTracks ( const AliMUONVClusterStore clusterStore)
protectedpure virtual

Complement the reconstructed tracks.

Implemented in AliMUONTrackReconstructor, and AliMUONTrackReconstructorK.

Referenced by EventReconstruct().

void AliMUONVTrackReconstructor::DiscardMonoCathodClusters ( )
protected

Assign a different resolution to the mono-cathod clusters in the direction of the missing plane and refit the track Remove the track in case of failure

Definition at line 1300 of file AliMUONVTrackReconstructor.cxx.

Referenced by EventReconstruct().

void AliMUONVTrackReconstructor::EventReconstruct ( AliMUONVClusterStore clusterStore,
AliMUONVTrackStore trackStore 
)

To reconstruct one event

Definition at line 156 of file AliMUONVTrackReconstructor.cxx.

Referenced by AliMUONTracker::Clusters2Tracks().

void AliMUONVTrackReconstructor::EventReconstructTrigger ( const AliMUONTriggerCircuit triggerCircuit,
const AliMUONVTriggerStore triggerStore,
AliMUONVTriggerTrackStore triggerTrackStore 
)

Fill trigger track store from local trigger

Definition at line 1418 of file AliMUONVTrackReconstructor.cxx.

Referenced by AliMUONTracker::Clusters2Tracks(), and AliMUONRecoCheck::MakeTriggeredTracks().

void AliMUONVTrackReconstructor::Finalize ( )
protected

Recompute track parameters and covariances at each attached cluster Set the label pointing to the corresponding MC track Remove the track if finalization failed

Definition at line 1269 of file AliMUONVTrackReconstructor.cxx.

Referenced by EventReconstruct().

virtual Bool_t AliMUONVTrackReconstructor::FinalizeTrack ( AliMUONTrack track)
protectedpure virtual

Finalize the given track.

Implemented in AliMUONTrackReconstructor, and AliMUONTrackReconstructorK.

Referenced by Finalize().

Bool_t AliMUONVTrackReconstructor::FollowLinearTrackInChamber ( AliMUONTrack trackCandidate,
const AliMUONVClusterStore clusterStore,
Int_t  nextChamber 
)
protected

Follow trackCandidate in chamber(0..) nextChamber assuming linear propagation, 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)

Definition at line 808 of file AliMUONVTrackReconstructor.cxx.

Referenced by AliMUONTrackReconstructorK::MakeMoreTrackCandidates(), and AliMUONTrackReconstructor::MakeMoreTrackCandidates().

Bool_t AliMUONVTrackReconstructor::FollowLinearTrackInStation ( AliMUONTrack trackCandidate,
const AliMUONVClusterStore clusterStore,
Int_t  nextStation 
)
protected

Follow trackCandidate in station(0..) nextStation assuming linear propagation, 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)

Definition at line 931 of file AliMUONVTrackReconstructor.cxx.

Referenced by AliMUONTrackReconstructorK::MakeTrackCandidates(), and AliMUONTrackReconstructor::MakeTrackCandidates().

virtual Bool_t AliMUONVTrackReconstructor::FollowTracks ( AliMUONVClusterStore clusterStore)
protectedpure virtual

Follow tracks in stations(1..) 3, 2 and 1.

Implemented in AliMUONTrackReconstructor, and AliMUONTrackReconstructorK.

Referenced by EventReconstruct().

const AliMUONRecoParam* AliMUONVTrackReconstructor::GetRecoParam ( ) const
inline

Return reco parameters.

Definition at line 54 of file AliMUONVTrackReconstructor.h.

Referenced by AskForNewClustersInChamber(), ChangeMonoCathodClusterRes(), AliMUONTrackReconstructorK::ComplementTracks(), AliMUONTrackReconstructor::ComplementTracks(), DiscardMonoCathodClusters(), EventReconstruct(), AliMUONTrackReconstructorK::FinalizeTrack(), AliMUONTrackReconstructor::Fit(), FollowLinearTrackInChamber(), FollowLinearTrackInStation(), AliMUONTrackReconstructor::FollowTrackInChamber(), AliMUONTrackReconstructorK::FollowTrackInChamber(), AliMUONTrackReconstructor::FollowTrackInStation(), AliMUONTrackReconstructorK::FollowTrackInStation(), AliMUONTrackReconstructorK::FollowTracks(), AliMUONTrackReconstructor::FollowTracks(), AliMUONTrackReconstructorK::ImproveTrack(), AliMUONTrackReconstructor::ImproveTrack(), IsAcceptable(), AliMUONTrackReconstructorK::MakeMoreTrackCandidates(), AliMUONTrackReconstructor::MakeMoreTrackCandidates(), MakeSegmentsBetweenChambers(), AliMUONTrackReconstructorK::MakeTrackCandidates(), AliMUONTrackReconstructor::MakeTrackCandidates(), AliMUONTrackReconstructor::RecoverTrack(), AliMUONTrackReconstructorK::RecoverTrack(), AliMUONTrackReconstructorK::RefitTrack(), AliMUONTrackReconstructor::RefitTrack(), AliMUONTrackReconstructorK::RetracePartialTrack(), AliMUONTrackReconstructorK::RetraceTrack(), AliMUONTrackReconstructor::SetVertexErrXY2ForFit(), TryOneClusterFast(), AliMUONTrackReconstructor::UpdateTrack(), and AliMUONTrackReconstructorK::UpdateTrack().

virtual void AliMUONVTrackReconstructor::ImproveTrack ( AliMUONTrack track)
protectedpure virtual

Improve the given reconstructed track.

Implemented in AliMUONTrackReconstructor, and AliMUONTrackReconstructorK.

Referenced by ImproveTracks().

void AliMUONVTrackReconstructor::ImproveTracks ( )
protected

Improve tracks by removing clusters with local chi2 highter than the defined cut Recompute track parameters and covariances at the remaining clusters

Definition at line 1238 of file AliMUONVTrackReconstructor.cxx.

Referenced by DiscardMonoCathodClusters(), EventReconstruct(), AliMUONTrackReconstructorK::RefitTrack(), and AliMUONTrackReconstructor::RefitTrack().

virtual Bool_t AliMUONVTrackReconstructor::MakeMoreTrackCandidates ( AliMUONVClusterStore clusterStore)
protectedpure virtual

Make extra track candidates from clusters in stations(1..) 4 and 5.

Implemented in AliMUONTrackReconstructor, and AliMUONTrackReconstructorK.

Referenced by EventReconstruct().

TClonesArray * AliMUONVTrackReconstructor::MakeSegmentsBetweenChambers ( const AliMUONVClusterStore clusterStore,
Int_t  ch1,
Int_t  ch2 
)
protected

To make the list of segments from the list of clusters in the 2 given chambers. Return a TClonesArray of new segments (segments made in a previous call of this function are removed).

Definition at line 293 of file AliMUONVTrackReconstructor.cxx.

Referenced by AliMUONTrackReconstructorK::MakeMoreTrackCandidates(), AliMUONTrackReconstructor::MakeMoreTrackCandidates(), AliMUONTrackReconstructorK::MakeTrackCandidates(), and AliMUONTrackReconstructor::MakeTrackCandidates().

virtual Bool_t AliMUONVTrackReconstructor::MakeTrackCandidates ( AliMUONVClusterStore clusterStore)
protectedpure virtual

Make track candidates from clusters in stations(1..) 4 and 5.

Implemented in AliMUONTrackReconstructor, and AliMUONTrackReconstructorK.

Referenced by EventReconstruct().

AliMUONVTrackReconstructor& AliMUONVTrackReconstructor::operator= ( const AliMUONVTrackReconstructor rhs)
protected

assignment operator

virtual Bool_t AliMUONVTrackReconstructor::RefitTrack ( AliMUONTrack track,
Bool_t  enableImprovement = kTRUE 
)
pure virtual
void AliMUONVTrackReconstructor::RemoveBadTracks ( )
protected

Remove tracks for which a problem occured somewhere during the tracking

Definition at line 553 of file AliMUONVTrackReconstructor.cxx.

Referenced by EventReconstruct().

void AliMUONVTrackReconstructor::RemoveConnectedTracks ( Int_t  stMin,
Int_t  stMax,
Bool_t  all 
)
protected

Find and remove tracks sharing 1 cluster or more in station(s) [stMin, stMax]. For each couple of connected tracks, one removes the one with the smallest number of clusters or with the highest chi2 value in case of equality. If all=kTRUE: both tracks are removed.

Definition at line 582 of file AliMUONVTrackReconstructor.cxx.

Referenced by EventReconstruct().

void AliMUONVTrackReconstructor::RemoveDoubleTracks ( )
protected

To remove double tracks: Tracks are considered identical if more than half of the clusters of the track which has the smaller number of clusters are in common with the other track. Among two identical tracks, one keeps the track with the larger number of clusters or, if these numbers are equal, the track with the minimum chi2.

Definition at line 509 of file AliMUONVTrackReconstructor.cxx.

Referenced by AliMUONTrackReconstructorK::FollowTracks(), AliMUONTrackReconstructor::FollowTracks(), AliMUONTrackReconstructorK::MakeMoreTrackCandidates(), AliMUONTrackReconstructor::MakeMoreTrackCandidates(), AliMUONTrackReconstructorK::MakeTrackCandidates(), and AliMUONTrackReconstructor::MakeTrackCandidates().

void AliMUONVTrackReconstructor::RemoveIdenticalTracks ( )
protected

To remove identical tracks: Tracks are considered identical if they have all their clusters in common. One keeps the track with the larger number of clusters if need be

Definition at line 467 of file AliMUONVTrackReconstructor.cxx.

Referenced by EventReconstruct(), AliMUONTrackReconstructorK::MakeTrackCandidates(), and AliMUONTrackReconstructor::MakeTrackCandidates().

void AliMUONVTrackReconstructor::RemoveUsedSegments ( TClonesArray &  segments)
protected

To remove pairs of clusters already attached to a track

Definition at line 407 of file AliMUONVTrackReconstructor.cxx.

Referenced by AliMUONTrackReconstructorK::MakeMoreTrackCandidates(), and AliMUONTrackReconstructor::MakeMoreTrackCandidates().

void AliMUONVTrackReconstructor::ResetTracks ( )
private

To reset the TClonesArray of reconstructed tracks

Definition at line 147 of file AliMUONVTrackReconstructor.cxx.

Referenced by EventReconstruct().

void AliMUONVTrackReconstructor::TagConnectedTracks ( Int_t  stMin,
Int_t  stMax,
Bool_t  all 
)
protected

Find and tag tracks sharing 1 cluster or more in station(s) [stMin, stMax]. For each couple of connected tracks, one tags the one with the smallest number of clusters or with the highest chi2 value in case of equality. If all=kTRUE: both tracks are tagged.

Definition at line 606 of file AliMUONVTrackReconstructor.cxx.

Referenced by EventReconstruct(), and RemoveConnectedTracks().

Bool_t AliMUONVTrackReconstructor::TriggerToTrack ( const AliMUONTriggerCircuit circuit,
const AliMUONLocalTrigger locTrg,
AliMUONTriggerTrack triggerTrack,
UChar_t  globalTriggerPattern = 0 
)

To make the trigger tracks from Local Trigger

Definition at line 1453 of file AliMUONVTrackReconstructor.cxx.

Referenced by EventReconstructTrigger(), and AliMUONRecoCheck::TriggerToTrack().

Double_t AliMUONVTrackReconstructor::TryOneCluster ( const AliMUONTrackParam trackParam,
AliMUONVCluster cluster,
AliMUONTrackParam trackParamAtCluster,
Bool_t  updatePropagator = kFALSE 
)
protected
Bool_t AliMUONVTrackReconstructor::TryOneClusterFast ( const AliMUONTrackParam trackParam,
const AliMUONVCluster cluster 
)
protected

Test the compatibility between the track and the cluster given the track and cluster resolutions + the maximum-distance-to-track value and assuming linear propagation of the track: return kTRUE if they are compatibles

Definition at line 739 of file AliMUONVTrackReconstructor.cxx.

Referenced by AliMUONTrackReconstructorK::ComplementTracks(), AliMUONTrackReconstructor::ComplementTracks(), FollowLinearTrackInChamber(), FollowLinearTrackInStation(), AliMUONTrackReconstructor::FollowTrackInChamber(), AliMUONTrackReconstructorK::FollowTrackInChamber(), AliMUONTrackReconstructor::FollowTrackInStation(), and AliMUONTrackReconstructorK::FollowTrackInStation().

Double_t AliMUONVTrackReconstructor::TryTwoClustersFast ( const AliMUONTrackParam trackParamAtCluster1,
AliMUONVCluster cluster2,
AliMUONTrackParam trackParamAtCluster2 
)
protected

Test the compatibility between the track and the 2 clusters together (using trackParam's covariance matrix) assuming linear propagation between the two clusters: return the corresponding Chi2 accounting for covariances between the 2 clusters return trackParamAtCluster2

Definition at line 765 of file AliMUONVTrackReconstructor.cxx.

Referenced by FollowLinearTrackInStation().

void AliMUONVTrackReconstructor::ValidateTracksWithTrigger ( AliMUONVTrackStore trackStore,
const AliMUONVTriggerTrackStore triggerTrackStore,
const AliMUONVTriggerStore triggerStore,
const AliMUONTrackHitPattern trackHitPattern 
)

Try to match track from tracking system with trigger track

Definition at line 1405 of file AliMUONVTrackReconstructor.cxx.

Referenced by AliMUONTracker::Clusters2Tracks().

Member Data Documentation

AliMUONVClusterServer* AliMUONVTrackReconstructor::fClusterServer
protected
const AliMUONRecoParam* AliMUONVTrackReconstructor::fkRecoParam
protected

reference to reco parameters

Definition at line 73 of file AliMUONVTrackReconstructor.h.

Referenced by GetRecoParam().

const AliMUONGeometryTransformer* AliMUONVTrackReconstructor::fkTransformer
protected

! geometry transformer (not owner)

Definition at line 74 of file AliMUONVTrackReconstructor.h.

Referenced by ChangeMonoCathodClusterRes(), and DiscardMonoCathodClusters().

Double_t* AliMUONVTrackReconstructor::fMaxMCSAngle2
protected

maximum angle dispersion due to MCS

Definition at line 76 of file AliMUONVTrackReconstructor.h.

Referenced by IsAcceptable(), MakeSegmentsBetweenChambers(), and ~AliMUONVTrackReconstructor().


The documentation for this class was generated from the following files: