]>
Commit | Line | Data |
---|---|---|
196471e9 | 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 | ||
e41c38cf | 6 | // $Id$ |
196471e9 | 7 | |
6b092dfc | 8 | /// \ingroup rec |
196471e9 | 9 | /// \class AliMUONTracker |
10 | /// \brief MUON base Tracker | |
d81d2e8e | 11 | /// |
9bf6860b | 12 | // Authors: Christian Finck, Laurent Aphecetche, SUBATECH Nantes |
196471e9 | 13 | |
14 | #include "AliTracker.h" | |
e64fdf8a | 15 | |
196471e9 | 16 | class AliCluster; |
af885e0f | 17 | class AliESDEvent; |
e64fdf8a | 18 | class AliMUONGeometryTransformer; |
a0dc65b4 | 19 | class AliMUONRecoParam; |
e64fdf8a | 20 | class AliMUONTrackHitPattern; |
32ab62c9 | 21 | class AliMUONTriggerCircuit; |
9bf6860b | 22 | class AliMUONVClusterServer; |
e64fdf8a | 23 | class AliMUONVClusterStore; |
9bf6860b | 24 | class AliMUONVDigitStore; |
196471e9 | 25 | class AliMUONVTrackReconstructor; |
e64fdf8a | 26 | class AliMUONVTrackStore; |
27 | class AliMUONVTriggerStore; | |
9bf6860b | 28 | class AliMUONVTriggerTrackStore; |
d5315275 | 29 | class AliMUONTriggerUtilities; |
196471e9 | 30 | |
31 | class AliMUONTracker : public AliTracker | |
32 | { | |
33 | public: | |
34 | ||
a0dc65b4 | 35 | AliMUONTracker(const AliMUONRecoParam* recoParam, |
36 | AliMUONVClusterServer* clusterServer, | |
2e2d0c44 | 37 | AliMUONVDigitStore& digitStore, |
e64fdf8a | 38 | const AliMUONGeometryTransformer* transformer=0, |
d5315275 | 39 | const AliMUONTriggerCircuit* triggerCircuit=0, |
40 | const AliMUONTriggerUtilities* triggerUtilities=0); | |
196471e9 | 41 | virtual ~AliMUONTracker(); |
196471e9 | 42 | |
af885e0f | 43 | virtual Int_t Clusters2Tracks(AliESDEvent* esd); |
e64fdf8a | 44 | |
e64fdf8a | 45 | virtual Int_t LoadClusters(TTree* clustersTree); |
46 | ||
e64fdf8a | 47 | virtual void UnloadClusters(); |
48 | ||
21973f26 | 49 | /// Return reco parameters |
72dae9ff | 50 | const AliMUONRecoParam* GetRecoParam() const { return fkRecoParam; } |
a0dc65b4 | 51 | |
71a2d3aa | 52 | /// Dummy implementation |
af885e0f | 53 | virtual Int_t PropagateBack(AliESDEvent* /*event*/) {return 0;} |
71a2d3aa | 54 | /// Dummy implementation |
af885e0f | 55 | virtual Int_t RefitInward(AliESDEvent* /*event*/) {return 0;} |
71a2d3aa | 56 | /// Dummy implementation |
196471e9 | 57 | virtual AliCluster *GetCluster(Int_t /*index*/) const {return 0;} |
196471e9 | 58 | |
852fefb4 | 59 | static AliMUONVTrackReconstructor* CreateTrackReconstructor(const AliMUONRecoParam* recoParam, |
60 | AliMUONVClusterServer* clusterServer, | |
61 | const AliMUONGeometryTransformer* transformer); | |
9bf6860b | 62 | |
196471e9 | 63 | private: |
71a2d3aa | 64 | /// Not implemented |
65 | AliMUONTracker(const AliMUONTracker& rhs); | |
66 | /// Not implemented | |
67 | AliMUONTracker& operator=(const AliMUONTracker& rhs); | |
68 | ||
1fef78c8 | 69 | AliMUONVClusterStore* ClusterStore() const; |
70 | ||
9bf6860b | 71 | AliMUONVTriggerTrackStore* TriggerTrackStore() const; |
3304fa09 | 72 | |
72dae9ff | 73 | void FillESD(const AliMUONVTrackStore& trackStore, AliESDEvent* esd) const; |
e64fdf8a | 74 | |
9bf6860b | 75 | void SetupClusterServer(AliMUONVClusterServer& clusterServer); |
76 | ||
e64fdf8a | 77 | private: |
72dae9ff | 78 | const AliMUONGeometryTransformer* fkTransformer; //!< geometry transformer (not owner) |
79 | const AliMUONTriggerCircuit* fkTriggerCircuit; //!< trigger circuit (not owner) | |
e64fdf8a | 80 | AliMUONTrackHitPattern* fTrackHitPatternMaker; //!< trigger hit pattern maker |
3304fa09 | 81 | AliMUONVTrackReconstructor* fTrackReco; //!< track reconstructor |
1fef78c8 | 82 | mutable AliMUONVClusterStore* fClusterStore; //!< cluster container |
e64fdf8a | 83 | AliMUONVTriggerStore* fTriggerStore; //!< trigger information |
9bf6860b | 84 | AliMUONVClusterServer* fClusterServer; //!< to get clusters |
85 | Bool_t fIsOwnerOfClusterServer; //!< whether we are owner of the cluster server | |
72dae9ff | 86 | const AliMUONVDigitStore& fkDigitStore; //!< digit info to fill in ESD |
9bf6860b | 87 | mutable AliMUONVClusterStore* fInputClusterStore; //!< cluster container |
88 | mutable AliMUONVTriggerTrackStore* fTriggerTrackStore; //!< trigger track store | |
72dae9ff | 89 | const AliMUONRecoParam* fkRecoParam; //!< pointer to reco param |
cfeca9e2 | 90 | AliMUONVTrackStore* fInternalTrackStore; //!< internal track store |
e64fdf8a | 91 | |
196471e9 | 92 | ClassDef(AliMUONTracker,0) //tracker base class for MUON |
93 | }; | |
94 | #endif |