]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONClusterReconstructor.h
Protection against not accessible input OCDB (Laurent)
[u/mrichter/AliRoot.git] / MUON / AliMUONClusterReconstructor.h
index a1641f00660a1c4f5f06df981c2665711fcf2fa5..7dad6abc2b44c915141a64a5b344e8f2957347a6 100644 (file)
@@ -6,72 +6,48 @@
 /*$Id$*/
 // Revision of includes 07/05/2004
 
-////////////////////////////////////
-// MUON event reconstructor in ALICE
-////////////////////////////////////
+/// \ingroup rec
+/// \class AliMUONClusterReconstructor
+/// \brief Steering class for clusterizing MUON tracking chambers
 
 #include <TObject.h>
-#include "AliMUONClusterFinderVS.h" //AZ
 
-class AliLoader;
-class AliMUON;
-class AliMUONRawCluster;
-//AZ class AliMUONClusterFinderVS;
-class AliMUONData;
-class AliRawReader;
+class AliMUONVClusterFinder;
+class AliMUONGeometryTransformer;
+class AliMUONVClusterStore;
+class AliMUONVDigitStore;
 
 class AliMUONClusterReconstructor : public TObject 
 {
  public:
-  AliMUONClusterReconstructor(AliLoader* loader); // Constructor
-  virtual ~AliMUONClusterReconstructor(void); // Destructor
-
-  // Interface with AliMUONData
-  virtual void       SetTreeAddress(){};
-    
-  // Cluster Finding & Trigger
-  virtual void   Digits2Clusters();
-  virtual void   Digits2Clusters(AliRawReader* rawReader);
-  virtual void   Trigger2Trigger() ;
-  virtual void   Trigger2Trigger(AliRawReader* rawReader);
-
-  // pointer to data container
-  AliMUONData*   GetMUONData() {return fMUONData;}
+  AliMUONClusterReconstructor(AliMUONVClusterFinder* finder = 0x0,
+                              const AliMUONGeometryTransformer* transformer = 0x0
+                              ); 
 
-  // Reco Model
-  AliMUONClusterFinderVS* GetRecoModel() {return fRecModel;}
-  //  AliMUONClusterFinderAZ* GetRecoModel() {return fRecModel;}
-  //AZ void   SetRecoModel(AliMUONClusterFinderVS* rec) {fRecModel = rec;}
-  void   SetRecoModel(AliMUONClusterFinderVS* rec) {if (fRecModel) delete fRecModel; fRecModel = rec;} //AZ
-  //  void   SetRecoModel(AliMUONClusterFinderAZ* rec) {fRecModel = rec;}
-
-  // print level
-  Int_t GetPrintLevel(void) const {return fPrintLevel;}
-  void SetPrintLevel(Int_t printLevel) {fPrintLevel = printLevel;}
+  virtual ~AliMUONClusterReconstructor(void); // Destructor
 
+  // Cluster Finding 
+  virtual void Digits2Clusters(const AliMUONVDigitStore& digitStore, AliMUONVClusterStore& clusterStore);
+  
  protected:
-  AliMUONClusterReconstructor();                  // Default constructor
+  /// Not implemented
   AliMUONClusterReconstructor (const AliMUONClusterReconstructor& rhs); // copy constructor
+  /// Not implemented
   AliMUONClusterReconstructor& operator=(const AliMUONClusterReconstructor& rhs); // assignment operator
 
- private:
-  static const Int_t fgkDefaultPrintLevel;     // Default print level
+  void ClusterizeOneDE(Int_t detElemId, const AliMUONVDigitStore& digitStore);
 
-  AliMUONData*            fMUONData;           //! Data container for MUON subsystem 
-  AliMUONClusterFinderVS* fRecModel;           //! cluster recontruction model
-  //AliMUONClusterFinderAZ* fRecModel;           //! cluster recontruction model
+private:
+  AliMUONVClusterFinder* fClusterFinder; //!< the object doing the real clustering job (not owner)  
 
- // print level
-  Int_t fPrintLevel;
-
-  // debug
-  Int_t fDebug;
+  const AliMUONGeometryTransformer* fTransformer; //!< to go from local to global (not owner)
   
-  // alice loader
-  AliLoader* fLoader;
-
-
-  ClassDef(AliMUONClusterReconstructor,0) // MUON cluster reconstructor in ALICE
+  AliMUONVClusterStore* fClusterStore; //!< not owner
+  
+  Int_t fNCluster; //!< number of clusters in the cluster store (used to define the cluster ID)
+  
+  ClassDef(AliMUONClusterReconstructor,0) // Clustering steering
 };
        
 #endif