#ifndef AliMUONVCLUSTERFINDER_H
# include "AliMUONVClusterFinder.h"
#endif
+#ifndef ALI_MP_AREA_H
+# include "AliMpArea.h"
+#endif
+#ifndef ROOT_TClonesArray
+# include <TClonesArray.h>
+#endif
class TStopwatch;
class AliMUONPad;
+class TObjArray;
class AliMUONPreClusterFinder : public AliMUONVClusterFinder
{
AliMUONPreClusterFinder();
virtual ~AliMUONPreClusterFinder();
- virtual Bool_t Prepare(const AliMpVSegmentation* segmentations[2],
- TClonesArray* digits[2]);
+ using AliMUONVClusterFinder::Prepare;
+
+ virtual Bool_t Prepare(Int_t detElemId,
+ TObjArray* pads[2],
+ const AliMpArea& area);
virtual AliMUONCluster* NextCluster();
void AddPad(AliMUONCluster& cluster, AliMUONPad* pad);
+ AliMUONPad* GetNextPad(Int_t cathode) const;
+
+ /// Whether we should stop working...
+ virtual Bool_t ShouldAbort() const { return fShouldAbort; }
+
+ AliMUONCluster* NewCluster();
+ void RemoveCluster(AliMUONCluster* cluster);
+
private:
- TClonesArray* fClusters; //!< the clusters we've found (owner)
- const AliMpVSegmentation** fSegmentations; //!< segmentations (not owner)
- TClonesArray** fDigits; //!< where to find the digits (not owner)
- TClonesArray* fPads[2]; //!< the pads corresponding to the digits (owner)
+ TClonesArray fClusters; //!< the clusters we've found (owner)
+ TObjArray** fPads; //!< the pads corresponding to the digits (not owner)
Int_t fDetElemId; //!< which DE we're considering
+ AliMpArea fArea; //!< area into which to consider pads to *start* a cluster
+ Bool_t fShouldAbort; //!< to indicate clustering should stop right now
- ClassDef(AliMUONPreClusterFinder,1) // A basic pre-cluster finder
+ ClassDef(AliMUONPreClusterFinder,4) // A basic pre-cluster finder
};
#endif