#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();
virtual Bool_t UsePad(const AliMUONPad& pad);
private:
+ /// Not implemented
AliMUONPreClusterFinder(const AliMUONPreClusterFinder& rhs);
+ /// Not implemented
AliMUONPreClusterFinder& operator=(const AliMUONPreClusterFinder& rhs);
- Bool_t AreNeighbours(const AliMUONPad&, const AliMUONPad&);
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)
- Int_t fDetElemId; ///!< which DE we're considering
+ 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