Adding more bins in QA (Alis)
[u/mrichter/AliRoot.git] / MUON / AliMUONPreClusterFinderV3.h
1 #ifndef ALIMUONPRECLUSTERFINDERV3_H
2 #define ALIMUONPRECLUSTERFINDERV3_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 AliMUONPreClusterFinderV3
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 TIterator;
20 class AliMUONPad;
21
22 class AliMUONPreClusterFinderV3 : public AliMUONVClusterFinder
23 {
24 public:
25   AliMUONPreClusterFinderV3();
26   virtual ~AliMUONPreClusterFinderV3();
27   
28   virtual Bool_t NeedSegmentation() const { return kTRUE; }
29   
30   using AliMUONVClusterFinder::Prepare;
31
32   virtual Bool_t Prepare(Int_t detElemId,                         
33                          TObjArray* pads[2],
34                          const AliMpArea& area,
35                          const AliMpVSegmentation* seg[2]);
36   
37   virtual AliMUONCluster* NextCluster();
38
39   virtual Bool_t UsePad(const AliMUONPad& pad);
40   
41 private:
42   /// Not implemented
43   AliMUONPreClusterFinderV3(const AliMUONPreClusterFinderV3& rhs);
44   /// Not implemented
45   AliMUONPreClusterFinderV3& operator=(const AliMUONPreClusterFinderV3& rhs);
46
47   void AddPad(AliMUONCluster& cluster, AliMUONPad* pad);
48   void AddPreCluster(AliMUONCluster& cluster, AliMUONCluster* preCluster);
49   void MakeCathodePreClusters(Int_t cathode);
50   void MakeClusters();
51   
52   void DumpPreClusters() const;
53   
54 private:
55   TClonesArray* fClusters; //!< the clusters we've found (owner)
56   const AliMpVSegmentation** fkSegmentations; //!< segmentations (not owner)
57   TObjArray** fPads; //!< the pads corresponding to the digits (not owner)
58   TClonesArray* fPreClusters[2]; //!< the preclusters per cathode (owner)
59   Int_t fDetElemId; //!< which DE we're considering
60   TIterator* fIterator; //!< iterator on fClusters
61   
62   ClassDef(AliMUONPreClusterFinderV3,2) // A basic pre-cluster finder
63 };
64
65 #endif