Implemented relevant changes to allow combined tracking to be functional again (we...
[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 #ifndef ALI_MP_AREA_H
19 #  include "AliMpArea.h"
20 #endif
21
22 class TStopwatch;
23 class AliMUONPad;
24
25 class AliMUONPreClusterFinder : public AliMUONVClusterFinder
26 {
27 public:
28   AliMUONPreClusterFinder();
29   virtual ~AliMUONPreClusterFinder();
30   
31   using AliMUONVClusterFinder::Prepare;
32
33   virtual Bool_t Prepare(Int_t detElemId,
34                          TClonesArray* pads[2],
35                          const AliMpArea& area);
36   
37   virtual AliMUONCluster* NextCluster();
38
39   virtual Bool_t UsePad(const AliMUONPad& pad);
40   
41 private:
42   /// Not implemented
43   AliMUONPreClusterFinder(const AliMUONPreClusterFinder& rhs);
44   /// Not implemented
45   AliMUONPreClusterFinder& operator=(const AliMUONPreClusterFinder& rhs);
46
47   void AddPad(AliMUONCluster& cluster, AliMUONPad* pad);
48   
49   AliMUONPad* GetNextPad(Int_t cathode) const;
50
51 private:
52   TClonesArray* fClusters; //!< the clusters we've found (owner)
53   TClonesArray** fPads; //!< the pads corresponding to the digits (not owner)
54   Int_t fDetElemId; //!< which DE we're considering
55   AliMpArea fArea; //!< area into which to consider pads to *start* a cluster
56   
57   ClassDef(AliMUONPreClusterFinder,2) // A basic pre-cluster finder
58 };
59
60 #endif