// $Id$
/// \ingroup rec
-/// \class AliMUONClusterFinder
+/// \class AliMUONVClusterFinder
/// \brief Interface of a cluster finder.
///
// Author Laurent Aphecetche
#endif
class AliMUONCluster;
+class AliMUONRecoParam;
class AliMpVSegmentation;
-class TClonesArray;
class AliMUONPad;
+class AliMpArea;
class AliMUONVClusterFinder : public TObject
{
AliMUONVClusterFinder();
virtual ~AliMUONVClusterFinder();
- virtual Bool_t Prepare(const AliMpVSegmentation* segmentations[2],
- TClonesArray* digits[2]) = 0;
+ /// \todo add comment
+
+ virtual Bool_t NeedSegmentation() const { return kFALSE; }
+
+ virtual Bool_t Prepare(Int_t detElemId,
+ TObjArray* pads[2],
+ const AliMpArea& area);
+
+ virtual Bool_t Prepare(Int_t detElemId,
+ TObjArray* pads[2],
+ const AliMpArea& area,
+ const AliMpVSegmentation* segmentations[2]);
+ /// \todo add comment
virtual AliMUONCluster* NextCluster() = 0;
/** Add a pad to the list of pads to be considered for clustering.
*/
virtual Bool_t UsePad(const AliMUONPad& pad);
+ /** Specify a couple of charge hints. We call them hints because some
+ clustering need them and use them directly, other cook them before
+ using them, and some others yet simply don't care about them.
+ */
+ virtual void SetChargeHints(Double_t /*lowestPadCharge*/, Double_t /*lowestClusterCharge*/) { }
+
ClassDef(AliMUONVClusterFinder,0) // Interface of a MUON cluster finder.
};