]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONTracker.h
Modifications for the revival of the combined tracking (Laurent)
[u/mrichter/AliRoot.git] / MUON / AliMUONTracker.h
1 #ifndef ALIMUONTRACKER_H
2 #define ALIMUONTRACKER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6
7 /// \ingroup rec
8 /// \class AliMUONTracker
9 /// \brief MUON base Tracker
10 ///
11 //  Author: Christian Finck, SUBATECH Nantes
12
13 #include "AliTracker.h"
14
15 class AliCluster;
16 class AliESDEvent;
17 class AliMUONDigitMaker;
18 class AliMUONGeometryTransformer;
19 class AliMUONTrackHitPattern;
20 class AliMUONTriggerChamberEff;
21 class AliMUONTriggerCircuit;
22 class AliMUONVClusterStore;
23 class AliMUONVTrackReconstructor;
24 class AliMUONVTrackStore;
25 class AliMUONVTriggerStore;
26 class AliMUONVClusterServer;
27
28 class AliMUONTracker : public AliTracker
29 {
30  public:
31
32   AliMUONTracker(AliMUONVClusterServer& clusterServer,
33                  const AliMUONDigitMaker* digitMaker=0,
34                  const AliMUONGeometryTransformer* transformer=0,
35                  const AliMUONTriggerCircuit* triggerCircuit=0,
36                  AliMUONTriggerChamberEff* chamberEff=0);
37   virtual ~AliMUONTracker();
38   
39   virtual Int_t Clusters2Tracks(AliESDEvent* esd);
40
41   virtual Int_t LoadClusters(TTree* clustersTree);
42
43   virtual void  UnloadClusters();
44
45   /// Dummy implementation
46   virtual Int_t PropagateBack(AliESDEvent* /*event*/) {return 0;}
47   /// Dummy implementation
48   virtual Int_t RefitInward(AliESDEvent* /*event*/) {return 0;}
49   /// Dummy implementation
50   virtual AliCluster *GetCluster(Int_t /*index*/) const {return 0;}
51
52 private:
53   /// Not implemented
54   AliMUONTracker(const AliMUONTracker& rhs);
55   /// Not implemented
56   AliMUONTracker& operator=(const AliMUONTracker& rhs);
57     
58   AliMUONVClusterStore* ClusterStore() const;
59
60   void CreateTrackReconstructor();
61   
62   void FillESD(AliMUONVTrackStore& trackStore, AliESDEvent* esd) const;
63
64 private:
65   const AliMUONDigitMaker* fDigitMaker; //!< digit maker (not owner)
66   const AliMUONGeometryTransformer* fTransformer; //!< geometry transformer (not owner)
67   const AliMUONTriggerCircuit* fTriggerCircuit; //!< trigger circuit (not owner)
68   AliMUONTriggerChamberEff* fTrigChamberEff; //!< trigger efficiency (not owner)
69   AliMUONTrackHitPattern* fTrackHitPatternMaker; //!< trigger hit pattern maker
70   AliMUONVTrackReconstructor* fTrackReco; //!< track reconstructor
71   mutable AliMUONVClusterStore* fClusterStore; //!< cluster container
72   AliMUONVTriggerStore* fTriggerStore; //!< trigger information
73   AliMUONVClusterServer& fClusterServer; //!< to get clusters
74   
75   ClassDef(AliMUONTracker,0)  //tracker base class for MUON
76 };
77 #endif