Implemented a new version of cluster (with its store and iterator):
[u/mrichter/AliRoot.git] / MUON / AliMUONClusterReconstructor.h
1 #ifndef ALIMUONCLUSTERRECONSTRUCTOR_H
2 #define ALIMUONCLUSTERRECONSTRUCTOR_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /*$Id$*/
7 // Revision of includes 07/05/2004
8
9 /// \ingroup rec
10 /// \class AliMUONClusterReconstructor
11 /// \brief Steering class for clusterizing MUON tracking chambers
12
13 #include <TObject.h>
14
15 class AliMUONVClusterFinder;
16 class AliMUONGeometryTransformer;
17 class AliMUONVClusterStore;
18 class AliMUONVDigitStore;
19
20 class AliMUONClusterReconstructor : public TObject 
21 {
22  public:
23   AliMUONClusterReconstructor(AliMUONVClusterFinder* finder = 0x0,
24                               const AliMUONGeometryTransformer* transformer = 0x0
25                               ); 
26
27   virtual ~AliMUONClusterReconstructor(void); // Destructor
28
29  
30   // Cluster Finding 
31   virtual void Digits2Clusters(const AliMUONVDigitStore& digitStore, AliMUONVClusterStore& clusterStore);
32   
33  protected:
34   /// Not implemented
35   AliMUONClusterReconstructor (const AliMUONClusterReconstructor& rhs); // copy constructor
36   /// Not implemented
37   AliMUONClusterReconstructor& operator=(const AliMUONClusterReconstructor& rhs); // assignment operator
38
39   void ClusterizeOneDE(Int_t detElemId, const AliMUONVDigitStore& digitStore);
40
41 private:
42   AliMUONVClusterFinder* fClusterFinder; //!< the object doing the real clustering job (not owner)  
43
44   const AliMUONGeometryTransformer* fTransformer; //!< to go from local to global (not owner)
45   
46   AliMUONVClusterStore* fClusterStore; //!< not owner
47   
48   Int_t fNCluster; //!< number of clusters in the cluster store (used to define the cluster ID)
49   
50   ClassDef(AliMUONClusterReconstructor,0) // Clustering steering
51 };
52         
53 #endif