AliRoot Core  a565103 (a565103)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliMUONVTrackReconstructor.h
Go to the documentation of this file.
1 #ifndef ALIMUONVTRACKRECONSTRUCTOR_H
2 #define ALIMUONVTRACKRECONSTRUCTOR_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 /* $Id$ */
7 
12 // Author: Philippe Pillot
13 
14 #include <TObject.h>
15 
16 class AliMUONTrack;
17 class AliMUONTrackParam;
18 class AliMUONVCluster;
23 class AliMUONVTrackStore;
27 class AliMUONDigitMaker;
29 class TClonesArray;
30 class AliMUONRecoParam;
32 
33 class AliMUONVTrackReconstructor : public TObject {
34 
35  public:
36  AliMUONVTrackReconstructor(const AliMUONRecoParam* recoParam, AliMUONVClusterServer* clusterServer,
37  const AliMUONGeometryTransformer* transformer); // default Constructor
38  virtual ~AliMUONVTrackReconstructor(); // Destructor
39 
40 
41  void EventReconstruct(AliMUONVClusterStore& clusterStore,
42  AliMUONVTrackStore& trackStore);
43 
44  void EventReconstructTrigger(const AliMUONTriggerCircuit& triggerCircuit,
45  const AliMUONVTriggerStore& triggerStore,
46  AliMUONVTriggerTrackStore& triggerTrackStore);
47 
49  const AliMUONVTriggerTrackStore& triggerTrackStore,
50  const AliMUONVTriggerStore& triggerStore,
51  const AliMUONTrackHitPattern& trackHitPattern);
52 
54  const AliMUONRecoParam* GetRecoParam() const { return fkRecoParam; }
55 
57  virtual Bool_t RefitTrack(AliMUONTrack &track, Bool_t enableImprovement = kTRUE) = 0;
58 
59  Bool_t TriggerToTrack(const AliMUONTriggerCircuit& circuit,
60  const AliMUONLocalTrigger& locTrg,
61  AliMUONTriggerTrack& triggerTrack,
62  UChar_t globalTriggerPattern = 0);
63 
64 
65 
66  protected:
67 
68  TClonesArray *fRecTracksPtr;
69  Int_t fNRecTracks;
70 
72 
75 
76  Double_t* fMaxMCSAngle2;
77 
78  // Functions
81 
83  virtual Bool_t MakeTrackCandidates(AliMUONVClusterStore& clusterStore) = 0;
85  virtual Bool_t MakeMoreTrackCandidates(AliMUONVClusterStore& clusterStore) = 0;
87  virtual Bool_t FollowTracks(AliMUONVClusterStore& clusterStore) = 0;
89  virtual Bool_t ComplementTracks(const AliMUONVClusterStore& clusterStore) = 0;
90  void ImproveTracks();
92  virtual void ImproveTrack(AliMUONTrack &track) = 0;
93  void Finalize();
95  virtual Bool_t FinalizeTrack(AliMUONTrack &track) = 0;
96 
99 
100  Bool_t IsAcceptable(AliMUONTrackParam &trackParam);
101 
102  TClonesArray* MakeSegmentsBetweenChambers(const AliMUONVClusterStore& clusterStore, Int_t ch1, Int_t ch2);
103 
104  void RemoveUsedSegments(TClonesArray& segments);
105  void RemoveIdenticalTracks();
106  void RemoveDoubleTracks();
107  void RemoveBadTracks();
108  void RemoveConnectedTracks(Int_t stMin, Int_t stMax, Bool_t all);
109  void TagConnectedTracks(Int_t stMin, Int_t stMax, Bool_t all);
110 
111  void AskForNewClustersInStation(const AliMUONTrackParam &trackParam,
112  AliMUONVClusterStore& clusterStore, Int_t station);
113  void AskForNewClustersInChamber(const AliMUONTrackParam &trackParam,
114  AliMUONVClusterStore& clusterStore, Int_t chamber);
115 
116  Double_t TryOneCluster(const AliMUONTrackParam &trackParam, AliMUONVCluster* cluster,
117  AliMUONTrackParam &trackParamAtCluster, Bool_t updatePropagator = kFALSE);
118  Bool_t TryOneClusterFast(const AliMUONTrackParam &trackParam, const AliMUONVCluster* cluster);
119  Double_t TryTwoClustersFast(const AliMUONTrackParam &trackParamAtCluster1, AliMUONVCluster* cluster2,
120  AliMUONTrackParam &trackParamAtCluster2);
121 
122  Bool_t FollowLinearTrackInChamber(AliMUONTrack &trackCandidate, const AliMUONVClusterStore& clusterStore, Int_t nextChamber);
123  Bool_t FollowLinearTrackInStation(AliMUONTrack &trackCandidate, const AliMUONVClusterStore& clusterStore, Int_t nextStation);
124 
125  private:
126 
127  // Functions
128  void ResetTracks();
129 
130 
131  ClassDef(AliMUONVTrackReconstructor, 0) // MUON track reconstructor in ALICE
132 };
133 
134 #endif
void AskForNewClustersInStation(const AliMUONTrackParam &trackParam, AliMUONVClusterStore &clusterStore, Int_t station)
Bool_t FollowLinearTrackInStation(AliMUONTrack &trackCandidate, const AliMUONVClusterStore &clusterStore, Int_t nextStation)
Base class of a track container.
Virtual class for the MUON track reconstruction.
Reading Raw data class for trigger and tracker chambers.
virtual void ImproveTrack(AliMUONTrack &track)=0
Improve the given reconstructed track.
virtual Bool_t MakeMoreTrackCandidates(AliMUONVClusterStore &clusterStore)=0
Make extra track candidates from clusters in stations(1..) 4 and 5.
virtual Bool_t RefitTrack(AliMUONTrack &track, Bool_t enableImprovement=kTRUE)=0
Re-fit the given track.
virtual Bool_t FinalizeTrack(AliMUONTrack &track)=0
Finalize the given track.
void ValidateTracksWithTrigger(AliMUONVTrackStore &trackStore, const AliMUONVTriggerTrackStore &triggerTrackStore, const AliMUONVTriggerStore &triggerStore, const AliMUONTrackHitPattern &trackHitPattern)
Double_t TryOneCluster(const AliMUONTrackParam &trackParam, AliMUONVCluster *cluster, AliMUONTrackParam &trackParamAtCluster, Bool_t updatePropagator=kFALSE)
Top container class for geometry transformations.
void RemoveUsedSegments(TClonesArray &segments)
Interface of a cluster finder for combined tracking.
virtual Bool_t ComplementTracks(const AliMUONVClusterStore &clusterStore)=0
Complement the reconstructed tracks.
Track parameters in ALICE dimuon spectrometer.
const AliMUONRecoParam * fkRecoParam
reference to reco parameters
Class with MUON reconstruction parameters.
Bool_t IsAcceptable(AliMUONTrackParam &trackParam)
AliTPCfastTrack * track
Reconstructed trigger track in ALICE dimuon spectrometer.
Bool_t TryOneClusterFast(const AliMUONTrackParam &trackParam, const AliMUONVCluster *cluster)
void AskForNewClustersInChamber(const AliMUONTrackParam &trackParam, AliMUONVClusterStore &clusterStore, Int_t chamber)
Bool_t TriggerToTrack(const AliMUONTriggerCircuit &circuit, const AliMUONLocalTrigger &locTrg, AliMUONTriggerTrack &triggerTrack, UChar_t globalTriggerPattern=0)
Base class of a trigger information store.
Double_t TryTwoClustersFast(const AliMUONTrackParam &trackParamAtCluster1, AliMUONVCluster *cluster2, AliMUONTrackParam &trackParamAtCluster2)
AliMUONVTrackReconstructor(const AliMUONRecoParam *recoParam, AliMUONVClusterServer *clusterServer, const AliMUONGeometryTransformer *transformer)
const AliMUONRecoParam * GetRecoParam() const
Return reco parameters.
abstract base class for clusters
Reconstructed Local Trigger object.
MUON Trigger circuit.
AliMUONVClusterServer * fClusterServer
reference to our cluster server
virtual Bool_t MakeTrackCandidates(AliMUONVClusterStore &clusterStore)=0
Make track candidates from clusters in stations(1..) 4 and 5.
Class for the MUON track hit pattern.
Bool_t FollowLinearTrackInChamber(AliMUONTrack &trackCandidate, const AliMUONVClusterStore &clusterStore, Int_t nextChamber)
AliMUONVTrackReconstructor & operator=(const AliMUONVTrackReconstructor &rhs)
assignment operator
Double_t * fMaxMCSAngle2
maximum angle dispersion due to MCS
TClonesArray * MakeSegmentsBetweenChambers(const AliMUONVClusterStore &clusterStore, Int_t ch1, Int_t ch2)
Interface of a cluster container.
virtual Bool_t FollowTracks(AliMUONVClusterStore &clusterStore)=0
Follow tracks in stations(1..) 3, 2 and 1.
void ChangeMonoCathodClusterRes(AliMUONTrack &track)
void TagConnectedTracks(Int_t stMin, Int_t stMax, Bool_t all)
Base class of a trigger track store.
void RemoveConnectedTracks(Int_t stMin, Int_t stMax, Bool_t all)
Int_t fNRecTracks
number of reconstructed tracks
void EventReconstructTrigger(const AliMUONTriggerCircuit &triggerCircuit, const AliMUONVTriggerStore &triggerStore, AliMUONVTriggerTrackStore &triggerTrackStore)
Reconstructed track in ALICE dimuon spectrometer.
Definition: AliMUONTrack.h:24
const AliMUONGeometryTransformer * fkTransformer
! geometry transformer (not owner)
void EventReconstruct(AliMUONVClusterStore &clusterStore, AliMUONVTrackStore &trackStore)
TClonesArray * fRecTracksPtr
pointer to array of reconstructed tracks