]>
Commit | Line | Data |
---|---|---|
5e185331 | 1 | #ifndef ALIMUONVCLUSTERFINDER_H |
2 | #define ALIMUONVCLUSTERFINDER_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 | |
c25af45b | 10 | /// \class AliMUONVClusterFinder |
5e185331 | 11 | /// \brief Interface of a cluster finder. |
12 | /// | |
13 | // Author Laurent Aphecetche | |
14 | ||
15 | #ifndef ROOT_TObject | |
16 | # include "TObject.h" | |
17 | #endif | |
18 | ||
19 | class AliMUONCluster; | |
110edb51 | 20 | class AliMUONRecoParam; |
5e185331 | 21 | class AliMpVSegmentation; |
5e185331 | 22 | class AliMUONPad; |
24935e58 | 23 | class AliMpArea; |
5e185331 | 24 | |
25 | class AliMUONVClusterFinder : public TObject | |
26 | { | |
27 | public: | |
28 | AliMUONVClusterFinder(); | |
29 | virtual ~AliMUONVClusterFinder(); | |
30 | ||
71a2d3aa | 31 | /// \todo add comment |
24935e58 | 32 | |
33 | virtual Bool_t NeedSegmentation() const { return kFALSE; } | |
34 | ||
35 | virtual Bool_t Prepare(Int_t detElemId, | |
9e41a340 | 36 | TObjArray* pads[2], |
24935e58 | 37 | const AliMpArea& area); |
38 | ||
39 | virtual Bool_t Prepare(Int_t detElemId, | |
9e41a340 | 40 | TObjArray* pads[2], |
24935e58 | 41 | const AliMpArea& area, |
42 | const AliMpVSegmentation* segmentations[2]); | |
5e185331 | 43 | |
71a2d3aa | 44 | /// \todo add comment |
5e185331 | 45 | virtual AliMUONCluster* NextCluster() = 0; |
46 | ||
47 | /** Add a pad to the list of pads to be considered for clustering. | |
48 | Typical usage is to "put-back-in-business" a pad that was part | |
49 | of a previous cluster (returned by NextCluster) but was externally | |
50 | identified of not being part of that cluster, so it must be reuseable. | |
51 | Might not be implemented by all cluster finders... | |
52 | (in which case it must returns kFALSE) | |
53 | */ | |
54 | virtual Bool_t UsePad(const AliMUONPad& pad); | |
55 | ||
110edb51 | 56 | /** Specify a couple of charge hints. We call them hints because some |
57 | clustering need them and use them directly, other cook them before | |
58 | using them, and some others yet simply don't care about them. | |
59 | */ | |
60 | virtual void SetChargeHints(Double_t /*lowestPadCharge*/, Double_t /*lowestClusterCharge*/) { } | |
61 | ||
5e185331 | 62 | ClassDef(AliMUONVClusterFinder,0) // Interface of a MUON cluster finder. |
63 | }; | |
64 | ||
65 | #endif |