]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONTracker.h
New class AliESDEvent, backward compatibility with the old AliESD (Christian)
[u/mrichter/AliRoot.git] / MUON / AliMUONTracker.h
index 984295516d0b86f2b1712107349ed5daf5672d41..4f8e35fba2d1893397867ebf68a38b08cb58f1ee 100644 (file)
@@ -4,45 +4,77 @@
  * 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