/*$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