AliRoot Core  3dc7879 (3dc7879)
AliEMCALClusterizer.h
Go to the documentation of this file.
1 #ifndef ALIEMCALCLUSTERIZER_H
2 #define ALIEMCALCLUSTERIZER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 //_________________________________________________________________________
16 //_________________________________________________________________________
17 
18 // --- ROOT system ---
19 #include <TObject.h>
20 #include <TClonesArray.h>
21 class TTree;
22 
23 // --- AliRoot header files ---
24 #include "AliLog.h"
25 class AliEMCALGeometry;
26 class AliEMCALCalibData;
27 class AliEMCALCalibTime;
29 class AliEMCALRecParam;
30 #include "AliEMCALUnfolding.h"
31 
32 class AliEMCALClusterizer : public TObject
33 {
34 
35 public:
36 
40  AliEMCALCalibTime * calibt, AliCaloCalibPedestal *pedestal);
41  virtual ~AliEMCALClusterizer();
42 
43  // Main methods
44 
45  virtual void DeleteDigits();
46  virtual void DeleteRecPoints();
47 
48  virtual void Digits2Clusters(Option_t *option) = 0;
49 
50  virtual void Calibrate(Float_t & amp, Float_t & time, const Int_t cellId);
51  virtual void Init();
52  virtual void InitParameters();
53  virtual void InitParameters(const AliEMCALRecParam* recParam);
54 
55  virtual void Print (Option_t *option) const ;
56  virtual void PrintRecPoints(Option_t *option);
57  virtual void PrintRecoInfo();
58 
59  virtual const char *Version() const { Warning("Version", "Not Defined");
60  return 0 ; }
61 
62  // Getters-Setters
63 
64  virtual void SetInput (TTree *digitsTree );
65  virtual void SetOutput(TTree *clustersTree);
66 
67  virtual void GetCalibrationParameters(void);
68  virtual void GetCaloCalibPedestal(void);
69  virtual void SetCalibrationParameters(AliEMCALCalibData *calib) { fCalibData = calib; }
70  virtual void SetTimeCalibrationParameters(AliEMCALCalibTime *calib) { fCalibTime = calib; }
71  virtual void SetCaloCalibPedestal(AliCaloCalibPedestal *caped) { fCaloPed = caped; }
72 
73  virtual Float_t GetTimeMin() const { return fTimeMin; }
74  virtual Float_t GetTimeMax() const { return fTimeMax; }
75  virtual Float_t GetTimeCut() const { return fTimeCut; }
76  virtual Float_t IsTimeCalibrationOn() const { return fTimeCalibration; }
77  virtual Float_t GetECAClusteringThreshold() const { return fECAClusteringThreshold; }
78  virtual Float_t GetECALocalMaxCut() const { return fECALocMaxCut; }
79  virtual Float_t GetECALogWeight() const { return fECAW0; }
80  virtual Float_t GetMinECut() const { return fMinECut; }
81  virtual Bool_t GetRejectBelowThreshold() const { return fRejectBelowThreshold; }
82 
83  virtual void SetTimeMin(Float_t t) { fTimeMin = t; }
84  virtual void SetTimeMax(Float_t t) { fTimeMax = t; }
85  virtual void SetTimeCut(Float_t t) { fTimeCut = t; }
86  virtual void SetTimeCalibration(Bool_t t) { fTimeCalibration = t; }
87 
88  virtual void SetECAClusteringThreshold(Float_t th) { fECAClusteringThreshold = th; }
89  virtual void SetMinECut(Float_t mine) { fMinECut = mine; }
90  virtual void SetECALocalMaxCut(Float_t cut) { fECALocMaxCut = cut; }
91  virtual void SetECALogWeight(Float_t w) { fECAW0 = w; }
92  virtual void SetRejectBelowThreshold(Bool_t reject) { fRejectBelowThreshold = reject; }
93 
94  // Unfolding
95 
96  virtual void SetUnfolding(Bool_t toUnfold = kTRUE ) { fToUnfold = toUnfold; }
97  virtual void SetSSPars (Int_t ipar, Double_t par) { fSSPars[ipar] = par; }
98  virtual void SetPar5 (Int_t ipar, Double_t par) { fPar5 [ipar] = par; }
99  virtual void SetPar6 (Int_t ipar, Double_t par) { fPar6 [ipar] = par; }
100 
101  virtual void InitClusterUnfolding() {
105 
106  // NxN (only used in NxN clusterizer)
107 
108  virtual void SetNRowDiff(Int_t ) { ; }
109  virtual void SetNColDiff(Int_t ) { ; }
110  virtual void SetEnergyGrad(Bool_t ) { ; }
111 
112  virtual Int_t GetNRowDiff() const { return -1 ; }
113  virtual Int_t GetNColDiff() const { return -1 ; }
114  virtual Bool_t GetEnergyGrad() const { return -1 ; }
115 
116  // add for clusterizing task
117 
118  virtual void SetDigitsArr(TClonesArray *arr) { fDigitsArr = arr ; }
119  virtual TClonesArray *GetDigits()
120  { if (!fDigitsArr) fDigitsArr = new TClonesArray("AliEMCALDigit",12000);
121  return fDigitsArr ; }
122 
123  virtual const TObjArray *GetRecPoints() const { return fRecPoints ; }
124  void SetInputCalibrated(Bool_t val);
125  void SetJustClusters (Bool_t val);
126 
127 protected:
128 
129  virtual void MakeClusters() = 0;
130 
132  Bool_t fJustClusters;
133  TClonesArray *fDigitsArr;
134  TTree *fTreeR;
136 
141 
142  Float_t fADCchannelECA;
143  Float_t fADCpedestalECA;
144  Float_t fTimeECA;
145 
146  Float_t fTimeMin;
147  Float_t fTimeMax;
148  Float_t fTimeCut;
150 
151  Bool_t fDefaultInit;
152  Bool_t fToUnfold;
154 
156  Float_t fECALocMaxCut;
157  Float_t fECAW0;
158  Float_t fMinECut;
160 
162  Double_t fSSPars[8];
163  Double_t fPar5[3];
164  Double_t fPar6[3];
165 
166  private:
167 
170 
172  ClassDef(AliEMCALClusterizer,10) ;
174 
175 };
176 #endif // AliEMCALCLUSTERIZER_H
Double_t fPar5[3]
shower shape parameter 5
Int_t fNumberOfECAClusters
number of clusters found in EC section
Double_t fPar6[3]
shower shape parameter 6
virtual Float_t IsTimeCalibrationOn() const
virtual void Calibrate(Float_t &amp, Float_t &time, const Int_t cellId)
virtual void SetTimeMin(Float_t t)
Float_t fADCchannelECA
width of one ADC channel for EC section (GeV)
virtual void SetDigitsArr(TClonesArray *arr)
virtual void Digits2Clusters(Option_t *option)=0
virtual void SetCalibrationParameters(AliEMCALCalibData *calib)
#define TObjArray
Bool_t fDefaultInit
! says if the task was created by defaut ctor (only parameters are initialized)
TObjArray * fRecPoints
array with EMCAL clusters
Bool_t fRejectBelowThreshold
split (false-default) or reject (true) cell energy below threshold after UF
void SetInputCalibrated(Bool_t val)
Flag to indicate that input is calibrated - the case when we run already on ESD.
virtual void SetRejectBelowThreshold(Bool_t reject)
Float_t fECAW0
logarithmic weight for the cluster center of gravity calculation
AliEMCALClusterizer()
Default Constructor.
virtual Bool_t GetEnergyGrad() const
virtual Int_t GetNRowDiff() const
virtual void PrintRecoInfo()
Print reco version.
Float_t fTimeECA
calibration parameter for channels time
virtual void SetRejectBelowThreshold(Bool_t reject)
virtual Float_t GetTimeMin() const
Float_t fECALocMaxCut
minimum energy difference to distinguish local maxima in a cluster
virtual void SetPar5(Int_t ipar, Double_t par)
AliEMCALCalibTime * fCalibTime
! time calibration database if aval
virtual void SetOutput(TTree *clustersTree)
Set the tree with output clusters.
Cell energy calibration factors container class.
virtual Float_t GetECALogWeight() const
virtual void SetEnergyGrad(Bool_t)
Container of reconstruction parameters.
virtual void SetPar6(Int_t ipar, Double_t par)
virtual void SetMinECut(Float_t mine)
Base class for the cluster unfolding algorithm.
virtual void SetNRowDiff(Int_t)
virtual void SetUnfolding(Bool_t toUnfold=kTRUE)
virtual Float_t GetTimeMax() const
Float_t fTimeCut
maximum time difference between the digits inside EMC cluster
virtual void DeleteDigits()
Free the digits array.
virtual void SetECALogWeight(Float_t w)
virtual void SetTimeCalibrationParameters(AliEMCALCalibTime *calib)
Bool_t fJustClusters
false for standard reco
virtual void GetCalibrationParameters(void)
Bool_t fToUnfold
says if unfolding should be performed
AliEMCALCalibData * fCalibData
! energy calibration database if aval
Float_t fTimeMin
minimum time of physical signal in a cell/digit
AliEMCALGeometry * fGeom
! pointer to geometry for utilities
virtual void InitClusterUnfolding()
virtual void SetSSPars(Int_t ipar, Double_t par)
virtual void SetInput(TTree *digitsTree)
Read the digits from the input tree.
virtual Bool_t GetRejectBelowThreshold() const
Cell time shifts container class.
virtual void SetECALocalMaxCut(Float_t cut)
virtual Int_t GetNColDiff() const
virtual const TObjArray * GetRecPoints() const
pedestal/bad map monitoring and calibration tools
Float_t fTimeMax
maximum time of physical signal in a cell/digit
virtual Float_t GetECALocalMaxCut() const
virtual TClonesArray * GetDigits()
virtual void SetCaloCalibPedestal(AliCaloCalibPedestal *caped)
TClonesArray * fDigitsArr
array with EMCAL digits
AliCaloCalibPedestal * fCaloPed
! tower status map if aval
virtual void SetTimeMax(Float_t t)
virtual Float_t GetTimeCut() const
virtual Float_t GetMinECut() const
virtual void InitParameters()
Initializes the parameters for the Clusterizer from AliEMCALReconstructor::GetRecParam().
virtual const char * Version() const
virtual void GetCaloCalibPedestal(void)
AliEMCALUnfolding * fClusterUnfolding
! pointer to unfolding object
Bool_t fIsInputCalibrated
to enable reclusterization from ESD cells
virtual void SetTimeCalibration(Bool_t t)
Double_t fSSPars[8]
shower shape parameters
AliEMCALClusterizer & operator=(const AliEMCALClusterizer &)
Float_t fECAClusteringThreshold
minimum energy to seed a EC digit in a cluster
void SetJustClusters(Bool_t val)
TTree * fTreeR
tree with output clusters
virtual void SetThreshold(Float_t energy)
virtual Float_t GetECAClusteringThreshold() const
TCut cut
Definition: MakeGlobalFit.C:75
Float_t fADCpedestalECA
pedestal of ADC for EC section (GeV)
virtual void SetECAClusteringThreshold(Float_t th)
virtual void SetTimeCut(Float_t t)
virtual void Print(Option_t *option) const
Print clusterizer parameters.
virtual void SetNColDiff(Int_t)
EMCal geometry, singleton.
Float_t fMinECut
minimum energy for a digit to be a member of a cluster
virtual void MakeClusters()=0
virtual void DeleteRecPoints()
Free the cluster array.
Base class for the clusterization algorithm (pure abstract)
Bool_t fTimeCalibration
recover time shifts from OCDB?
virtual void PrintRecPoints(Option_t *option)