AliPhysics  vAN-20150822 (d56cf94)
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros
AliAnalysisTaskEMCALTriggerQA.h
Go to the documentation of this file.
1 #ifndef ALIANALYSISTASKEMCALTRIGGERQA_H
2 #define ALIANALYSISTASKEMCALTRIGGERQA_H
3 
4 //------------------------------------------------------------------------
14 //------------------------------------------------------------------------//
15 
16 //--- Root ---
17 class TList;
18 class TH1F;
19 class TH2I;
20 class TH2F;
21 class AliEMCALGeometry;
22 class TProfile2D;
23 
24 //--- AliRoot ---
25 class AliEMCALRecoUtils;
26 #include "AliEMCALGeoParams.h"
27 #include "AliAnalysisTaskSE.h"
28 
29 class AliAnalysisTaskEMCALTriggerQA : public AliAnalysisTaskSE
30 {
31 public:
32 
33  AliAnalysisTaskEMCALTriggerQA(const char *name); // named constructor
34 
35  virtual ~AliAnalysisTaskEMCALTriggerQA() { ; } // destructor
36 
37  void ClusterAnalysis();
38 
39  void FillCellMaps();
40 
41  void FillTriggerPatchMaps(TString triggerclasses);
42 
43  void FillClusterHistograms(Int_t triggerNumber, Bool_t maxCluster,
44  Float_t e,Float_t eta,Float_t phi,
45  Float_t ietamax,Float_t iphimax,
46  Float_t centrality, Float_t v0AC);
47 
49 
51 
53 
55 
56  void FillMapHistograms();
57 
58  void FillV0Histograms();
59 
60  void Init() ;
61 
62  void InitHistogramArrays() ;
63 
64  void InitCellPatchMaps();
65 
66  void LocalInit() { Init() ; }
67 
69 
70  void UserExec(Option_t *option);
71 
72  AliEMCALRecoUtils* GetRecoUtils() { if(!fRecoUtils) fRecoUtils = new AliEMCALRecoUtils ;
73  return fRecoUtils ; }
74 
75  void SetEtaPhiEnMin(Float_t en) { fEtaPhiEnMin = en ; }
76 
77  void SetTriggerEventBit(TString list) ;
78 
79  // OADB and geometry settings
80 
81  void InitGeometry();
82 
83  void SetGeometryName(TString name) { fGeoName = name ; }
84 
85  void SetEventTriggerL1Bit(Int_t ega, Int_t eje)
86  { fBitEGA = ega ; fBitEJE = eje; }
87 
88  void AccessOADB() ;
89 
90  void SwitchOnEMCALOADB() { fAccessOADB = kTRUE ; }
91  void SwitchOffEMCALOADB() { fAccessOADB = kFALSE ; }
92 
93  void SwitchOnMCData() { fMCData = kTRUE ; }
94  void SwitchOffMCData() { fMCData = kFALSE ; }
95 
98 
101 
102  void SetOADBFilePath(TString path) { fOADBFilePath = path ; }
103 
104  // Histogram setters
105 
108  void SetV0TotalSignalHistogramsRange (Int_t nbins, Float_t max) { fNBinsV0Signal = nbins; fMaxV0Signal = max ; }
111  void SetClusterEHistogramsRange (Int_t nbins, Float_t max) { fNBinsClusterE = nbins; fMaxClusterE = max ; }
112  void SetClusterEtaHistogramsRange (Int_t nbins, Float_t max) { fNBinsClusterEta = nbins; fMaxClusterEta = max ; }
113  void SetClusterPhiHistogramsRange (Int_t nbins, Float_t max, Float_t min)
114  { fNBinsClusterPhi = nbins; fMaxClusterPhi = max ; fMinClusterPhi = min ; }
115 
116 private:
117 
118  TList *fOutputList;
119 
120  AliEMCALRecoUtils *fRecoUtils;
121 
122  Bool_t fGeoSet ;
123  AliEMCALGeometry *fGeometry;
124  TString fGeoName;
125 
126  Bool_t fOADBSet ;
127  Bool_t fAccessOADB ;
128  TString fOADBFilePath ;
129 
130  Int_t fBitEGA;
131  Int_t fBitEJE;
132 
133  Float_t fEtaPhiEnMin;
134 
135  Int_t fSTUTotal;
136  Float_t fTRUTotal;
137  Float_t fV0Trigger;
138  Float_t fV0A;
139  Float_t fV0C;
140 
143  Bool_t fMCData;
144 
145  // Event by event trigger recognition bit
146  Bool_t fEventMB ;
147  Bool_t fEventL0 ;
148  Bool_t fEventL1G ;
149  Bool_t fEventL1G2 ;
150  Bool_t fEventL1J ;
151  Bool_t fEventL1J2 ;
152  Bool_t fEventCen ;
153  Bool_t fEventSem ;
154 
155  TLorentzVector fMomentum ;
156 
157  // Histograms
158 
159  TH1F *fhNEvents;
160  TH2F *fhFORAmp;
161  TH2F *fhFORAmpL1G;
162  TH2F *fhFORAmpL1G2;
163  TH2F *fhFORAmpL1J;
164  TH2F *fhFORAmpL1J2;
165  TH2F *fhL0Amp;
166  TH2F *fhL0AmpL1G;
167  TH2F *fhL0AmpL1J;
168  TH2F *fhL1Amp;
169  TH2F *fhL1GAmp;
170  TH2F *fhL1G2Amp;
171  TH2F *fhL1JAmp;
172  TH2F *fhL1J2Amp;
174 
175  TH2F *fhL0Patch;
176  TH2F *fhL1GPatch;
177  TH2F *fhL1G2Patch;
190  TH2F *fhNPatchFake;
192 
193  TH2F *fhL1JPatch;
194  TH2F *fhL1J2Patch;
195  TH2F *fhFEESTU;
196  TH2F *fhTRUSTU;
197  TH2I *fhV0STU;
198 
199  TH2F *fhGPMaxVV0TT;
200  TH2F *fhJPMaxVV0TT;
201  TProfile2D *fhFORMeanAmp;
202  TProfile2D *fhL0MeanAmp;
203  TProfile2D *fhL1MeanAmp;
208 
210  enum triggerType{ kMBTrig = 0, kL0Trig = 1,
216 
217  TH1F *fhClusMBPure[3];
218  TH1F *fhClusMaxMBPure[3];
219 
220  static const int fgkTriggerCombi = 12;
221 
224 
227 
230 
233 
236 
239 
242 
245 
248 
250 
251  // Histograms bins
252 
253  Int_t fNBinsSTUSignal ; // Number of bins for STU total signal histograms
254  Float_t fMaxSTUSignal ; // Maximum value for TRU total signal histograms
255  Int_t fNBinsTRUSignal ; // Number of bins for TRU total signal histograms
256  Float_t fMaxTRUSignal ; // Maximum value for TRU total signal histograms
257  Int_t fNBinsV0Signal ; // Number of bins for V0 total signal histograms
258  Float_t fMaxV0Signal ; // Maximum value for V0 total signal histograms
259  Int_t fNBinsSTUFEERatio ; // Number of bins for STU/FEE ratios histograms
260  Float_t fMaxSTUFEERatio ; // Maximum value for STU/FEE ratios histograms
261  Int_t fNBinsSTUTRURatio ; // Number of bins for STU/TRU ratios histograms
262  Float_t fMaxSTUTRURatio ; // Maximum value for STU/TRU ratios histograms
263  Int_t fNBinsClusterE ; // Number of bins for E cluster histograms
264  Float_t fMaxClusterE ; // Maximum value for E cluster histograms
265  Int_t fNBinsClusterPhi ; // Number of bins for Phi cluster histograms
266  Float_t fMaxClusterPhi ; // Maximum value for Phi cluster histograms
267  Float_t fMinClusterPhi ; // Maximum value for Phi cluster histograms
268  Int_t fNBinsClusterEta ; // Number of bins for Eta cluster histograms
269  Float_t fMaxClusterEta ; // Maximum value for Eta cluster histograms
270 
271  //static const int fgkFALTRORows = AliEMCALGeoParams::fgkEMCALRows*(AliEMCALGeoParams::fgkEMCALModules-7)/2; // total number
272 
274  static const int fgkFALTRORows = 60; //AliEMCALGeoParams::fgkEMCALSTURows-4;
275 
277  static const int fgkFALTROCols = AliEMCALGeoParams::fgkEMCALSTUCols;
278 
279  // cell, patch maps
280  Double_t fMapCell [fgkFALTRORows][fgkFALTROCols]; // Cell map
281  Double_t fMapCellL1G [fgkFALTRORows][fgkFALTROCols]; // Cell map for L1G
282  Double_t fMapCellL1G2 [fgkFALTRORows][fgkFALTROCols]; // Cell map for L1G2
283  Double_t fMapCellL1J [fgkFALTRORows][fgkFALTROCols]; // Cell map for L1J
284  Double_t fMapCellL1J2 [fgkFALTRORows][fgkFALTROCols]; // Cell map for L1J2
285  Double_t fMapTrigL0 [fgkFALTRORows][fgkFALTROCols]; // Patch map for L0
286  Double_t fMapTrigL1 [fgkFALTRORows][fgkFALTROCols]; // Patch map for L1
287  Double_t fMapTrigL0L1G[fgkFALTRORows][fgkFALTROCols]; // Patch map for L0L1G
288  Double_t fMapTrigL0L1J[fgkFALTRORows][fgkFALTROCols]; // Patch map for L0L1J
289  Double_t fMapTrigL1G [fgkFALTRORows][fgkFALTROCols]; // Patch map for L1G
290  Double_t fMapTrigL1G2 [fgkFALTRORows][fgkFALTROCols]; // Patch map for L1G2
291  Double_t fMapTrigL1J [fgkFALTRORows][fgkFALTROCols]; // Patch map for L1J
292  Double_t fMapTrigL1J2 [fgkFALTRORows][fgkFALTROCols]; // Patch map for L1J2
293 
296 
299 
301  ClassDef(AliAnalysisTaskEMCALTriggerQA, 14) ;
303 
304 };
305 
306 #endif
Bool_t fEventSem
Bit for Semi Central events.
TH2F * fhL0Amp
! FALTRO signal per Row and Column for FOR involves L0 patch
TH2F * fhL1Amp
! STU signal per Row and Column for FOR involves L0 patch
void FillTriggerPatchMaps(TString triggerclasses)
Fill L0, L1 patch arrays.
TH2F * fhClusPhi[fgkTriggerCombi]
! Clusters Phi vs E distribution for a trigger
void UserCreateOutputObjects()
Init histograms and geometry.
TH2F * fhNPatchFake
! number of fake patchs per event vs. if all were fakes or not
TH2F * fhL1GPatchMax
! FOR of max. amplitude patch with L1 Gamma patch associated
static const int fgkFALTROCols
Total number of fake altro collumns in EMCAL, (ALTRO channels in one SM times 2 SM divided by 2 per F...
TH1F * fhClusMax[fgkTriggerCombi]
! Maximum E Cluster per event distribution for MB trigger
TH2F * fhClusV0[fgkTriggerCombi]
! Clusters V0 vs E distribution for a trigger
TH2F * fhNPatchNotFake
! number of non fake patchs per events vs. if all were fakes or not
AliAnalysisTaskEMCALTriggerQA & operator=(const AliAnalysisTaskEMCALTriggerQA &)
Assignment operator not implemented.
TH2F * fhClusPhiMax[fgkTriggerCombi]
! Maximum E Cluster vs Phi per event distribution for a trigger
void SetSTUTRURatioHistogramsRange(Int_t nbins, Float_t max)
void SetClusterPhiHistogramsRange(Int_t nbins, Float_t max, Float_t min)
TH2F * fhClusCenMax[fgkTriggerCombi]
! Maximum E Cluster vs Centrality per event distribution for a trigger
TH2F * fhL1JPatch
! FOR with L1 Jet patch associated
void FillV0Histograms()
Fill V0 histograms, only for ESDs.
TH2F * fhL1J2Patch
! FOR with L1 Jet patch associated
TProfile2D * fhFORMeanAmp
! Mean FastOR(FEE) signal per Row and Column
void AccessOADB()
Set the AODB bad channels at least once.
void FillL1JetPatchHistograms()
L1 jet trigger patches histograms.
void FillCorrelationHistograms()
FEE-TRU-STU correlation checks.
static const int fgkFALTRORows
Total number of fake altro rows in EMCAL, temporary, not considers DCal yet (ALTRO channels in one SM...
centrality
TH2F * fhClusEtaPhiHighCellMaxCluMax[fgkTriggerCombi]
! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for MB trigger...
TH2F * fhClusEtaPhiHighCellMax[fgkTriggerCombi]
! Clusters maximum energy cell index eta vs phi distribution for a trigger, energy above fEtaPhiEnMin...
TList * list
TH2F * fhClusEtaPhiLowCellMax[fgkTriggerCombi]
! Clusters maximum energy cell index eta vs phi distribution for a trigger, energy below fEtaPhiEnMin...
void SetEventTriggerL1Bit(Int_t ega, Int_t eje)
TProfile2D * fhL0MeanAmp
! Mean FastOR(TRU) signal per Row and Column
TH2F * fhClusEta[fgkTriggerCombi]
! Clusters eta vs E distribution for a trigger
void FillEventCounterHistogram()
Fill a TH1 histogram, each bin corresponds to a even trigger type.
TH2F * fhClusEtaPhiHighCluMax[fgkTriggerCombi]
! Maximum E Cluster, Phi vs Eta per event distribution for a trigger, energy above fEtaPhiEnMin GeV ...
TH2F * fhL0AmpL1G
! FALTRO signal per Row and Column for FOR involves L0 patch, with L1G trigger event ...
TH2F * fhClusEtaPhiLowCellMaxCluMax[fgkTriggerCombi]
! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for MB trigger...
AliEMCALGeometry * fGeometry
Access to EMCAL geometry utils.
TH2F * fhL1JPatchMax
! FOR of max. amplitude patch with L1 Jet patch associated
TH1F * fhNEvents
! Number of selected events
AliEMCALRecoUtils * fRecoUtils
RecoUtils.
Double_t fMapTrigL1J2[fgkFALTRORows][fgkFALTROCols]
TH1F * fhL1GPatchAllFakeE
! Energy distrib of FOR forfake events, all patch energy
TH1F * fhL1GPatchNotFakeE
! Energy distrib of FOR for non fake events, all patch energy
TH2F * fhL1GAmp
! STU signal per Row and Column for FOR position of L1 Gamma patch (top-left)
TH2F * fhL0Patch
! FOR with L0 patch associated
void SetClusterEHistogramsRange(Int_t nbins, Float_t max)
Double_t fMapTrigL0L1G[fgkFALTRORows][fgkFALTROCols]
TString fGeoName
Name of geometry used.
Int_t fNBinsSTUSignal
V0 distribution for a triggered event.
void FillClusterHistograms(Int_t triggerNumber, Bool_t maxCluster, Float_t e, Float_t eta, Float_t phi, Float_t ietamax, Float_t iphimax, Float_t centrality, Float_t v0AC)
TH2F * fhL1JAmp
! STU signal per Row and Column for FOR position of L1 Jet patch (top-left)
TH2F * fhFORAmpL1G
! FEE cells deposited energy, grouped like FastOR 2x2 per Row and Column, with L1 Gamma trigger event...
Double_t fMapTrigL0[fgkFALTRORows][fgkFALTROCols]
Bool_t fAccessOADB
Get calibration from OADB for EMCAL.
TH2F * fhL1GPatchAllFakeMax
! FOR without any L1 Gamma patch associated with energy in the related cell, maximal energy patch : f...
void SetClusterEtaHistogramsRange(Int_t nbins, Float_t max)
TH1F * fhClusMBPure[3]
! Clusters E distribution for pure MB trigger
TH2F * fhL1G2Patch
! FOR with L1 Gamma patch associated
Float_t fTRUTotal
Sum of TRU amplitudes.
Double_t fMapTrigL1[fgkFALTRORows][fgkFALTROCols]
Double_t fMapTrigL1G[fgkFALTRORows][fgkFALTROCols]
TH2F * fhL0AmpL1J
! FALTRO signal per Row and Column for FOR involves L0 patch, with L1J trigger event ...
void Init()
Init analysis parameters not set before.
TH1F * fhClus[fgkTriggerCombi]
! Clusters E distribution for a trigger
TH2F * fhJPMaxVV0TT
! V0 signal vs maximum jet L1 patch
TH2F * fhTRUSTU
! Correlation TRU vs STU
TH1F * fhL1GPatchAllFakeMaxE
! Energy distrib FOR for fake events, patch of maximal energy
AliAnalysisTaskEMCALTriggerQA(const char *name)
Constructor. Init stuff.
TH2F * fhClusEtaPhiLowCluMax[fgkTriggerCombi]
! Maximum E Cluster, Phi vs Eta per event distribution for MB trigger, energy below fEtaPhiEnMin GeV ...
TH2F * fhL1GPatchNotAllFakeMax
! FOR with at least one L1 Gamma patch associated with energy in the related cell, maximal energy patch : not fake events
TH2F * fhFORAmpL1J2
! FEE cells deposited energy, grouped like FastOR 2x2 per Row and Column, with L1 Jet2 trigger event ...
TH2F * fhL1GPatchAllFake
! FOR without any L1 Gamma patch associated with energy in the related cells: fake patch ...
TH1F * fhClusMaxMBPure[3]
! Maximum E Cluster per event distribution for pure MB trigger
TH2F * fhClusEtaMax[fgkTriggerCombi]
! Maximum E Cluster vs Eta per event distribution for a trigger
Bool_t fEventL1J
Bit for L1 Jet 1 events.
TH2F * fhL1J2Amp
! STU signal per Row and Column for FOR position of L1 Jet2 patch (top-left)
TH2F * fhFEESTU
! Correlation FEE vs STU
TH2F * fhL1J2PatchMax
! FOR of max. amplitude patch with L1 Jet patch associated
void FillL1GammaPatchHistograms()
L1 Gamma trigger patches histograms.
TH2F * fhClusEtaPhiHigh[fgkTriggerCombi]
! Clusters eta vs phi distribution for a trigger, energy above fEtaPhiEnMin GeV
Bool_t fEventL1J2
Bit for L1 JEt 2 events.
Double_t fMapCellL1G[fgkFALTRORows][fgkFALTROCols]
static const int fgkTriggerCombi
Total number of trigger combinations defined above.
TH2F * fhClusCen[fgkTriggerCombi]
! Clusters Centrality vs E distribution for a trigger
Double_t fMapTrigL1G2[fgkFALTRORows][fgkFALTROCols]
void FillMapHistograms()
Matrix with signal per channel.
TH2F * fhL1G2PatchMax
! FOR of max. amplitude patch with L1 Gamma patch associated
Bool_t fFillV0SigHisto
V0 signal creation and fill.
TH1F * fhL1GPatchNotAllFakeE
! Energy distrib of FOR for non fake events, all patch energy
TH2F * fhFORAmp
! FEE cells deposited energy, grouped like FastOR 2x2 per Row and Column
void InitHistogramArrays()
Histograms array initialization called in constructor.
TProfile2D * fhL1MeanAmp
! Mean FastOR(STU) signal per Row and Column
Bool_t fFillClusAcceptHisto
Fill eta/phi distributions.
TH2I * fhV0STU
! Total signal STU vs V0C+V0S
TString fOADBFilePath
Default path $ALICE_PHYSICS/OADB/EMCAL, if needed change.
TLorentzVector fMomentum
Cluster kinematics, temporal, avoid recreation per event.
void SetV0TotalSignalHistogramsRange(Int_t nbins, Float_t max)
TH2F * fhL1GPatchNotFake
! FOR with L1 Gamma patch associated but no energy in the related cells
void SetTRUTotalSignalHistogramsRange(Int_t nbins, Float_t max)
Bool_t fEventL1G2
Bit for L1 Gamma 2 events.
TH2F * fhL1GPatchFake
! FOR with L1 Gamma patch associated
Double_t fMapCellL1J2[fgkFALTRORows][fgkFALTROCols]
Double_t fMapCellL1G2[fgkFALTRORows][fgkFALTROCols]
void FillCellMaps()
Cells analysis. Fill FEE energy per channel array.
TH2F * fhClusEtaPhiLow[fgkTriggerCombi]
! Clusters eta vs phi distribution for a trigger, energy below fEtaPhiEnMin GeV
Float_t fV0Trigger
V0 signal from trigger.
TH2F * fhL1GPatchNotAllFake
! FOR with at least 1 L1 Gamma patch associated that has energy in the related celles : not a fake ev...
TH1F * fhL1GPatchNotAllFakeMaxE
! Energy distrib of FOR for non fake events, patch of maximal energy
const Int_t nbins
TH2F * fhGPMaxVV0TT
! V0 signal vs maximum gamma L1 patch
Float_t fEtaPhiEnMin
Min energy for Eta/Phi histograms.
Fill histograms with basic QA information for EMCAL offline trigger.
Bool_t fEventCen
Bit for Central events.
TH2F * fhClusV0Max[fgkTriggerCombi]
! Maximum E Cluster vs Centrality per event distribution for a trigger
TH2F * fhFORAmpL1J
! FEE cells deposited energy, grouped like FastOR 2x2 per Row and Column, with L1 Jet trigger event ...
Double_t fMapCell[fgkFALTRORows][fgkFALTROCols]
TH2F * fhFORAmpL1G2
! FEE cells deposited energy, grouped like FastOR 2x2 per Row and Column, with L1 Gamma2 trigger even...
TH2F * fhL1FOREnergy
! STU signal per Row and Column for FOR position vs FOR energy
Double_t fMapTrigL0L1J[fgkFALTRORows][fgkFALTROCols]
Bool_t fOADBSet
AODB parameters already set.
TH2F * fhL1G2Amp
! STU signal per Row and Column for FOR position of L1 Gamma2 patch (top-left)
void SetTriggerEventBit(TString list)
Check what trigger is the event, set the corresponding bit.
Double_t fMapCellL1J[fgkFALTRORows][fgkFALTROCols]
void SetSTUTotalSignalHistogramsRange(Int_t nbins, Float_t max)
TH1F * fhL1GPatchFakeE
! Energy distrib of FOR for fake events, all patch energy
Double_t fMapTrigL1J[fgkFALTRORows][fgkFALTROCols]
Bool_t fEventL1G
Bit for L1 Gamma 1 events.
TH2F * fhL1GPatch
! FOR with L1 Gamma patch associated
void SetSTUFEERatioHistogramsRange(Int_t nbins, Float_t max)