Cluster finder, just gather the neighbourginp pads = precluster
[u/mrichter/AliRoot.git] / MUON / AliMUONPreClusterFinder.h
1 #ifndef ALIMUONPRECLUSTERFINDER_H
2 #define ALIMUONPRECLUSTERFINDER_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice                               */
6
7 // $Id$
8
9 /// \ingroup rec
10 /// \class AliMUONPreClusterFinder
11 /// \brief A basic pre-cluster finder
12 /// 
13 // Author Laurent Aphecetche, Subatech
14
15 #ifndef AliMUONVCLUSTERFINDER_H
16 #  include "AliMUONVClusterFinder.h"
17 #endif
18
19 class TStopwatch;
20 class AliMUONPad;
21
22 class AliMUONPreClusterFinder : public AliMUONVClusterFinder
23 {
24 public:
25   AliMUONPreClusterFinder();
26   virtual ~AliMUONPreClusterFinder();
27   
28   virtual Bool_t Prepare(const AliMpVSegmentation* segmentations[2],
29                          TClonesArray* digits[2]);
30   
31   virtual AliMUONCluster* NextCluster();
32
33   virtual Bool_t UsePad(const AliMUONPad& pad);
34   
35 private:
36   AliMUONPreClusterFinder(const AliMUONPreClusterFinder& rhs);
37   AliMUONPreClusterFinder& operator=(const AliMUONPreClusterFinder& rhs);
38
39   Bool_t AreNeighbours(const AliMUONPad&, const AliMUONPad&);
40   void AddPad(AliMUONCluster& cluster, AliMUONPad* pad);
41   
42 private:
43   TClonesArray* fClusters; ///<! the clusters we've found (owner)
44   const AliMpVSegmentation** fSegmentations; ///<! segmentations (not owner)
45   TClonesArray** fDigits; ///<! where to find the digits (not owner)
46   TClonesArray* fPads[2]; ///!< the pads corresponding to the digits (owner)
47   Int_t fDetElemId; ///!< which DE we're considering
48   
49   ClassDef(AliMUONPreClusterFinder,1) // A basic pre-cluster finder
50 };
51
52 #endif