]>
Commit | Line | Data |
---|---|---|
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 | |
10 | /// \class AliMUONVClusterFinder | |
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; | |
20 | class AliMUONRecoParam; | |
21 | class AliMpVSegmentation; | |
22 | class AliMUONPad; | |
23 | class AliMpArea; | |
24 | ||
25 | class AliMUONVClusterFinder : public TObject | |
26 | { | |
27 | public: | |
28 | AliMUONVClusterFinder(); | |
29 | virtual ~AliMUONVClusterFinder(); | |
30 | ||
31 | /// \todo add comment | |
32 | ||
33 | virtual Bool_t NeedSegmentation() const { return kFALSE; } | |
34 | ||
35 | virtual Bool_t Prepare(Int_t detElemId, | |
36 | TObjArray* pads[2], | |
37 | const AliMpArea& area); | |
38 | ||
39 | virtual Bool_t Prepare(Int_t detElemId, | |
40 | TObjArray* pads[2], | |
41 | const AliMpArea& area, | |
42 | const AliMpVSegmentation* segmentations[2]); | |
43 | ||
44 | /// \todo add comment | |
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 | ||
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 | ||
62 | ClassDef(AliMUONVClusterFinder,0) // Interface of a MUON cluster finder. | |
63 | }; | |
64 | ||
65 | #endif |