]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONReconstructor.h
- Disentangle masks effect from trigger chamber efficiency estimation.
[u/mrichter/AliRoot.git] / MUON / AliMUONReconstructor.h
index 145e24d06d09bcc7bc25a68537229772040ea24d..dca7b4ff5aa7b96a65aaf5ebb8d828e17a08d05a 100644 (file)
@@ -1,67 +1,99 @@
 #ifndef ALIMUONRECONSTRUCTOR_H
 #define ALIMUONRECONSTRUCTOR_H
+
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice                               */
+* See cxx source for full Copyright notice                               */
 
-/* $Id$ */
-// Revision of includes 07/05/2004
+// $Id$
 
 /// \ingroup rec
 /// \class AliMUONReconstructor
-/// \brief Class for the MUON reconstruction
+/// \brief Implementation of AliReconstructor for MUON (both tracker and trigger)
+/// 
+// Author Laurent Aphecetche, Subatech
 
-#include "AliReconstructor.h"
+#ifndef ALIRECONSTRUCTOR_H
+#  include "AliReconstructor.h"
+#endif
 
 class AliMUONCalibrationData;
-class AliMUONData;
-class TTask;
+class AliMUONDigitCalibrator;
 class AliMUONDigitMaker;
-class AliMUONTriggerCrateStore;
+class AliMUONGeometryTransformer;
+class AliMUONTracker;
+class AliMUONTriggerCircuit;
+class AliMUONVClusterFinder;
+class AliMUONVClusterServer;
+class AliMUONVClusterStore;
+class AliMUONVDigitStore;
+class AliMUONVTrackStore;
+class AliMUONVTriggerStore;
+class AliMUONTriggerElectronics;
 class TClonesArray;
+class AliMUONTriggerUtilities;
 
-class AliMUONReconstructor: public AliReconstructor 
-{
-  public:
-    AliMUONReconstructor();
-    virtual ~AliMUONReconstructor();
+#include "AliMUONRecoParam.h"
 
-    virtual void         Init(AliRunLoader* runLoader);
+class AliMUONReconstructor : public AliReconstructor
+{
+public:
+  AliMUONReconstructor();
+  virtual ~AliMUONReconstructor();
+  
+  virtual Bool_t HasDigitConversion() const;
 
-    virtual void         Reconstruct(TTree* /*digitsTree*/, 
-                                    TTree* /*clustersTree*/) const {return;}
-    virtual void         Reconstruct(AliRawReader* /*rawReader*/, 
-                                    TTree* /*clustersTree*/) const {return;}
-    virtual void         Reconstruct(AliRunLoader* runLoader) const;
-    virtual void         Reconstruct(AliRunLoader* runLoader, 
-                                   AliRawReader* rawReader) const;
+  virtual void ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
+  
+  virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
+  
+  virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
+  
+  virtual AliTracker* CreateTracker() const;
+  
+  /// Get param object
+  static const AliMUONRecoParam* GetRecoParam() { return dynamic_cast<const AliMUONRecoParam*>(AliReconstructor::GetRecoParam(7)); }
+  
+  static AliMUONVClusterFinder* CreateClusterFinder(const char* clusterFinderType);
 
-    virtual void         FillESD(TTree* /*digitsTree*/, TTree* /*clustersTree*/, 
-                                AliESD* /*esd*/) const {return;}
-    virtual void         FillESD(AliRawReader* /*rawReader*/, TTree* /*clustersTree*/, 
-                                AliESD* /*esd*/) const {return;}
-    virtual void         FillESD(AliRunLoader* runLoader, AliESD* esd) const;
-    virtual void         FillESD(AliRunLoader* runLoader, 
-                                AliRawReader* /*rawReader*/, AliESD* esd) const;
-     
 private:
-
-    TTask* GetCalibrationTask(AliMUONData* data) const;
-    AliMUONReconstructor(const AliMUONReconstructor& right);
-    AliMUONReconstructor&  operator = (const AliMUONReconstructor& right);
-
+  /// Not implemented
+  AliMUONReconstructor(const AliMUONReconstructor&);
+  /// Not implemented
+  AliMUONReconstructor& operator=(const AliMUONReconstructor&);
+  
+  void ConvertDigits(AliRawReader* rawReader, 
+                     AliMUONVDigitStore* digitStore,
+                     AliMUONVTriggerStore* triggerStore) const;
+  void Calibrate(AliMUONVDigitStore& digitStore) const;
+  void CreateCalibrationData() const;
+  void CreateCalibrator() const;
+  void CreateDigitMaker() const;
+  void CreateTriggerCircuit() const;
+  void CreateTriggerUtilities() const;
+  void CreateClusterServer() const;
+  void FillTreeR(AliMUONVTriggerStore* triggerStore,
+                 TTree& clustersTree) const;
+  
+  AliMUONVDigitStore* DigitStore() const;
+  AliMUONVTriggerStore* TriggerStore() const;
+  void ResponseRemovingChambers(AliMUONVTriggerStore* triggerStore) const;
+  
 private:
-    AliRunLoader* fRunLoader;       //!< pointer to runloader
-    AliMUONDigitMaker* fDigitMaker; //!< pointer to the digit maker class
-
-    mutable AliMUONCalibrationData* fCalibrationData; //!< pointer to calibration data
-    
-    AliMUONTriggerCrateStore* fCrateManager;     //!< Crate array
-
-    TClonesArray* fTriggerCircuit;   //!< trigger circuit
 
-  ClassDef(AliMUONReconstructor, 0)   // class for the MUON reconstruction
+  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 AliMUONVClusterServer* fClusterServer; //!<  Clusterizer
+  mutable AliMUONVTriggerStore* fTriggerStore; //!< Trigger container
+  mutable AliMUONVTrackStore* fTrackStore; //!< Track container
+  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
+  
+  ClassDef(AliMUONReconstructor,10) // Implementation of AliReconstructor
 };
 
 #endif