1 #ifndef ALIMUONVCLUSTERFINDER_H
2 #define ALIMUONVCLUSTERFINDER_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
10 /// \class AliMUONVClusterFinder
11 /// \brief Interface of a cluster finder.
13 // Author Laurent Aphecetche
20 class AliMUONRecoParam;
21 class AliMpVSegmentation;
25 class AliMUONVClusterFinder : public TObject
28 AliMUONVClusterFinder();
29 virtual ~AliMUONVClusterFinder();
33 virtual Bool_t NeedSegmentation() const { return kFALSE; }
35 virtual Bool_t Prepare(Int_t detElemId,
37 const AliMpArea& area);
39 virtual Bool_t Prepare(Int_t detElemId,
41 const AliMpArea& area,
42 const AliMpVSegmentation* segmentations[2]);
45 virtual AliMUONCluster* NextCluster() = 0;
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)
54 virtual Bool_t UsePad(const AliMUONPad& pad);
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.
60 virtual void SetChargeHints(Double_t /*lowestPadCharge*/, Double_t /*lowestClusterCharge*/) { }
62 ClassDef(AliMUONVClusterFinder,0) // Interface of a MUON cluster finder.