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 */
8 /// \class AliMUONTracker
9 /// \brief MUON base Tracker
11 // Author: Christian Finck, SUBATECH Nantes
13 #include "AliTracker.h"
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;
28 class AliMUONTracker : public AliTracker
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();
39 virtual Int_t Clusters2Tracks(AliESDEvent* esd);
41 virtual Int_t LoadClusters(TTree* clustersTree);
43 virtual void UnloadClusters();
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;}
54 AliMUONTracker(const AliMUONTracker& rhs);
56 AliMUONTracker& operator=(const AliMUONTracker& rhs);
58 AliMUONVClusterStore* ClusterStore() const;
60 void CreateTrackReconstructor();
62 void FillESD(AliMUONVTrackStore& trackStore, AliESDEvent* esd) const;
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
75 ClassDef(AliMUONTracker,0) //tracker base class for MUON