]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONTracker.h
Removal of calls to static AliMUONReconstructor::GetRecoParam(). Thanks to 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 // $Id$
7
8 /// \ingroup rec
9 /// \class AliMUONTracker
10 /// \brief MUON base Tracker
11 ///
12 //  Authors: Christian Finck, Laurent Aphecetche, SUBATECH Nantes
13
14 #include "AliTracker.h"
15
16 class AliCluster;
17 class AliESDEvent;
18 class AliMUONDigitMaker;
19 class AliMUONGeometryTransformer;
20 class AliMUONRecoParam;
21 class AliMUONTrackHitPattern;
22 class AliMUONTriggerCircuit;
23 class AliMUONVClusterServer;
24 class AliMUONVClusterStore;
25 class AliMUONVDigitStore;
26 class AliMUONVTrackReconstructor;
27 class AliMUONVTrackStore;
28 class AliMUONVTriggerStore;
29 class AliMUONVTriggerTrackStore;
30
31 class AliMUONTracker : public AliTracker
32 {
33  public:
34
35   AliMUONTracker(const AliMUONRecoParam* recoParam,
36                  AliMUONVClusterServer* clusterServer,
37                  const AliMUONVDigitStore& digitStore,
38                  const AliMUONDigitMaker* digitMaker=0,
39                  const AliMUONGeometryTransformer* transformer=0,
40                  const AliMUONTriggerCircuit* triggerCircuit=0);
41   virtual ~AliMUONTracker();
42   
43   virtual Int_t Clusters2Tracks(AliESDEvent* esd);
44
45   virtual Int_t LoadClusters(TTree* clustersTree);
46
47   virtual void  UnloadClusters();
48
49   const AliMUONRecoParam* GetRecoParam() const { return fRecoParam; }
50   
51   /// Dummy implementation
52   virtual Int_t PropagateBack(AliESDEvent* /*event*/) {return 0;}
53   /// Dummy implementation
54   virtual Int_t RefitInward(AliESDEvent* /*event*/) {return 0;}
55   /// Dummy implementation
56   virtual AliCluster *GetCluster(Int_t /*index*/) const {return 0;}
57
58   static AliMUONVTrackReconstructor* CreateTrackReconstructor(const AliMUONRecoParam* recoParam, AliMUONVClusterServer* clusterServer);
59   
60 private:
61   /// Not implemented
62   AliMUONTracker(const AliMUONTracker& rhs);
63   /// Not implemented
64   AliMUONTracker& operator=(const AliMUONTracker& rhs);
65     
66   AliMUONVClusterStore* ClusterStore() const;
67
68   AliMUONVTriggerTrackStore* TriggerTrackStore() const;
69   
70   void FillESD(AliMUONVTrackStore& trackStore, AliESDEvent* esd) const;
71
72   void SetupClusterServer(AliMUONVClusterServer& clusterServer);
73   
74 private:
75   const AliMUONDigitMaker* fDigitMaker; //!< digit maker (not owner)
76   const AliMUONGeometryTransformer* fTransformer; //!< geometry transformer (not owner)
77   const AliMUONTriggerCircuit* fTriggerCircuit; //!< trigger circuit (not owner)
78   AliMUONTrackHitPattern* fTrackHitPatternMaker; //!< trigger hit pattern maker
79   AliMUONVTrackReconstructor* fTrackReco; //!< track reconstructor
80   mutable AliMUONVClusterStore* fClusterStore; //!< cluster container
81   AliMUONVTriggerStore* fTriggerStore; //!< trigger information
82   AliMUONVClusterServer* fClusterServer; //!< to get clusters
83   Bool_t fIsOwnerOfClusterServer; //!< whether we are owner of the cluster server
84   const AliMUONVDigitStore& fDigitStore; //!< digit info to fill in ESD
85   mutable AliMUONVClusterStore* fInputClusterStore; //!< cluster container
86   mutable AliMUONVTriggerTrackStore* fTriggerTrackStore; //!< trigger track store
87   const AliMUONRecoParam* fRecoParam; //!< pointer to reco param
88   
89   ClassDef(AliMUONTracker,0)  //tracker base class for MUON
90 };
91 #endif