1 #ifndef ALIMUONCLUSTERFINDERPEAKFIT_H
2 #define ALIMUONCLUSTERFINDERPEAKFIT_H
17 #ifndef ROOT_TObjArray
18 # include "TObjArray.h"
21 # include "TVector2.h"
48 virtual void Print(Option_t* opt=
"")
const;
75 void FlagLocalMax(TH2D *hist, Int_t i, Int_t j, Int_t *isLocalMax);
AliMUONCluster * CheckPrecluster(const AliMUONCluster &cluster)
Check precluster to simplify it (if possible), and return the simplified cluster. ...
void PadsInXandY(AliMUONCluster &cluster, Int_t &nInX, Int_t &nInY) const
Interface of a cluster finder.
static const Int_t fgkModified
modified pad charge
static const Int_t fgkUseForFit
should be used for fit
Int_t fDebug
! debug level
AliMUONClusterFinderPeakFit & operator=(const AliMUONClusterFinderPeakFit &rhs)
Not implemented.
Bool_t Overlap(const AliMUONPad &pad, const AliMUONPad &pixel)
Checks whether a pad and a pixel have an overlapping area.
void BuildPixArrayOneCathode(AliMUONCluster &cluster)
Bool_t WorkOnPreCluster()
A group of adjacent pads.
Int_t fClusterNumber
! current cluster number
AliMUONCluster * CheckPreclusterTwoCathodes(AliMUONCluster *cluster)
virtual Bool_t NeedSegmentation() const
It needs segmentation.
Implementation of Mathieson response.
Int_t fNAddVirtualPads
! number of clusters for which we added virtual pads
A rectangle area positioned in plane..
AliMUONPad * Pixel(Int_t i) const
TH2D * fHistAnode
! histo for local maxima search
virtual void Print(Option_t *opt="") const
static const Double_t fgkDistancePrecision
used to check overlaps and so on
static const Int_t fgkOver
processing is over
Int_t fEventNumber
! current event being processed
virtual Bool_t Prepare(Int_t detElemId, TObjArray *pads[2], const AliMpArea &area)
AliMUONCluster * fPreCluster
! current pre-cluster
void RemovePixel(Int_t i)
void PadOverHist(Int_t idir, Int_t ix0, Int_t iy0, AliMUONPad *pad, TH2D *h1, TH2D *h2)
virtual AliMUONCluster * NextCluster()
static const TVector2 fgkDecreaseSize
idem
static const Int_t fgkMustKeep
do not kill (for pixels)
virtual ~AliMUONClusterFinderPeakFit()
static const Int_t fgkZero
pad "basic" state
void plot(const std::vector< TH1 * > &v, Double_t min, Double_t max, Double_t factor)
void FindClusterFit(AliMUONCluster &cluster, const Int_t *localMax, const Int_t *maxPos, Int_t nMax)
Int_t fDetElemId
! current DE being processed
virtual Bool_t Prepare(Int_t detElemId, TObjArray *pads[2], const AliMpArea &area, const AliMpVSegmentation *seg[2])
Int_t fNClusters
! total number of clusters
TObjArray * fPixArray
! collection of pixels
void FlagLocalMax(TH2D *hist, Int_t i, Int_t j, Int_t *isLocalMax)
The abstract base class for the segmentation.
AliMUONClusterFinderPeakFit(Bool_t plot, AliMUONVClusterFinder *clusterFinder)
const AliMpVSegmentation * fkSegmentation[2]
! new segmentation
static const Int_t fgkCoupled
coupled pad
TObjArray fClusterList
! clusters corresponding to the current pre-cluster
AliMUONMathieson * fMathieson
! Mathieson to compute the charge repartition
Int_t FindLocalMaxima(TObjArray *pixArray, Int_t *localMax, Double_t *maxVal)
Cluster finder in MUON arm of ALICE.
static const Double_t fgkZeroSuppression
average zero suppression value
Bool_t fPlot
! whether we should plot thing (for debug only, quite slow!)
void FindClusterCOG(AliMUONCluster &cluster, const Int_t *localMax, Int_t iMax)
static const TVector2 fgkIncreaseSize
idem
void BuildPixArray(AliMUONCluster &cluster)
build array of pixels
AliMUONVClusterFinder * fPreClusterFinder
! the pre-clustering worker
Combination of digit and mppad informations.
Int_t GetNMax() const
Return the number of local maxima.
Int_t fNMax
! number of local maxima