AliRoot Core  3dc7879 (3dc7879)
AliEMCALClusterizerv3.h
Go to the documentation of this file.
1 #ifndef ALIEMCALCLUSTERIZERV3_H
2 #define ALIEMCALCLUSTERIZERV3_H
3 
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice */
6 
7 
9 class AliEMCALRecPoint;
10 class AliEMCALDigit;
11 
13 {
14  // Define numbers rows/columns for topological representation of cells
15  const UInt_t kNrows = (24+1)*(6+4); // 10x supermodule rows (6 for EMCAL, 4 for DCAL). +1 accounts for topological gap between two supermodules
16  const UInt_t kNcolumns = 48*2+1; // 2x supermodule columns + 1 empty space in between for DCAL (not used for EMCAL)
17 }
18 
19 //_________________________________________________________________________
28 //_________________________________________________________________________
29 class AliEMCALClusterFinder: public TObject
30 {
31  struct cellWithE {
32  cellWithE() : energy(0.), row(0), column(0) {}
33  cellWithE(Float_t e, Int_t r, Int_t c) : energy(e), row(r), column(c) {}
34  // std::sort will require operator< to compile.
35  bool operator<( cellWithE const& rhs ) const
36  { return energy < rhs.energy; }
37  Float_t energy;
38  Int_t row;
39  Int_t column;
40  };
41 
42  public:
43  AliEMCALClusterFinder(TObjArray* outputArray, AliEMCALGeometry* geometry, Double_t timeCut, Double_t timeMin, Double_t timeMax, Double_t gradientCut, Bool_t doEnergyGradientCut, Double_t thresholdSeedE, Double_t thresholdCellE);
45 
46  Int_t FindClusters(TClonesArray* digits);
47  TObjArray* GetFoundClusters() {return fFoundClusters;}
48 
49  private:
50  AliEMCALRecPoint* GetClusterFromNeighbours(AliEMCALRecPoint* recPoint, Int_t row, Int_t column);
51  void GetTopologicalRowColumn(AliEMCALDigit* digit, Int_t& row, Int_t& column);
52 
57 
60 
61  Double_t fTimeCut;
62  Double_t fTimeMin;
63  Double_t fTimeMax;
64  Double_t fGradientCut;
68 
69  AliEMCALClusterFinder(const AliEMCALClusterFinder&); // not implemented
70  AliEMCALClusterFinder &operator=(const AliEMCALClusterFinder&); // not implemented
71 
73  ClassDef(AliEMCALClusterFinder,1);
75 };
76 
77 
78 //_________________________________________________________________________
90 //_________________________________________________________________________
92 {
93 
94 public:
98  AliEMCALCalibTime * calibt, AliCaloCalibPedestal *pedestal);
99 
100  virtual ~AliEMCALClusterizerv3();
101 
102 
103  virtual const char *Version() const { return "clu-v3";}
104 
105  void SetDoEnGradCut(Bool_t b) { fDoEnGradCut = b; }
106 
107 protected:
108  virtual void MakeClusters();
109 
110  Bool_t fDoEnGradCut;
112 
113 private:
114 
115  AliEMCALClusterizerv3 (const AliEMCALClusterizerv3 &); //copy ctor
116  AliEMCALClusterizerv3 & operator = (const AliEMCALClusterizerv3 &);
117 
119  ClassDef(AliEMCALClusterizerv3,1);
121 
122 };
123 
124 #endif // AliEMCALCLUSTERIZERV3_H
TBrowser b
Definition: RunAnaESD.C:12
Double_t fTimeCut
maximum time difference between the digits inside EMC cluster
Bool_t fDoEnGradCut
cut on energy gradient
Int_t fNumFoundClusters
number of found clusters in FindClusters()
#define TObjArray
Double_t fGradientCut
minimum energy difference to distinguish local maxima in a cluster
Double_t fThresholdCellEnergy
minimum energy for a digit to be a member of a cluster
Cell energy calibration factors container class.
EMCal digits object.
Definition: AliEMCALDigit.h:30
Meta class for recursive clusterizer.
Clusterize neighbour cells, split if several maxima.
virtual const char * Version() const
TObjArray * fFoundClusters
! Pointer to found cluster object array
bool operator<(cellWithE const &rhs) const
EMCal rec_points object.
Cell time shifts container class.
Clusterize neighbour cells, no split, unfolding possible.
pedestal/bad map monitoring and calibration tools
Double_t fThresholdSeedEnergy
minimum energy to seed a EC digit in a cluster
AliEMCALClusterFinder * fClusterFinder
! Cluster finder
cellWithE(Float_t e, Int_t r, Int_t c)
Double_t fTimeMin
minimum time of physical signal in a cell/digit
Bool_t fDoEnergyGradientCut
cut on energy gradient
Double_t fTimeMax
maximum time of physical signal in a cell/digit
AliEMCALGeometry * fEMCALGeometry
! pointer to geometry for utilities
EMCal geometry, singleton.