AliPhysics  ec7afe5 (ec7afe5)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliAnalysisTaskEMCALClusterize.h
Go to the documentation of this file.
1 #ifndef ALIANALYSISTASKEMCALCLUSTERIZE_H
2 #define ALIANALYSISTASKEMCALCLUSTERIZE_H
3 
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice */
6 
7 //_________________________________________________________________________
18 //_________________________________________________________________________
19 
20 // Root
21 class TTree;
22 class TClonesArray;
23 
24 // EMCAL
25 class AliEMCALGeometry;
26 class AliEMCALClusterizer;
27 class AliEMCALAfterBurnerUF;
28 class AliEMCALRecPoint;
29 class AliAODCaloCluster;
30 class AliCentrality;
31 class AliMultSelection;
32 
33 #include "AliEMCALRecParam.h"
34 #include "AliEMCALRecoUtils.h"
35 
36 #include "AliAnalysisTaskSE.h"
37 
39 
40  public:
41 
43  AliAnalysisTaskEMCALClusterize(const char *name);
45 
46  virtual void UserCreateOutputObjects();
47  virtual void UserExec(Option_t *option);
48  virtual void Init();
49  virtual void LocalInit() { Init() ; }
50 
51  // Event methods, settings
52 
57  void SetEMCALNcellsCut(Int_t cut) { fEMCALNcellsCut = cut ; }
58 
61 
62  void CheckAndGetEvent();
63 
67 
68  Bool_t IsLEDEvent(const Int_t run);
71 
72  // OCDB, avoid acessing OCDB!
73 
75  void SwitchOnAccessOCDB() { fAccessOCDB = kTRUE ; }
76  void SwitchOffAccessOCDB() { fAccessOCDB = kFALSE ; }
77  void SetOCDBPath(const char *path) { fOCDBpath = path ; }
78 
79  // Geometry methods
80 
81  void InitGeometry();
82  void SetGeometryName(TString &name) { fGeomName = name ; }
83  TString GeometryName() const { return fGeomName ; }
86  void SetGeometryMatrixInSM(TGeoHMatrix* m, Int_t i) { fGeomMatrix[i] = m ; }
87 
89  TString pa = "") { fImportGeometryFromFile = im ;
90  fImportGeometryFilePath = pa ; }
91  // Outout AOD branch methods
92 
94  void FillAODFile(Bool_t yesno) { fFillAODFile = yesno ; }
95  void FillAODCaloCells();
96  void FillAODHeader();
98  void SwitchOffFillAODHeader() { fFillAODHeader = kFALSE ; }
101 
104 
105  // Algorithms settings
106 
107  AliEMCALRecParam * GetRecParam() { if(!fRecParam) fRecParam = new AliEMCALRecParam ;
108  return fRecParam ; }
109 
110  AliEMCALRecoUtils* GetRecoUtils() { if(!fRecoUtils) fRecoUtils = new AliEMCALRecoUtils ;
111  return fRecoUtils ; }
112 
113  void InitClusterization();
114  void ClusterizeCells();
115  void ClusterUnfolding();
116  void JustUnfold(Bool_t yesno) { fJustUnfold = yesno ; }
117 
118  void SetConfigFileName(TString name) { fConfigName = name ; }
119  void SetMaxEvent(Int_t max) { fMaxEvent = max ; }
120 
123 
124  // Cell selection after unfolding
125 
129  fSelectCellMinFrac = frac ; }
131 
132  // OADB options settings
133 
134  void AccessOADB() ;
135 
136  TString GetPass() ;
137 
138  void SwitchOnEMCALOADB() { fAccessOADB = kTRUE ; }
139  void SwitchOffEMCALOADB() { fAccessOADB = kFALSE ; }
140 
141  void SetOADBFilePath(TString path) { fOADBFilePath = path ; }
142 
144 
145  // Centrality selection
146 
147  AliCentrality* GetCentrality() const { return InputEvent()->GetCentrality() ; }
148  AliMultSelection* GetMultSelCen() const { return (AliMultSelection * ) InputEvent()->FindListObject("MultSelection") ; }
151 
154  Float_t GetEventCentrality() const ;
155  void SetCentralityBin(Int_t min, Int_t max) //Set the centrality bin to select the event. If used, then need to get percentile
156  { fCentralityBin[0]=min ; fCentralityBin[1]=max ; }
157  Float_t GetCentralityBin(Int_t i) const { if(i < 0 || i > 1) return -1 ;
158  else return fCentralityBin[i] ; }
159 
160  // MC label properly assignation methods
161 
162  void RemapMCLabelForAODs(Int_t &label);
165 
166  void SetClustersMCLabelFrom2SelectedLabels(AliEMCALRecPoint* recPoint, AliAODCaloCluster *clus) ;
167  void SetClustersMCLabelFromOriginalClusters(AliAODCaloCluster * clus) ;
168 
171 
175 
176 private:
177 
178  virtual void FillCaloClusterInEvent();
179 
180  virtual void RecPoints2Clusters();
181 
182  virtual void ResetArrays();
183 
184  AliVEvent *fEvent;
185 
186  // Geometry
187  AliEMCALGeometry *fGeom;
189  TGeoHMatrix *fGeomMatrix[22];
192 
193  // OCDB
196 
197  // Temporal arrays
198  TClonesArray *fDigitsArr;
201 
202  // Clusterizers
203  AliEMCALRecParam *fRecParam;
204  AliEMCALClusterizer *fClusterizer;
205  AliEMCALAfterBurnerUF *fUnfolder;
207 
208  // AOD
209  TClonesArray *fOutputAODBranch;
216 
218 
219  AliEMCALRecoUtils* fRecoUtils;
221 
222  static const Int_t fgkNEMCalCells = 17664;
223 
230 
232 
234 
242 
245 
250 
251  // Centrality
255 
256  // Event selection with some signal in EMCAL
260 
266 
270 
272 
274 
277 
280 
282  ClassDef(AliAnalysisTaskEMCALClusterize, 32) ;
284 
285 };
286 
287 #endif //ALIANALYSISTASKEMCALCLUSTERIZE_H
void FillAODCaloCells()
Put calo cells in standard branch.
double Double_t
Definition: External.C:58
virtual void ResetArrays()
Reset arrays containing information for all possible cells.
void SetCellCuts(Float_t e, Float_t frac)
TString GetPass()
Get or guess pass number/string from path of filename.
Bool_t fFillAODHeader
Copy header to standard branch.
TClonesArray * fDigitsArr
! Digits array
AliEMCALClusterizer * fClusterizer
! EMCAL clusterizer
Bool_t fJustUnfold
Just unfold, do not recluster.
Bool_t fImportGeometryFromFile
Import geometry settings in geometry.root file.
Bool_t fSelectCell
Reject cells from cluster if energy is too low and recalculate position/energy and other...
TString fConfigName
Name of analysis configuration file.
Int_t fCellSecondLabels[fgkNEMCalCells]
Array with Second MC label to be passed to digit.
void SetClustersMCLabelFrom2SelectedLabels(AliEMCALRecPoint *recPoint, AliAODCaloCluster *clus)
Float_t fCellMatchdEta[fgkNEMCalCells]
Array with cluster-track dPhi.
TClonesArray * fOutputAODBranch
! AOD Branch with output clusters
TString fOADBFilePath
Default path $ALICE_PHYSICS/OADB/EMCAL, if needed change.
TString fImportGeometryFilePath
path fo geometry.root file
Bool_t fSelectEMCALEvent
Process the event if there is some high energy cluster.
Float_t GetEventCentrality() const
Get centrality/multiplicity percentile.
Bool_t fInputFromFilter
Get the input from AODs from the filter.
TString fOutputAODBranchName
New of output AOD branch.
AliEMCALGeometry * fGeom
EMCAL geometry.
void ClusterUnfolding()
Take the event clusters and unfold them.
int Int_t
Definition: External.C:63
Bool_t fAccessOADB
Get calibration from OADB for EMCAL.
Bool_t fRemoveLEDEvents
Remove LED events, use only for LHC11a.
AliEMCALRecoUtils * fRecoUtils
Access to factorized reconstruction algorithms.
float Float_t
Definition: External.C:68
Bool_t fRejectBelowThreshold
split (false-default) or reject (true) cell energy below threshold after UF
Float_t fConstantTimeShift
Apply a 600 ns time shift in case of simulation, shift in ns.
void SetClustersMCLabelFromOriginalClusters(AliAODCaloCluster *clus)
Float_t fSelectCellMinE
Min energy cell threshold, after unfolding.
Bool_t fOADBSet
AODB parameters already set.
Int_t fCellLabels[fgkNEMCalCells]
Array with MC label to be passed to digit.
Bool_t fRemoveExoticEvents
Remove exotic events.
Bool_t fDoTrackMatching
On/Off the matching recalulation to speed up analysis in PbPb.
Float_t fCellMatchdPhi[fgkNEMCalCells]
Array with cluster-track dEta.
TGeoHMatrix * fGeomMatrix[22]
Geometry matrices with alignments.
Bool_t IsLEDEvent(const Int_t run)
Check if event is LED, is so remove it. Affected LHC11a runs.
AliEMCALRecParam * fRecParam
Reconstruction parameters container.
TString fGeomName
Name of geometry to use.
Bool_t fOutputAODBranchSet
Set the AOD clusters branch in the input event once.
TString fOCDBpath
Path with OCDB location.
AliEMCALAfterBurnerUF * fUnfolder
! Unfolding procedure
Bool_t fGeomMatrixSet
Set geometry matrices only once, for the first event.
Float_t fCentralityBin[2]
Minimum and maximum value of the centrality for the analysis.
Bool_t fFillAODCaloCells
Copy calocells to standard branch.
TObjArray * fCaloClusterArr
! CaloClusters array
Double_t fCellTime[fgkNEMCalCells]
Array with cluster time to be passed to digit in case of AODs.
TString fCentralityClass
Name of selected centrality class.
void SetImportGeometryFromFile(Bool_t im, TString pa="")
Bool_t fAccessOCDB
Need to access info from OCDB (not really)
AliAnalysisTaskEMCALClusterize & operator=(const AliAnalysisTaskEMCALClusterize &)
Assignment operator not implemented.
TObjArray * fClusterArr
! Recpoints array
Bool_t fRecalibrateWithClusterTime
Use fCellTime to store time of cells in cluster.
const char Option_t
Definition: External.C:48
bool Bool_t
Definition: External.C:53
void FillAODHeader()
Put event header information in standard AOD branch.
static const Int_t fgkNEMCalCells
Total number of cells in the calorimeter, 10*48*24 (EMCal) + 4*48*8 (EMCal/DCal 1/3) + 6*32*24 (DCal)...
Int_t fEMCALNcellsCut
At least an EMCAL cluster with fNCellsCut cells over fEnergyCut.
void SetGeometryMatrixInSM(TGeoHMatrix *m, Int_t i)
Reclusterize EMCal clusters, put them in a new branch for other following analysis.
Bool_t fLoadGeomMatrices
Matrices set from configuration, not get from geometry.root or from ESDs/AODs.
Float_t fEMCALEnergyCut
At least an EMCAL cluster with this energy in the event.
Bool_t fUseAliCentrality
Use the centrality estimator from AliCentrality or AliMultSelection.
Int_t fOrgClusterCellId[fgkNEMCalCells]
Array ID of cluster to wich the cell belongs in unmodified clusters.
Float_t fSelectCellMinFrac
Min fraction of cell energy after unfolding cut.
Bool_t reject
Bool_t fRemapMCLabelForAODs
Remap AOD cells MC label. Needed in old AOD productions.