![]() |
AliRoot Core
3abf5b4 (3abf5b4)
|
Cluster finder in MUON arm of ALICE. More...
#include <AliMUONClusterFinderPeakFit.h>
Public Member Functions | |
AliMUONClusterFinderPeakFit (Bool_t plot, AliMUONVClusterFinder *clusterFinder) | |
virtual | ~AliMUONClusterFinderPeakFit () |
virtual Bool_t | NeedSegmentation () const |
It needs segmentation. More... | |
virtual Bool_t | Prepare (Int_t detElemId, TObjArray *pads[2], const AliMpArea &area, const AliMpVSegmentation *seg[2]) |
virtual AliMUONCluster * | NextCluster () |
Int_t | GetNMax () const |
Return the number of local maxima. More... | |
virtual void | Print (Option_t *opt="") const |
![]() | |
AliMUONVClusterFinder () | |
virtual | ~AliMUONVClusterFinder () |
virtual Bool_t | Prepare (Int_t detElemId, TObjArray *pads[2], const AliMpArea &area) |
virtual Bool_t | UsePad (const AliMUONPad &pad) |
virtual void | SetChargeHints (Double_t, Double_t) |
Private Member Functions | |
AliMUONClusterFinderPeakFit (const AliMUONClusterFinderPeakFit &rhs) | |
Not implemented. More... | |
AliMUONClusterFinderPeakFit & | operator= (const AliMUONClusterFinderPeakFit &rhs) |
Not implemented. More... | |
Bool_t | WorkOnPreCluster () |
AliMUONCluster * | CheckPrecluster (const AliMUONCluster &cluster) |
Check precluster to simplify it (if possible), and return the simplified cluster. More... | |
AliMUONCluster * | CheckPreclusterTwoCathodes (AliMUONCluster *cluster) |
Bool_t | Overlap (const AliMUONPad &pad, const AliMUONPad &pixel) |
Checks whether a pad and a pixel have an overlapping area. More... | |
void | BuildPixArray (AliMUONCluster &cluster) |
build array of pixels More... | |
void | BuildPixArrayOneCathode (AliMUONCluster &cluster) |
void | PadOverHist (Int_t idir, Int_t ix0, Int_t iy0, AliMUONPad *pad, TH2D *h1, TH2D *h2) |
void | RemovePixel (Int_t i) |
AliMUONPad * | Pixel (Int_t i) const |
Int_t | FindLocalMaxima (TObjArray *pixArray, Int_t *localMax, Double_t *maxVal) |
void | FlagLocalMax (TH2D *hist, Int_t i, Int_t j, Int_t *isLocalMax) |
void | FindClusterCOG (AliMUONCluster &cluster, const Int_t *localMax, Int_t iMax) |
void | FindClusterFit (AliMUONCluster &cluster, const Int_t *localMax, const Int_t *maxPos, Int_t nMax) |
void | PadsInXandY (AliMUONCluster &cluster, Int_t &nInX, Int_t &nInY) const |
void | CheckOverlaps () |
Private Attributes | |
AliMUONVClusterFinder * | fPreClusterFinder |
! the pre-clustering worker More... | |
AliMUONCluster * | fPreCluster |
! current pre-cluster More... | |
TObjArray | fClusterList |
! clusters corresponding to the current pre-cluster More... | |
AliMUONMathieson * | fMathieson |
! Mathieson to compute the charge repartition More... | |
Int_t | fEventNumber |
! current event being processed More... | |
Int_t | fDetElemId |
! current DE being processed More... | |
Int_t | fClusterNumber |
! current cluster number More... | |
Int_t | fNMax |
! number of local maxima More... | |
TH2D * | fHistAnode |
! histo for local maxima search More... | |
const AliMpVSegmentation * | fkSegmentation [2] |
! new segmentation More... | |
TObjArray * | fPixArray |
! collection of pixels More... | |
Int_t | fDebug |
! debug level More... | |
Bool_t | fPlot |
! whether we should plot thing (for debug only, quite slow!) More... | |
Int_t | fNClusters |
! total number of clusters More... | |
Int_t | fNAddVirtualPads |
! number of clusters for which we added virtual pads More... | |
Static Private Attributes | |
static const Int_t | fgkZero = 0x0 |
pad "basic" state More... | |
static const Int_t | fgkMustKeep = 0x1 |
do not kill (for pixels) More... | |
static const Int_t | fgkUseForFit = 0x10 |
should be used for fit More... | |
static const Int_t | fgkOver = 0x100 |
processing is over More... | |
static const Int_t | fgkModified = 0x1000 |
modified pad charge More... | |
static const Int_t | fgkCoupled = 0x10000 |
coupled pad More... | |
static const Double_t | fgkZeroSuppression = 6 |
average zero suppression value More... | |
static const Double_t | fgkDistancePrecision = 1e-3 |
used to check overlaps and so on More... | |
static const TVector2 | fgkIncreaseSize |
idem More... | |
static const TVector2 | fgkDecreaseSize |
idem More... | |
Cluster finder in MUON arm of ALICE.
Clusterizer class based on simple peak finder
Pre-clustering is handled by AliMUONPreClusterFinder From a precluster a pixel array is built, and its local maxima are used to get pads and make the fit with up to 3 hit candidates or compute pad centers of gravity for larger number of peaks.
Definition at line 29 of file AliMUONClusterFinderPeakFit.h.
AliMUONClusterFinderPeakFit::AliMUONClusterFinderPeakFit | ( | Bool_t | plot, |
AliMUONVClusterFinder * | clusterFinder | ||
) |
Constructor
Definition at line 138 of file AliMUONClusterFinderPeakFit.cxx.
|
virtual |
Destructor
Definition at line 163 of file AliMUONClusterFinderPeakFit.cxx.
|
private |
Not implemented.
|
private |
build array of pixels
Build pixel array
Definition at line 606 of file AliMUONClusterFinderPeakFit.cxx.
Referenced by WorkOnPreCluster().
|
private |
Build the pixel array
Definition at line 625 of file AliMUONClusterFinderPeakFit.cxx.
Referenced by BuildPixArray().
|
private |
For debug only : check if some pixels overlap...
Definition at line 566 of file AliMUONClusterFinderPeakFit.cxx.
|
private |
Check precluster to simplify it (if possible), and return the simplified cluster.
Check precluster in order to attempt to simplify it (mostly for two-cathode preclusters)
Definition at line 347 of file AliMUONClusterFinderPeakFit.cxx.
Referenced by WorkOnPreCluster().
|
private |
Check two-cathode cluster
Definition at line 381 of file AliMUONClusterFinderPeakFit.cxx.
Referenced by CheckPrecluster().
|
private |
Find COG of pad charge distribution around local maximum iMax
Definition at line 996 of file AliMUONClusterFinderPeakFit.cxx.
Referenced by WorkOnPreCluster().
|
private |
Fit pad charge distribution with nMax hit hypothesis
Definition at line 903 of file AliMUONClusterFinderPeakFit.cxx.
Referenced by WorkOnPreCluster().
|
private |
Find local maxima in pixel space
Definition at line 798 of file AliMUONClusterFinderPeakFit.cxx.
Referenced by WorkOnPreCluster().
|
private |
Flag pixels (whether or not local maxima)
Definition at line 869 of file AliMUONClusterFinderPeakFit.cxx.
Referenced by FindLocalMaxima().
|
inline |
Return the number of local maxima.
Definition at line 46 of file AliMUONClusterFinderPeakFit.h.
|
inlinevirtual |
It needs segmentation.
Reimplemented from AliMUONVClusterFinder.
Definition at line 36 of file AliMUONClusterFinderPeakFit.h.
|
virtual |
Return next cluster
Implements AliMUONVClusterFinder.
Definition at line 230 of file AliMUONClusterFinderPeakFit.cxx.
|
private |
Not implemented.
Protected assignement operator
Definition at line 1133 of file AliMUONClusterFinderPeakFit.cxx.
|
private |
Checks whether a pad and a pixel have an overlapping area.
Check if the pad and the pixel overlaps
Definition at line 333 of file AliMUONClusterFinderPeakFit.cxx.
Referenced by FindClusterCOG().
|
private |
"Span" pad over histogram in the direction idir
Definition at line 751 of file AliMUONClusterFinderPeakFit.cxx.
Referenced by BuildPixArrayOneCathode().
|
private |
Find number of pads in X and Y-directions (excluding virtual ones and overflows)
Definition at line 1145 of file AliMUONClusterFinderPeakFit.cxx.
|
private |
Returns pixel at index i
Definition at line 1176 of file AliMUONClusterFinderPeakFit.cxx.
Referenced by CheckOverlaps(), and RemovePixel().
|
virtual |
Prepare for clustering
Reimplemented from AliMUONVClusterFinder.
Definition at line 175 of file AliMUONClusterFinderPeakFit.cxx.
|
virtual |
printout
Definition at line 1184 of file AliMUONClusterFinderPeakFit.cxx.
|
private |
Remove pixel at index i
Definition at line 1166 of file AliMUONClusterFinderPeakFit.cxx.
|
private |
Starting from a precluster, builds a pixel array, and then extract clusters from this array
Definition at line 277 of file AliMUONClusterFinderPeakFit.cxx.
Referenced by NextCluster().
|
private |
! clusters corresponding to the current pre-cluster
Definition at line 99 of file AliMUONClusterFinderPeakFit.h.
Referenced by FindClusterCOG(), FindClusterFit(), NextCluster(), and Prepare().
|
private |
! current cluster number
Definition at line 104 of file AliMUONClusterFinderPeakFit.h.
Referenced by NextCluster(), and Prepare().
|
private |
! debug level
Definition at line 111 of file AliMUONClusterFinderPeakFit.h.
Referenced by AliMUONClusterFinderPeakFit(), CheckPreclusterTwoCathodes(), FindClusterCOG(), FindLocalMaxima(), and WorkOnPreCluster().
|
private |
! current DE being processed
Definition at line 103 of file AliMUONClusterFinderPeakFit.h.
Referenced by CheckPreclusterTwoCathodes(), FindClusterCOG(), FindClusterFit(), Prepare(), and WorkOnPreCluster().
|
private |
! current event being processed
Definition at line 102 of file AliMUONClusterFinderPeakFit.h.
Referenced by Prepare(), and WorkOnPreCluster().
|
staticprivate |
coupled pad
Definition at line 89 of file AliMUONClusterFinderPeakFit.h.
|
staticprivate |
idem
Definition at line 95 of file AliMUONClusterFinderPeakFit.h.
Referenced by CheckOverlaps(), CheckPreclusterTwoCathodes(), and Overlap().
|
staticprivate |
used to check overlaps and so on
Definition at line 93 of file AliMUONClusterFinderPeakFit.h.
Referenced by FindClusterCOG(), and PadOverHist().
|
staticprivate |
idem
Definition at line 94 of file AliMUONClusterFinderPeakFit.h.
|
staticprivate |
modified pad charge
Definition at line 88 of file AliMUONClusterFinderPeakFit.h.
|
staticprivate |
do not kill (for pixels)
Definition at line 85 of file AliMUONClusterFinderPeakFit.h.
|
staticprivate |
processing is over
Definition at line 87 of file AliMUONClusterFinderPeakFit.h.
|
staticprivate |
should be used for fit
Definition at line 86 of file AliMUONClusterFinderPeakFit.h.
Referenced by PadsInXandY().
|
staticprivate |
pad "basic" state
Definition at line 84 of file AliMUONClusterFinderPeakFit.h.
Referenced by PadsInXandY().
|
staticprivate |
average zero suppression value
Definition at line 92 of file AliMUONClusterFinderPeakFit.h.
|
private |
! histo for local maxima search
Definition at line 106 of file AliMUONClusterFinderPeakFit.h.
Referenced by FindClusterCOG(), FindClusterFit(), FindLocalMaxima(), and WorkOnPreCluster().
|
private |
! new segmentation
Definition at line 108 of file AliMUONClusterFinderPeakFit.h.
Referenced by AliMUONClusterFinderPeakFit(), CheckPreclusterTwoCathodes(), and Prepare().
|
private |
! Mathieson to compute the charge repartition
Definition at line 100 of file AliMUONClusterFinderPeakFit.h.
Referenced by FindClusterFit(), Prepare(), and ~AliMUONClusterFinderPeakFit().
|
private |
! number of clusters for which we added virtual pads
Definition at line 115 of file AliMUONClusterFinderPeakFit.h.
Referenced by ~AliMUONClusterFinderPeakFit().
|
private |
! total number of clusters
Definition at line 114 of file AliMUONClusterFinderPeakFit.h.
Referenced by ~AliMUONClusterFinderPeakFit().
|
private |
! number of local maxima
Definition at line 105 of file AliMUONClusterFinderPeakFit.h.
Referenced by FindClusterFit(), and GetNMax().
|
private |
! collection of pixels
Definition at line 110 of file AliMUONClusterFinderPeakFit.h.
Referenced by BuildPixArray(), BuildPixArrayOneCathode(), CheckOverlaps(), FindLocalMaxima(), Pixel(), RemovePixel(), WorkOnPreCluster(), and ~AliMUONClusterFinderPeakFit().
|
private |
! whether we should plot thing (for debug only, quite slow!)
Definition at line 112 of file AliMUONClusterFinderPeakFit.h.
Referenced by AliMUONClusterFinderPeakFit(), and WorkOnPreCluster().
|
private |
! current pre-cluster
Definition at line 98 of file AliMUONClusterFinderPeakFit.h.
Referenced by CheckPreclusterTwoCathodes(), NextCluster(), Print(), and WorkOnPreCluster().
|
private |
! the pre-clustering worker
Definition at line 97 of file AliMUONClusterFinderPeakFit.h.
Referenced by NextCluster(), Prepare(), and ~AliMUONClusterFinderPeakFit().