Main changes:
[u/mrichter/AliRoot.git] / MUON / AliMUONVTrackReconstructor.h
index a8d0366..9630de6 100644 (file)
@@ -18,7 +18,7 @@
 
 class AliMUONTrack;
 class AliMUONTrackParam;
-class AliMUONHitForRec;
+class AliMUONVCluster;
 class AliMUONTriggerTrack;
 class AliMUONTrackHitPattern;
 class AliMUONVClusterStore;
@@ -36,11 +36,6 @@ class AliMUONVTrackReconstructor : public TObject {
   AliMUONVTrackReconstructor(); // default Constructor
   virtual ~AliMUONVTrackReconstructor(); // Destructor
 
-  // Parameters for track reconstruction: public methods
-  // Get and Set, Set to defaults
-           /// Return minimum value (GeV/c) of momentum in bending plane
-  Double_t GetMinBendingMomentum() const {return AliMUONReconstructor::GetRecoParam()->GetMinBendingMomentum();}
-
   // Reconstructed tracks
            /// Return number of reconstructed tracks
   Int_t GetNRecTracks() const {return fNRecTracks;} // Number
@@ -65,12 +60,6 @@ class AliMUONVTrackReconstructor : public TObject {
   
  protected:
 
-  TClonesArray* fHitsForRecPtr; ///< pointer to the array of hits for reconstruction
-  Int_t fNHitsForRec; ///< number of hits for reconstruction
-  Int_t* fNHitsForRecPerChamber; ///< number of HitsForRec
-  Int_t* fIndexOfFirstHitForRecPerChamber; ///< index (0...) of first HitForRec
-
-  // Reconstructed tracks
   TClonesArray *fRecTracksPtr; ///< pointer to array of reconstructed tracks
   Int_t fNRecTracks; ///< number of reconstructed tracks
 
@@ -80,40 +69,35 @@ class AliMUONVTrackReconstructor : public TObject {
   AliMUONVTrackReconstructor& operator=(const AliMUONVTrackReconstructor& rhs); ///< assignment operator
   
   /// Make track candidats from clusters in stations(1..) 4 and 5
-  virtual void MakeTrackCandidates() = 0;
+  virtual void MakeTrackCandidates(const AliMUONVClusterStore& clusterStore) = 0;
   /// Follow tracks in stations(1..) 3, 2 and 1
-  virtual void FollowTracks() = 0;
+  virtual void FollowTracks(const AliMUONVClusterStore& clusterStore) = 0;
   /// Complement the reconstructed tracks
-  virtual void ComplementTracks() = 0;
+  virtual void ComplementTracks(const AliMUONVClusterStore& clusterStore) = 0;
   /// Improve the reconstructed tracks
   virtual void ImproveTracks() = 0;
   /// Finalize the tracking results
   virtual void Finalize() = 0;
   
-  TClonesArray* MakeSegmentsInStation(Int_t station);
+  TClonesArray* MakeSegmentsInStation(const AliMUONVClusterStore& clusterStore, Int_t station);
 
   void RemoveIdenticalTracks();
   void RemoveDoubleTracks();
 
-  Double_t TryOneHitForRec(const AliMUONTrackParam &trackParam, AliMUONHitForRec* hitForRec,
-                          AliMUONTrackParam &trackParamAtHit, Bool_t updatePropagator = kFALSE);
-  Bool_t   TryOneHitForRecFast(const AliMUONTrackParam &trackParam, AliMUONHitForRec* hitForRec);
-  Double_t TryTwoHitForRecFast(const AliMUONTrackParam &trackParamAtHit1, AliMUONHitForRec* hitForRec2,
-                              AliMUONTrackParam &trackParamAtHit2);
+  Double_t TryOneCluster(const AliMUONTrackParam &trackParam, AliMUONVCluster* cluster,
+                        AliMUONTrackParam &trackParamAtCluster, Bool_t updatePropagator = kFALSE);
+  Bool_t   TryOneClusterFast(const AliMUONTrackParam &trackParam, AliMUONVCluster* cluster);
+  Double_t TryTwoClustersFast(const AliMUONTrackParam &trackParamAtCluster1, AliMUONVCluster* cluster2,
+                             AliMUONTrackParam &trackParamAtCluster2);
 
-  Bool_t FollowLinearTrackInStation(AliMUONTrack &trackCandidate, Int_t nextStation);
+  Bool_t FollowLinearTrackInStation(AliMUONTrack &trackCandidate, const AliMUONVClusterStore& clusterStore,
+                                   Int_t nextStation);
   
 
  private:
   
   // Functions
   void ResetTracks();
-  void ResetHitsForRec();
-  
-  void AddHitsForRecFromRawClusters(const AliMUONVClusterStore& clusterStore);
-  void SortHitsForRecWithIncreasingChamber();
-  
-  void MakeTracks();
   
   
   ClassDef(AliMUONVTrackReconstructor, 0) // MUON track reconstructor in ALICE