1 #ifndef ALIMUONPRECLUSTERFINDER_H
2 #define ALIMUONPRECLUSTERFINDER_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
10 /// \class AliMUONPreClusterFinder
11 /// \brief A basic pre-cluster finder
13 // Author Laurent Aphecetche, Subatech
15 #ifndef AliMUONVCLUSTERFINDER_H
16 # include "AliMUONVClusterFinder.h"
19 # include "AliMpArea.h"
21 #ifndef ROOT_TClonesArray
22 # include <TClonesArray.h>
28 class AliMUONPreClusterFinder : public AliMUONVClusterFinder
31 AliMUONPreClusterFinder();
32 virtual ~AliMUONPreClusterFinder();
34 using AliMUONVClusterFinder::Prepare;
36 virtual Bool_t Prepare(Int_t detElemId,
37 TClonesArray* pads[2],
38 const AliMpArea& area);
40 virtual AliMUONCluster* NextCluster();
42 virtual Bool_t UsePad(const AliMUONPad& pad);
46 AliMUONPreClusterFinder(const AliMUONPreClusterFinder& rhs);
48 AliMUONPreClusterFinder& operator=(const AliMUONPreClusterFinder& rhs);
50 void AddPad(AliMUONCluster& cluster, AliMUONPad* pad);
52 AliMUONPad* GetNextPad(Int_t cathode) const;
54 /// Whether we should stop working...
55 virtual Bool_t ShouldAbort() const { return fShouldAbort; }
57 AliMUONCluster* NewCluster();
58 void RemoveCluster(AliMUONCluster* cluster);
61 TClonesArray fClusters; //!< the clusters we've found (owner)
62 TClonesArray** fPads; //!< the pads corresponding to the digits (not owner)
63 Int_t fDetElemId; //!< which DE we're considering
64 AliMpArea fArea; //!< area into which to consider pads to *start* a cluster
65 Bool_t fShouldAbort; //!< to indicate clustering should stop right now
67 ClassDef(AliMUONPreClusterFinder,4) // A basic pre-cluster finder