* See cxx source for full Copyright notice */
-/// \ingroup base
+/// \ingroup rec
/// \class AliMUONTracker
/// \brief MUON base Tracker
+///
+// Author: Christian Finck, SUBATECH Nantes
#include "AliTracker.h"
-class AliESD;
+
class AliCluster;
-class AliMUONData;
-class TClonesArray;
+class AliESDEvent;
+class AliLoader;
+class AliMUONDigitMaker;
+class AliMUONGeometryTransformer;
+class AliMUONTrackHitPattern;
+class AliMUONTriggerChamberEff;
+class AliMUONTriggerCircuit;
+class AliMUONVClusterStore;
class AliMUONVTrackReconstructor;
+class AliMUONVTrackStore;
+class AliMUONVTriggerStore;
class AliMUONTracker : public AliTracker
{
public:
- AliMUONTracker();
+ AliMUONTracker(AliLoader* loader,
+ const AliMUONDigitMaker* digitMaker=0,
+ const AliMUONGeometryTransformer* transformer=0,
+ const AliMUONTriggerCircuit* triggerCircuit=0,
+ AliMUONTriggerChamberEff* chamberEff=0);
virtual ~AliMUONTracker();
-
- virtual Int_t Clusters2Tracks(AliESD* /*esd*/);
- virtual Int_t PropagateBack(AliESD* /*event*/) {return 0;}
- virtual Int_t RefitInward(AliESD* /*event*/) {return 0;}
- virtual Int_t LoadClusters(TTree* /*tree*/) {return 0;}
- virtual void UnloadClusters() {return;}
- virtual AliCluster *GetCluster(Int_t /*index*/) const {return 0;}
+ /// Main entry point.
+ virtual Int_t Clusters2Tracks(AliESDEvent* esd);
- void SetTriggerCircuit(TClonesArray* circuit) {fTriggerCircuit = circuit;}
- void SetMUONData(AliMUONData* data) {fMUONData = data;}
- void SetOption(Option_t* opt);
+ ///
+ virtual Int_t LoadClusters(TTree* clustersTree);
-private:
+ ///
+ virtual void UnloadClusters();
- TClonesArray* fTriggerCircuit; //!< trigger circuit
- AliMUONData* fMUONData; //!< pointer to container
- AliMUONVTrackReconstructor* fTrackReco; //!< track reconstructor
+ /// Dummy implementation
+ virtual Int_t PropagateBack(AliESDEvent* /*event*/) {return 0;}
+ /// Dummy implementation
+ virtual Int_t RefitInward(AliESDEvent* /*event*/) {return 0;}
+ /// Dummy implementation
+ virtual AliCluster *GetCluster(Int_t /*index*/) const {return 0;}
+ /// Set option
+ void SetOption(Option_t* opt);
+private:
+ /// Not implemented
AliMUONTracker(const AliMUONTracker& rhs);
+ /// Not implemented
AliMUONTracker& operator=(const AliMUONTracker& rhs);
+ Int_t Clusters2Tracks(TTree& tracksTree, AliESDEvent* esd);
+
+ void FillESD(AliMUONVTrackStore& trackStore, AliESDEvent* esd) const;
+
+private:
+ AliLoader* fLoader; //!< loader to get access to trees
+ const AliMUONDigitMaker* fDigitMaker; //!< digit maker (not owner)
+ const AliMUONGeometryTransformer* fTransformer; //!< geometry transformer (not owner)
+ const AliMUONTriggerCircuit* fTriggerCircuit; //!< trigger circuit (not owner)
+ AliMUONTriggerChamberEff* fTrigChamberEff; //!< trigger efficiency (not owner)
+ AliMUONTrackHitPattern* fTrackHitPatternMaker; //!< trigger hit pattern maker
+ AliMUONVTrackReconstructor* fTrackReco; //!< track reconstructor
+ AliMUONVClusterStore* fClusterStore; //!< cluster container
+ AliMUONVTriggerStore* fTriggerStore; //!< trigger information
+
ClassDef(AliMUONTracker,0) //tracker base class for MUON
};
#endif