AliRoot Core  a565103 (a565103)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliMUONClusterFinderPeakCOG Class Reference

Cluster finder in MUON arm of ALICE. More...

#include <AliMUONClusterFinderPeakCOG.h>

Inheritance diagram for AliMUONClusterFinderPeakCOG:

Public Member Functions

 AliMUONClusterFinderPeakCOG (Bool_t plot, AliMUONVClusterFinder *clusterFinder)
 
virtual ~AliMUONClusterFinderPeakCOG ()
 
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 AliMUONClusterNextCluster ()
 
virtual void Print (Option_t *opt="") const
 
- Public Member Functions inherited from AliMUONVClusterFinder
 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

 AliMUONClusterFinderPeakCOG (const AliMUONClusterFinderPeakCOG &rhs)
 Not implemented. More...
 
AliMUONClusterFinderPeakCOGoperator= (const AliMUONClusterFinderPeakCOG &rhs)
 Not implemented. More...
 
Bool_t WorkOnPreCluster ()
 
AliMUONClusterCheckPrecluster (const AliMUONCluster &cluster)
 Check precluster to simplify it (if possible), and return the simplified cluster. More...
 
AliMUONClusterCheckPreclusterTwoCathodes (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)
 
AliMUONPadPixel (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 FindCluster (AliMUONCluster &cluster, const Int_t *localMax, Int_t iMax)
 
void PadsInXandY (AliMUONCluster &cluster, Int_t &nInX, Int_t &nInY) const
 
void CheckOverlaps ()
 

Private Attributes

AliMUONVClusterFinderfPreClusterFinder
 ! the pre-clustering worker More...
 
AliMUONClusterfPreCluster
 ! current pre-cluster More...
 
TObjArray fClusterList
 ! clusters corresponding to the current pre-cluster More...
 
Int_t fEventNumber
 ! current event being processed More...
 
Int_t fDetElemId
 ! current DE being processed More...
 
Int_t fClusterNumber
 ! current cluster number More...
 
const AliMpVSegmentationfkSegmentation [2]
 ! new segmentation More...
 
TH2D * fHistAnode
 ! histo for peak search More...
 
TObjArrayfPixArray
 ! 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...
 

Detailed Description

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 compute pad center of gravity.

Author
Laurent Aphecetche (for the "new" C++ structure) and Alexander Zinchenko, JINR Dubna, for the hardcore of it ;-)

Definition at line 28 of file AliMUONClusterFinderPeakCOG.h.

Constructor & Destructor Documentation

AliMUONClusterFinderPeakCOG::AliMUONClusterFinderPeakCOG ( Bool_t  plot,
AliMUONVClusterFinder clusterFinder 
)

Constructor

Definition at line 69 of file AliMUONClusterFinderPeakCOG.cxx.

AliMUONClusterFinderPeakCOG::~AliMUONClusterFinderPeakCOG ( )
virtual

Destructor

Definition at line 92 of file AliMUONClusterFinderPeakCOG.cxx.

AliMUONClusterFinderPeakCOG::AliMUONClusterFinderPeakCOG ( const AliMUONClusterFinderPeakCOG rhs)
private

Not implemented.

Member Function Documentation

void AliMUONClusterFinderPeakCOG::BuildPixArray ( AliMUONCluster cluster)
private

build array of pixels

Build pixel array

Definition at line 510 of file AliMUONClusterFinderPeakCOG.cxx.

Referenced by WorkOnPreCluster().

void AliMUONClusterFinderPeakCOG::BuildPixArrayOneCathode ( AliMUONCluster cluster)
private

Build the pixel array

Definition at line 529 of file AliMUONClusterFinderPeakCOG.cxx.

Referenced by BuildPixArray().

void AliMUONClusterFinderPeakCOG::CheckOverlaps ( )
private

For debug only : check if some pixels overlap...

Definition at line 470 of file AliMUONClusterFinderPeakCOG.cxx.

AliMUONCluster * AliMUONClusterFinderPeakCOG::CheckPrecluster ( const AliMUONCluster cluster)
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 251 of file AliMUONClusterFinderPeakCOG.cxx.

Referenced by WorkOnPreCluster().

AliMUONCluster * AliMUONClusterFinderPeakCOG::CheckPreclusterTwoCathodes ( AliMUONCluster cluster)
private

Check two-cathode cluster

Definition at line 285 of file AliMUONClusterFinderPeakCOG.cxx.

Referenced by CheckPrecluster().

void AliMUONClusterFinderPeakCOG::FindCluster ( AliMUONCluster cluster,
const Int_t *  localMax,
Int_t  iMax 
)
private

Find pixel cluster around local maximum iMax and pick up pads overlapping with it

Definition at line 787 of file AliMUONClusterFinderPeakCOG.cxx.

Referenced by WorkOnPreCluster().

Int_t AliMUONClusterFinderPeakCOG::FindLocalMaxima ( TObjArray pixArray,
Int_t *  localMax,
Double_t *  maxVal 
)
private

Find local maxima in pixel space

Definition at line 682 of file AliMUONClusterFinderPeakCOG.cxx.

Referenced by WorkOnPreCluster().

void AliMUONClusterFinderPeakCOG::FlagLocalMax ( TH2D *  hist,
Int_t  i,
Int_t  j,
Int_t *  isLocalMax 
)
private

Flag pixels (whether or not local maxima)

Definition at line 753 of file AliMUONClusterFinderPeakCOG.cxx.

Referenced by FindLocalMaxima().

virtual Bool_t AliMUONClusterFinderPeakCOG::NeedSegmentation ( ) const
inlinevirtual

It needs segmentation.

Reimplemented from AliMUONVClusterFinder.

Definition at line 35 of file AliMUONClusterFinderPeakCOG.h.

AliMUONCluster * AliMUONClusterFinderPeakCOG::NextCluster ( )
virtual
Todo:
add comment

Return next cluster

Implements AliMUONVClusterFinder.

Definition at line 138 of file AliMUONClusterFinderPeakCOG.cxx.

AliMUONClusterFinderPeakCOG & AliMUONClusterFinderPeakCOG::operator= ( const AliMUONClusterFinderPeakCOG rhs)
private

Not implemented.

Protected assignement operator

Definition at line 925 of file AliMUONClusterFinderPeakCOG.cxx.

Bool_t AliMUONClusterFinderPeakCOG::Overlap ( const AliMUONPad pad,
const AliMUONPad pixel 
)
private

Checks whether a pad and a pixel have an overlapping area.

Check if the pad and the pixel overlaps

Definition at line 237 of file AliMUONClusterFinderPeakCOG.cxx.

Referenced by FindCluster().

void AliMUONClusterFinderPeakCOG::PadOverHist ( Int_t  idir,
Int_t  ix0,
Int_t  iy0,
AliMUONPad pad,
TH2D *  h1,
TH2D *  h2 
)
private

"Span" pad over histogram in the direction idir

Definition at line 635 of file AliMUONClusterFinderPeakCOG.cxx.

Referenced by BuildPixArrayOneCathode().

void AliMUONClusterFinderPeakCOG::PadsInXandY ( AliMUONCluster cluster,
Int_t &  nInX,
Int_t &  nInY 
) const
private

Find number of pads in X and Y-directions (excluding virtual ones and overflows)

Definition at line 937 of file AliMUONClusterFinderPeakCOG.cxx.

AliMUONPad * AliMUONClusterFinderPeakCOG::Pixel ( Int_t  i) const
private

Returns pixel at index i

Definition at line 968 of file AliMUONClusterFinderPeakCOG.cxx.

Referenced by CheckOverlaps(), and RemovePixel().

Bool_t AliMUONClusterFinderPeakCOG::Prepare ( Int_t  detElemId,
TObjArray pads[2],
const AliMpArea area,
const AliMpVSegmentation seg[2] 
)
virtual

Prepare for clustering

Reimplemented from AliMUONVClusterFinder.

Definition at line 103 of file AliMUONClusterFinderPeakCOG.cxx.

void AliMUONClusterFinderPeakCOG::Print ( Option_t *  opt = "") const
virtual

printout

Definition at line 976 of file AliMUONClusterFinderPeakCOG.cxx.

void AliMUONClusterFinderPeakCOG::RemovePixel ( Int_t  i)
private

Remove pixel at index i

Definition at line 958 of file AliMUONClusterFinderPeakCOG.cxx.

Bool_t AliMUONClusterFinderPeakCOG::WorkOnPreCluster ( )
private

Starting from a precluster, builds a pixel array, and then extract clusters from this array

Definition at line 185 of file AliMUONClusterFinderPeakCOG.cxx.

Referenced by NextCluster().

Member Data Documentation

TObjArray AliMUONClusterFinderPeakCOG::fClusterList
private

! clusters corresponding to the current pre-cluster

Definition at line 95 of file AliMUONClusterFinderPeakCOG.h.

Referenced by FindCluster(), NextCluster(), and Prepare().

Int_t AliMUONClusterFinderPeakCOG::fClusterNumber
private

! current cluster number

Definition at line 99 of file AliMUONClusterFinderPeakCOG.h.

Referenced by NextCluster(), and Prepare().

Int_t AliMUONClusterFinderPeakCOG::fDebug
private
Int_t AliMUONClusterFinderPeakCOG::fDetElemId
private

! current DE being processed

Definition at line 98 of file AliMUONClusterFinderPeakCOG.h.

Referenced by CheckPreclusterTwoCathodes(), FindCluster(), Prepare(), and WorkOnPreCluster().

Int_t AliMUONClusterFinderPeakCOG::fEventNumber
private

! current event being processed

Definition at line 97 of file AliMUONClusterFinderPeakCOG.h.

Referenced by Prepare(), and WorkOnPreCluster().

const Int_t AliMUONClusterFinderPeakCOG::fgkCoupled = 0x10000
staticprivate

coupled pad

Definition at line 84 of file AliMUONClusterFinderPeakCOG.h.

const TVector2 AliMUONClusterFinderPeakCOG::fgkDecreaseSize
staticprivate

idem

Definition at line 91 of file AliMUONClusterFinderPeakCOG.h.

Referenced by CheckOverlaps(), CheckPreclusterTwoCathodes(), and Overlap().

const Double_t AliMUONClusterFinderPeakCOG::fgkDistancePrecision = 1e-3
staticprivate

used to check overlaps and so on

Definition at line 89 of file AliMUONClusterFinderPeakCOG.h.

Referenced by BuildPixArrayOneCathode(), FindCluster(), and PadOverHist().

const TVector2 AliMUONClusterFinderPeakCOG::fgkIncreaseSize
staticprivate

idem

Definition at line 90 of file AliMUONClusterFinderPeakCOG.h.

const Int_t AliMUONClusterFinderPeakCOG::fgkModified = 0x1000
staticprivate

modified pad charge

Definition at line 83 of file AliMUONClusterFinderPeakCOG.h.

const Int_t AliMUONClusterFinderPeakCOG::fgkMustKeep = 0x1
staticprivate

do not kill (for pixels)

Definition at line 80 of file AliMUONClusterFinderPeakCOG.h.

const Int_t AliMUONClusterFinderPeakCOG::fgkOver = 0x100
staticprivate

processing is over

Definition at line 82 of file AliMUONClusterFinderPeakCOG.h.

const Int_t AliMUONClusterFinderPeakCOG::fgkUseForFit = 0x10
staticprivate

should be used for fit

Definition at line 81 of file AliMUONClusterFinderPeakCOG.h.

Referenced by PadsInXandY().

const Int_t AliMUONClusterFinderPeakCOG::fgkZero = 0x0
staticprivate

pad "basic" state

Definition at line 79 of file AliMUONClusterFinderPeakCOG.h.

Referenced by PadsInXandY().

const Double_t AliMUONClusterFinderPeakCOG::fgkZeroSuppression = 6
staticprivate

average zero suppression value

Definition at line 88 of file AliMUONClusterFinderPeakCOG.h.

TH2D* AliMUONClusterFinderPeakCOG::fHistAnode
private

! histo for peak search

Definition at line 103 of file AliMUONClusterFinderPeakCOG.h.

Referenced by FindCluster(), FindLocalMaxima(), and WorkOnPreCluster().

const AliMpVSegmentation* AliMUONClusterFinderPeakCOG::fkSegmentation[2]
private

! new segmentation

Definition at line 101 of file AliMUONClusterFinderPeakCOG.h.

Referenced by CheckPreclusterTwoCathodes(), and Prepare().

Int_t AliMUONClusterFinderPeakCOG::fNAddVirtualPads
private

! number of clusters for which we added virtual pads

Definition at line 109 of file AliMUONClusterFinderPeakCOG.h.

Referenced by ~AliMUONClusterFinderPeakCOG().

Int_t AliMUONClusterFinderPeakCOG::fNClusters
private

! total number of clusters

Definition at line 108 of file AliMUONClusterFinderPeakCOG.h.

Referenced by ~AliMUONClusterFinderPeakCOG().

TObjArray* AliMUONClusterFinderPeakCOG::fPixArray
private
Bool_t AliMUONClusterFinderPeakCOG::fPlot
private

! whether we should plot thing (for debug only, quite slow!)

Definition at line 106 of file AliMUONClusterFinderPeakCOG.h.

Referenced by WorkOnPreCluster().

AliMUONCluster* AliMUONClusterFinderPeakCOG::fPreCluster
private

! current pre-cluster

Definition at line 94 of file AliMUONClusterFinderPeakCOG.h.

Referenced by CheckPreclusterTwoCathodes(), NextCluster(), Print(), and WorkOnPreCluster().

AliMUONVClusterFinder* AliMUONClusterFinderPeakCOG::fPreClusterFinder
private

! the pre-clustering worker

Definition at line 93 of file AliMUONClusterFinderPeakCOG.h.

Referenced by NextCluster(), Prepare(), and ~AliMUONClusterFinderPeakCOG().


The documentation for this class was generated from the following files: