]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONReconstructor.h
Fixing minor bug recognizing diffractive events in simulation
[u/mrichter/AliRoot.git] / MUON / AliMUONReconstructor.h
index 8e4536ef17896c1b2b68b74fa5de98857fb9c014..22d953d9929e35c274875bbe5f5ace48afe5ccad 100644 (file)
 #ifndef ALIRECONSTRUCTOR_H
 #  include "AliReconstructor.h"
 #endif
+#ifndef ROOT_TObjArray
+#define "TObjArray.h"
+#endif
 
+class AliMUONCalibrationData;
+class AliMUONDigitCalibrator;
 class AliMUONDigitMaker;
-class AliMUONVDigitStore;
-class AliMUONVTriggerStore;
-
 class AliMUONGeometryTransformer;
-
-class AliMUONTriggerCrateStore;
+class AliMUONTracker;
 class AliMUONTriggerCircuit;
-class TClonesArray;
-class AliMUONVTriggerStore;
-
-class AliMUONDigitCalibrator;
-class AliMUONCalibrationData;
-
-class AliMUONClusterReconstructor;
+class AliMUONVClusterFinder;
+class AliMUONVClusterServer;
 class AliMUONVClusterStore;
-
-class AliMUONTracker;
+class AliMUONVDigitStore;
 class AliMUONVTrackStore;
+class AliMUONVTriggerStore;
+class AliMUONTriggerElectronics;
+class TClonesArray;
+class AliMUONTriggerUtilities;
 
-class AliMUONStopwatchGroup;
+#include "AliMUONRecoParam.h"
 
 class AliMUONReconstructor : public AliReconstructor
 {
@@ -48,18 +47,17 @@ public:
 
   virtual void ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
   
-  virtual Bool_t HasLocalReconstruction() const;
-  
-  virtual void Reconstruct(AliRunLoader* runLoader) const;
-  
-  virtual void Reconstruct(AliRunLoader* runLoader, AliRawReader* rawReader) const;
-
   virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
   
   virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
   
-  virtual AliTracker* CreateTracker(AliRunLoader* runLoader) const;
-    
+  virtual AliTracker* CreateTracker() const;
+  
+  /// Get param object
+  static const AliMUONRecoParam* GetRecoParam();
+  
+  static AliMUONVClusterFinder* CreateClusterFinder(const char* clusterFinderType);
+
 private:
   /// Not implemented
   AliMUONReconstructor(const AliMUONReconstructor&);
@@ -70,35 +68,36 @@ private:
                      AliMUONVDigitStore* digitStore,
                      AliMUONVTriggerStore* triggerStore) const;
   void Calibrate(AliMUONVDigitStore& digitStore) const;
-  void Clusterize(const AliMUONVDigitStore& digitStore, AliMUONVClusterStore& clusterStore) const;
-  AliMUONTriggerCrateStore* CrateManager() const;
+  void CreateCalibrationData() const;
   void CreateCalibrator() const;
   void CreateDigitMaker() const;
   void CreateTriggerCircuit() const;
-  void CreateClusterReconstructor() const;
+  void CreateTriggerUtilities() const;
+  AliMUONVClusterServer* CreateClusterServer(const AliMUONRecoParam& rp) const;
   void FillTreeR(AliMUONVTriggerStore* triggerStore,
-                 AliMUONVClusterStore* clusterStore,
                  TTree& clustersTree) const;
   
   AliMUONVDigitStore* DigitStore() const;
-  AliMUONVClusterStore* ClusterStore() const;
   AliMUONVTriggerStore* TriggerStore() const;
-
+  void ResponseRemovingChambers(AliMUONVTriggerStore* triggerStore) const;
+  
 private:
-  mutable AliMUONTriggerCrateStore* fCrateManager; //!< Trigger Crate manager
+
   mutable AliMUONDigitMaker* fDigitMaker; //!< Raw to Digits converter
   AliMUONGeometryTransformer* fTransformer; //!< Geometry transformer (local<->global)
   mutable AliMUONVDigitStore* fDigitStore; //!< Digit container
   mutable AliMUONTriggerCircuit* fTriggerCircuit; //!< Trigger Circuit
   mutable AliMUONCalibrationData* fCalibrationData; //!< Calibration data
   mutable AliMUONDigitCalibrator* fDigitCalibrator; //!<  Digit to calibrate digit converter
-  mutable AliMUONClusterReconstructor* fClusterReconstructor; //!<  Clusterizer
-  mutable AliMUONVClusterStore* fClusterStore; //!< Cluster container
   mutable AliMUONVTriggerStore* fTriggerStore; //!< Trigger container
   mutable AliMUONVTrackStore* fTrackStore; //!< Track container
-  AliMUONStopwatchGroup* fTimers; //!< Internal timers
-  
-  ClassDef(AliMUONReconstructor,1) // Implementation of AliReconstructor
+  mutable AliMUONVClusterStore* fClusterStore; //!< cluster store (when not in combined tracking mode)
+  mutable AliMUONTriggerElectronics* fTriggerProcessor; //!< Processor to recalculate trigger response
+  mutable AliMUONTriggerUtilities* fTriggerUtilities; //!< Trigger utilities for masks
+  mutable TObjArray fClusterServers; //!<  Clusterizers (one per event specie)
+  mutable TObjArray fTrackers; //!< trackers (one per event specie)
+    
+  ClassDef(AliMUONReconstructor,11) // Implementation of AliReconstructor
 };
 
 #endif