#ifndef ALIANALYSISTASKEMCALTRIGGERQA_H
#define ALIANALYSISTASKEMCALTRIGGERQA_H
-// $Id$
+//------------------------------------------------------------------------//
+// Fill histograms with basic QA information for EMCAL offline trigger //
+// Author: Nicolas Arbor (LPSC-Grenoble), Rachid Guernane (LPSC-Grenoble)//
+// Gustavo Conesa Balbastre (LPSC-Grenoble) //
+// //
+// $Id$ //
+//------------------------------------------------------------------------//
//--- Root ---
class TList;
class AliAnalysisTaskEMCALTriggerQA : public AliAnalysisTaskSE
{
public:
- AliAnalysisTaskEMCALTriggerQA(); // default constructor
AliAnalysisTaskEMCALTriggerQA(const char *name); // named constructor
virtual ~AliAnalysisTaskEMCALTriggerQA() { ; } // destructor
+ void ClusterAnalysis();
- void UserCreateOutputObjects(); // you should create your output objects in that function if possible
+ void FillCellMaps();
- void UserExec(Option_t *option); // function called for each event
+ void FillTriggerPatchMaps(TString triggerclasses);
- void SetGeometryName(TString name) { fGeoName = name ; }
-
- AliEMCALRecoUtils* GetRecoUtils() { return fRecoUtils ; }
+ 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);
- //Histogram setters
+ void FillCorrelationHistograms();
+
+ void FillEventCounterHistogram();
+
+ void FillL1GammaPatchHistograms();
+
+ void FillL1JetPatchHistograms();
+
+ void FillMapHistograms();
+
+ void FillV0Histograms();
+
+ void Init() ;
+
+ void InitHistogramArrays() ;
+
+ void InitCellPatchMaps();
+
+ void LocalInit() { Init() ; }
+
+ void UserCreateOutputObjects();
+
+ void UserExec(Option_t *option);
+
+ AliEMCALRecoUtils* GetRecoUtils() { if(!fRecoUtils) fRecoUtils = new AliEMCALRecoUtils ;
+ return fRecoUtils ; }
+
+ void SetEtaPhiEnMin(Float_t en) { fEtaPhiEnMin = en ; }
+
+ void SetTriggerEventBit(TString list) ;
+
+ // OADB and geometry settings
+
+ void InitGeometry();
+
+ void SetGeometryName(TString name) { fGeoName = name ; }
+ void SetEventTriggerL1Bit(Int_t ega, Int_t eje)
+ { fBitEGA = ega ; fBitEJE = eje; }
+
+ void AccessOADB() ;
+
+ void SwitchOnEMCALOADB() { fAccessOADB = kTRUE ; }
+ void SwitchOffEMCALOADB() { fAccessOADB = kFALSE ; }
+
+ void SwitchOnMCData() { fMCData = kTRUE ; }
+ void SwitchOffMCData() { fMCData = kFALSE ; }
+
+ void SwitchOnV0SignalHistograms() { fFillV0SigHisto = kTRUE ; }
+ void SwitchOffV0SignalHistograms() { fFillV0SigHisto = kFALSE ; }
+
+ void SwitchOnClusterAcceptanceHistograms() { fFillClusAcceptHisto = kTRUE ; }
+ void SwitchOffClusterAcceptanceHistograms() { fFillClusAcceptHisto = kFALSE ; }
+ void SetOADBFilePath(TString path) { fOADBFilePath = path ; }
+
+ //Histogram setters
+
void SetTRUTotalSignalHistogramsRange(Int_t nbins, Float_t max) { fNBinsTRUSignal = nbins; fMaxTRUSignal = max ; }
void SetSTUTotalSignalHistogramsRange(Int_t nbins, Float_t max) { fNBinsSTUSignal = nbins; fMaxSTUSignal = max ; }
void SetV0TotalSignalHistogramsRange (Int_t nbins, Float_t max) { fNBinsV0Signal = nbins; fMaxV0Signal = max ; }
void SetSTUFEERatioHistogramsRange (Int_t nbins, Float_t max) { fNBinsSTUFEERatio = nbins; fMaxSTUFEERatio = max ; }
void SetSTUTRURatioHistogramsRange (Int_t nbins, Float_t max) { fNBinsSTUTRURatio = nbins; fMaxSTUFEERatio = max ; }
void SetClusterEHistogramsRange (Int_t nbins, Float_t max) { fNBinsClusterE = nbins; fMaxClusterE = max ; }
+ void SetClusterEtaHistogramsRange (Int_t nbins, Float_t max) { fNBinsClusterEta = nbins; fMaxClusterEta = max ; }
+ void SetClusterPhiHistogramsRange (Int_t nbins, Float_t max, Float_t min)
+ { fNBinsClusterPhi = nbins; fMaxClusterPhi = max ; fMinClusterPhi = min ; }
private:
TList *fOutputList; //! Output list
AliEMCALRecoUtils *fRecoUtils; // RecoUtils
+ Bool_t fGeoSet ; // Geometry already set
AliEMCALGeometry *fGeometry; // Access to EMCAL geometry utils
TString fGeoName; // Name of geometry used
+ Bool_t fOADBSet ; // AODB parameters already set
+ Bool_t fAccessOADB ; // Get calibration from OADB for EMCAL
+ TString fOADBFilePath ; // Default path $ALICE_ROOT/OADB/EMCAL, if needed change
+
+ Int_t fBitEGA; // fBitEGA
+ Int_t fBitEJE; // fBitEJE
+
+ Float_t fEtaPhiEnMin; // Min energy for Eta/Phi histograms
+
+ Int_t fSTUTotal; // Sum of STU time sums
+ Float_t fTRUTotal; // Sum of TRU amplitudes
+ Float_t fV0Trigger; // V0 signal from trigger
+ Float_t fV0A; // V0 A signal
+ Float_t fV0C; // V0 C signal
+
+ Bool_t fFillV0SigHisto; // V0 signal creation and fill
+ Bool_t fFillClusAcceptHisto; // Fill eta/phi distributions
+ Bool_t fMCData; // Simulation On/Off
+
+ // Event by event trigger recognition bit
+ Bool_t fEventMB ; // Bit for MB events
+ Bool_t fEventL0 ; // Bit for L0 events
+ Bool_t fEventL1G ; // Bit for L1 Gamma 1 events
+ Bool_t fEventL1G2 ; // Bit for L1 Gamma 2 events
+ Bool_t fEventL1J ; // Bit for L1 Jet 1 events
+ Bool_t fEventL1J2 ; // Bit for L1 JEt 2 events
+ Bool_t fEventCen ; // Bit for Central events
+ Bool_t fEventSem ; // Bit for Semi Central events
+
+ // Histograms
+
TH1F *fhNEvents; //! Number of selected events
TH2F *fhFORAmp; //! FEE cells deposited energy, grouped like FastOR 2x2 per Row and Column
TH2F *fhFORAmpL1G; //! FEE cells deposited energy, grouped like FastOR 2x2 per Row and Column, with L1 Gamma trigger event
+ TH2F *fhFORAmpL1G2; //! FEE cells deposited energy, grouped like FastOR 2x2 per Row and Column, with L1 Gamma2 trigger event
TH2F *fhFORAmpL1J; //! FEE cells deposited energy, grouped like FastOR 2x2 per Row and Column, with L1 Jet trigger event
+ TH2F *fhFORAmpL1J2; //! FEE cells deposited energy, grouped like FastOR 2x2 per Row and Column, with L1 Jet2 trigger event
TH2F *fhL0Amp; //! FALTRO signal per Row and Column for FOR involves L0 patch
TH2F *fhL0AmpL1G; //! FALTRO signal per Row and Column for FOR involves L0 patch, with L1G trigger event
TH2F *fhL0AmpL1J; //! FALTRO signal per Row and Column for FOR involves L0 patch, with L1J trigger event
TH2F *fhL1Amp; //! STU signal per Row and Column for FOR involves L0 patch
TH2F *fhL1GAmp; //! STU signal per Row and Column for FOR position of L1 Gamma patch (top-left)
+ TH2F *fhL1G2Amp; //! STU signal per Row and Column for FOR position of L1 Gamma2 patch (top-left)
TH2F *fhL1JAmp; //! STU signal per Row and Column for FOR position of L1 Jet patch (top-left)
- TH2F *fhL0Patch; //! FOR with L0 patch associated
- TH2F *fhL1GPatch; //! FOR with L1 Gamma patch associated
+ TH2F *fhL1J2Amp; //! STU signal per Row and Column for FOR position of L1 Jet2 patch (top-left)
+ TH2F *fhL1FOREnergy; //! STU signal per Row and Column for FOR position vs FOR energy
+
+ TH2F *fhL0Patch; //! FOR with L0 patch associated
+ TH2F *fhL1GPatch; //! FOR with L1 Gamma patch associated
+ TH2F *fhL1G2Patch; //! FOR with L1 Gamma patch associated
+ TH2F *fhL1GPatchNotFake; //! FOR with L1 Gamma patch associated but no energy in the related cells
+ TH2F *fhL1GPatchFake; //! FOR with L1 Gamma patch associated
+ TH2F *fhL1GPatchNotAllFake; //! FOR with at least 1 L1 Gamma patch associated that has energy in the related celles : not a fake event
+ TH2F *fhL1GPatchAllFake; //! FOR without any L1 Gamma patch associated with energy in the related cells: fake patch
+ TH2F *fhL1GPatchNotAllFakeMax; //! FOR with at least one L1 Gamma patch associated with energy in the related cell, maximal energy patch : not fake events
+ TH2F *fhL1GPatchAllFakeMax; //! FOR without any L1 Gamma patch associated with energy in the related cell, maximal energy patch : fake events
+ TH1F *fhL1GPatchNotAllFakeMaxE; //! Energy distrib of FOR for non fake events, patch of maximal energy
+ TH1F *fhL1GPatchAllFakeMaxE; //! Energy distrib FOR for fake events, patch of maximal energy
+ TH1F *fhL1GPatchNotAllFakeE; //! Energy distrib of FOR for non fake events, all patch energy
+ TH1F *fhL1GPatchAllFakeE; //! Energy distrib of FOR forfake events, all patch energy
+ TH1F *fhL1GPatchFakeE; //! Energy distrib of FOR for fake events, all patch energy
+ TH1F *fhL1GPatchNotFakeE; //! Energy distrib of FOR for non fake events, all patch energy
+ TH2F *fhNPatchFake; //! number of fake patchs per event vs. if all were fakes or not
+ TH2F *fhNPatchNotFake; //! number of non fake patchs per events vs. if all were fakes or not
+
TH2F *fhL1JPatch; //! FOR with L1 Jet patch associated
+ TH2F *fhL1J2Patch; //! FOR with L1 Jet patch associated
TH2F *fhFEESTU; //! Correlation FEE vs STU
TH2F *fhTRUSTU; //! Correlation TRU vs STU
TH2I *fhV0STU; //! Total signal STU vs V0C+V0S
TProfile2D *fhFORMeanAmp; //! Mean FastOR(FEE) signal per Row and Column
TProfile2D *fhL0MeanAmp; //! Mean FastOR(TRU) signal per Row and Column
TProfile2D *fhL1MeanAmp; //! Mean FastOR(STU) signal per Row and Column
- TH1F *fhV0MB; //! V0 distribution for MB triggered event
- TH1F *fhV0L1G; //! V0 distribution for L1G triggered event
- TH1F *fhV0L1J; //! V0 distribution for L1J triggered event
TH2F *fhL1GPatchMax; //! FOR of max. amplitude patch with L1 Gamma patch associated
+ TH2F *fhL1G2PatchMax; //! FOR of max. amplitude patch with L1 Gamma patch associated
TH2F *fhL1JPatchMax; //! FOR of max. amplitude patch with L1 Jet patch associated
+ TH2F *fhL1J2PatchMax; //! FOR of max. amplitude patch with L1 Jet patch associated
// Cluster vs trigger histograms
+ enum triggerType{ kMBTrig = 0, kL0Trig = 1,
+ kL1GammaTrig = 2, kL1GammaTrig2 = 3,
+ kL1JetTrig = 4, kL1JetTrig2 = 5,
+ kL1GammaOnlyTrig = 6, kL1JetOnlyTrig = 7,
+ kL1Gamma2OnlyGammaTrig = 8, kL1Jet2OnlyJetTrig = 9,
+ kCentralTrig = 10, kSemiCentralTrig = 11 };
- TH1F *fhClusMB; //! Clusters distribution for MB trigger
- TH1F *fhClusMBPure; //! Clusters distribution for MB trigger
- TH1F *fhClusL0; //! Clusters distribution for L0 trigger
- TH1F *fhClusL1G; //! Clusters distribution for L1G trigger
- TH1F *fhClusL1J; //! Clusters distribution for L1J trigger
- TH1F *fhClusL1GOnly; //! Clusters distribution for L1G trigger and not L1J
- TH1F *fhClusL1JOnly; //! Clusters distribution for L1J trigger and not L1G
- TH1F *fhClusMaxMB; //! Maximum E Cluster per event distribution for MB trigger
- TH1F *fhClusMaxMBPure; //! Maximum E Cluster per event distribution for MB trigger
- TH1F *fhClusMaxL0; //! Maximum E Cluster per event distribution for L0 trigger
- TH1F *fhClusMaxL1G; //! Maximum E Cluster per event distribution for L1G trigger
- TH1F *fhClusMaxL1J; //! Maximum E Cluster per event distribution for L1J trigger
- TH1F *fhClusMaxL1GOnly; //! Maximum E Cluster per event distribution for L1G trigger and not L1J
- TH1F *fhClusMaxL1JOnly; //! Maximum E Cluster per event distribution for L1J trigger and not L1G
-
- TH2F *fhClusCenMB; //! Clusters Centrality vs E distribution for MB trigger
- TH2F *fhClusCenL0; //! Clusters Centrality vs E distribution for L0 trigger
- TH2F *fhClusCenL1G; //! Clusters Centrality vs E distribution for L1G trigger
- TH2F *fhClusCenL1J; //! Clusters Centrality vs E distribution for L1J trigger
- TH2F *fhClusCenL1GOnly; //! Clusters Centrality vs E distribution for L1G trigger and not L1J
- TH2F *fhClusCenL1JOnly; //! Clusters Centrality vs E distribution for L1J trigger and not L1G
- TH2F *fhClusCenMaxMB; //! Maximum E Cluster vs Centrality per event distribution for MB trigger
- TH2F *fhClusCenMaxL0; //! Maximum E Cluster vs Centrality per event distribution for L0 trigger
- TH2F *fhClusCenMaxL1G; //! Maximum E Cluster vs Centrality per event distribution for L1G trigger
- TH2F *fhClusCenMaxL1J; //! Maximum E Cluster vs Centrality per event distribution for L1J trigger
- TH2F *fhClusCenMaxL1GOnly; //! Maximum E Cluster vs Centrality per event distribution for L1G trigger and not L1J
- TH2F *fhClusCenMaxL1JOnly; //! Maximum E Cluster vs Centrality per event distribution for L1J trigger and not L1G
-
- TH2F *fhClusV0MB; //! Clusters Centrality vs E distribution for MB trigger
- TH2F *fhClusV0L0; //! Clusters Centrality vs E distribution for L0 trigger
- TH2F *fhClusV0L1G; //! Clusters Centrality vs E distribution for L1G trigger
- TH2F *fhClusV0L1J; //! Clusters Centrality vs E distribution for L1J trigger
- TH2F *fhClusV0L1GOnly; //! Clusters Centrality vs E distribution for L1G trigger and not L1J
- TH2F *fhClusV0L1JOnly; //! Clusters Centrality vs E distribution for L1J trigger and not L1G
- TH2F *fhClusV0MaxMB; //! Maximum E Cluster vs Centrality per event distribution for MB trigger
- TH2F *fhClusV0MaxL0; //! Maximum E Cluster vs Centrality per event distribution for L0 trigger
- TH2F *fhClusV0MaxL1G; //! Maximum E Cluster vs Centrality per event distribution for L1G trigger
- TH2F *fhClusV0MaxL1J; //! Maximum E Cluster vs Centrality per event distribution for L1J trigger
- TH2F *fhClusV0MaxL1GOnly; //! Maximum E Cluster vs Centrality per event distribution for L1G trigger and not L1J
- TH2F *fhClusV0MaxL1JOnly; //! Maximum E Cluster vs Centrality per event distribution for L1J trigger and not L1G
-
- TH2F *fhClusEtaMB; //! Clusters eta vs E distribution for MB trigger
- TH2F *fhClusEtaL0; //! Clusters eta vs E distribution for L0 trigger
- TH2F *fhClusEtaL1G; //! Clusters eta vs E distribution for L1G trigger
- TH2F *fhClusEtaL1J; //! Clusters eta vs E distribution for L1J trigger
- TH2F *fhClusEtaL1GOnly; //! Clusters eta vs E distribution for L1G trigger and not L1J
- TH2F *fhClusEtaL1JOnly; //! Clusters eta vs E distribution for L1J trigger and not L1G
- TH2F *fhClusEtaMaxMB; //! Maximum E Cluster vs Eta per event distribution for MB trigger
- TH2F *fhClusEtaMaxL0; //! Maximum E Cluster vs Eta per event distribution for L0 trigger
- TH2F *fhClusEtaMaxL1G; //! Maximum E Cluster vs Eta per event distribution for L1G trigger
- TH2F *fhClusEtaMaxL1J; //! Maximum E Cluster vs Eta per event distribution for L1J trigger
- TH2F *fhClusEtaMaxL1GOnly; //! Maximum E Cluster vs Eta per event distribution for L1G trigger and not L1J
- TH2F *fhClusEtaMaxL1JOnly; //! Maximum E Cluster vs Eta per event distribution for L1J trigger and not L1G
-
- TH2F *fhClusPhiMB; //! Clusters Phi vs E distribution for MB trigger
- TH2F *fhClusPhiL0; //! Clusters Phi vs E distribution for L0 trigger
- TH2F *fhClusPhiL1G; //! Clusters Phi vs E distribution for L1G trigger
- TH2F *fhClusPhiL1J; //! Clusters Phi vs E distribution for L1J trigger
- TH2F *fhClusPhiL1GOnly; //! Clusters Phi vs E distribution for L1G trigger and not L1J
- TH2F *fhClusPhiL1JOnly; //! Clusters Phi vs E distribution for L1J trigger and not L1G
- TH2F *fhClusPhiMaxMB; //! Maximum E Cluster vs Phi per event distribution for MB trigger
- TH2F *fhClusPhiMaxL0; //! Maximum E Cluster vs Phi per event distribution for L0 trigger
- TH2F *fhClusPhiMaxL1G; //! Maximum E Cluster vs Phi per event distribution for L1G trigger
- TH2F *fhClusPhiMaxL1J; //! Maximum E Cluster vs Phi per event distribution for L1J trigger
- TH2F *fhClusPhiMaxL1GOnly; //! Maximum E Cluster vs Phi per event distribution for L1G trigger and not L1J
- TH2F *fhClusPhiMaxL1JOnly; //! Maximum E Cluster vs Phi per event distribution for L1J trigger and not L1G
-
- TH2F *fhClusEtaPhiHighMB; //! Clusters eta vs phi distribution for MB trigger, energy above 10 GeV
- TH2F *fhClusEtaPhiHighL0; //! Clusters eta vs phi distribution for L0 trigger, energy above 10 GeV
- TH2F *fhClusEtaPhiHighL1G; //! Clusters eta vs phi distribution for L1G trigger, energy above 10 GeV
- TH2F *fhClusEtaPhiHighL1J; //! Clusters eta vs phi distribution for L1J trigger, energy above 10 GeV
- TH2F *fhClusEtaPhiHighL1GOnly; //! Clusters eta vs phi distribution for L1G trigger and not L1J, energy above 10 GeV
- TH2F *fhClusEtaPhiHighL1JOnly; //! Clusters eta vs phi distribution for L1J trigger and not L1G, energy above 10 GeV
- TH2F *fhClusEtaPhiHighCluMaxMB; //! Maximum E Cluster, Phi vs Eta per event distribution for MB trigger, energy above 10 GeV
- TH2F *fhClusEtaPhiHighCluMaxL0; //! Maximum E Cluster, Phi vs Eta per event distribution for L0 trigger, energy above 10 GeV
- TH2F *fhClusEtaPhiHighCluMaxL1G; //! Maximum E Cluster, Phi vs Eta per event distribution for L1G trigger, energy above 10 GeV
- TH2F *fhClusEtaPhiHighCluMaxL1J; //! Maximum E Cluster, Phi vs Eta per event distribution for L1J trigger, energy above 10 GeV
- TH2F *fhClusEtaPhiHighCluMaxL1GOnly; //! Maximum E Cluster, Phi vs Eta per event distribution for L1G trigger and not L1J, energy above 10 GeV
- TH2F *fhClusEtaPhiHighCluMaxL1JOnly; //! Maximum E Cluster, Phi vs Eta per event distribution for L1J trigger and not L1G, energy above 10 GeV
-
- TH2F *fhClusEtaPhiHighCellMaxMB; //! Clusters maximum energy cell index eta vs phi distribution for MB trigger, energy above 10 GeV
- TH2F *fhClusEtaPhiHighCellMaxL0; //! Clusters maximum energy cell index eta vs phi distribution for L0 trigger, energy above 10 GeV
- TH2F *fhClusEtaPhiHighCellMaxL1G; //! Clusters maximum energy cell index eta vs phi distribution for L1G trigger, energy above 10 GeV
- TH2F *fhClusEtaPhiHighCellMaxL1J; //! Clusters maximum energy cell index eta vs phi distribution for L1J trigger, energy above 10 GeV
- TH2F *fhClusEtaPhiHighCellMaxL1GOnly; //! Clusters maximum energy cell index eta vs phi distribution for L1G trigger and not L1J, energy above 10 GeV
- TH2F *fhClusEtaPhiHighCellMaxL1JOnly; //! Clusters maximum energy cell index eta vs phi distribution for L1J trigger and not L1G, energy above 10 GeV
- TH2F *fhClusEtaPhiHighCellMaxCluMaxMB; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for MB trigger, energy above 10 GeV
- TH2F *fhClusEtaPhiHighCellMaxCluMaxL0; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for L0 trigger, energy above 10 GeV
- TH2F *fhClusEtaPhiHighCellMaxCluMaxL1G; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for L1G trigger, energy above 10 GeV
- TH2F *fhClusEtaPhiHighCellMaxCluMaxL1J; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for L1J trigger, energy above 10 GeV
- TH2F *fhClusEtaPhiHighCellMaxCluMaxL1GOnly; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for L1G trigger and not L1J, energy above 10 GeV
- TH2F *fhClusEtaPhiHighCellMaxCluMaxL1JOnly; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for L1J trigger and not L1G, energy above 10 GeV
-
- TH2F *fhClusEtaPhiLowMB; //! Clusters eta vs phi distribution for MB trigger, energy below 10 GeV
- TH2F *fhClusEtaPhiLowL0; //! Clusters eta vs phi distribution for L0 trigger, energy below 10 GeV
- TH2F *fhClusEtaPhiLowL1G; //! Clusters eta vs phi distribution for L1G trigger, energy below 10 GeV
- TH2F *fhClusEtaPhiLowL1J; //! Clusters eta vs phi distribution for L1J trigger, energy below 10 GeV
- TH2F *fhClusEtaPhiLowL1GOnly; //! Clusters eta vs phi distribution for L1G trigger and not L1J, energy below 10 GeV
- TH2F *fhClusEtaPhiLowL1JOnly; //! Clusters eta vs phi distribution for L1J trigger and not L1G, energy below 10 GeV
- TH2F *fhClusEtaPhiLowCluMaxMB; //! Maximum E Cluster, Phi vs Eta per event distribution for MB trigger, energy below 10 GeV
- TH2F *fhClusEtaPhiLowCluMaxL0; //! Maximum E Cluster, Phi vs Eta per event distribution for L0 trigger, energy below 10 GeV
- TH2F *fhClusEtaPhiLowCluMaxL1G; //! Maximum E Cluster, Phi vs Eta per event distribution for L1G trigger, energy below 10 GeV
- TH2F *fhClusEtaPhiLowCluMaxL1J; //! Maximum E Cluster, Phi vs Eta per event distribution for L1J trigger, energy below 10 GeV
- TH2F *fhClusEtaPhiLowCluMaxL1GOnly; //! Maximum E Cluster, Phi vs Eta per event distribution for L1G trigger and not L1J, energy below 10 GeV
- TH2F *fhClusEtaPhiLowCluMaxL1JOnly; //! Maximum E Cluster, Phi vs Eta per event distribution for L1J trigger and not L1G, energy below 10 GeV
-
- TH2F *fhClusEtaPhiLowCellMaxMB; //! Clusters maximum energy cell index eta vs phi distribution for MB trigger, energy below 10 GeV
- TH2F *fhClusEtaPhiLowCellMaxL0; //! Clusters maximum energy cell index eta vs phi distribution for L0 trigger, energy below 10 GeV
- TH2F *fhClusEtaPhiLowCellMaxL1G; //! Clusters maximum energy cell index eta vs phi distribution for L1G trigger, energy below 10 GeV
- TH2F *fhClusEtaPhiLowCellMaxL1J; //! Clusters maximum energy cell index eta vs phi distribution for L1J trigger, energy below 10 GeV
- TH2F *fhClusEtaPhiLowCellMaxL1GOnly; //! Clusters maximum energy cell index eta vs phi distribution for L1G trigger and not L1J, energy below 10 GeV
- TH2F *fhClusEtaPhiLowCellMaxL1JOnly; //! Clusters maximum energy cell index eta vs phi distribution for L1J trigger and not L1G, energy below 10 GeV
- TH2F *fhClusEtaPhiLowCellMaxCluMaxMB; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for MB trigger, energy below 10 GeV
- TH2F *fhClusEtaPhiLowCellMaxCluMaxL0; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for L0 trigger, energy below 10 GeV
- TH2F *fhClusEtaPhiLowCellMaxCluMaxL1G; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for L1G trigger, energy below 10 GeV
- TH2F *fhClusEtaPhiLowCellMaxCluMaxL1J; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for L1J trigger, energy below 10 GeV
- TH2F *fhClusEtaPhiLowCellMaxCluMaxL1GOnly; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for L1G trigger and not L1J, energy below 10 GeV
- TH2F *fhClusEtaPhiLowCellMaxCluMaxL1JOnly; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for L1J trigger and not L1G, energy below 10 GeV
+ TH1F *fhClusMBPure[3]; //! Clusters E distribution for pure MB trigger
+ TH1F *fhClusMaxMBPure[3]; //! Maximum E Cluster per event distribution for pure MB trigger
+ static const int fgkTriggerCombi = 12; // total number of trigger combinations defined above
+ TH1F *fhClus [fgkTriggerCombi]; //! Clusters E distribution for a trigger
+ TH1F *fhClusMax[fgkTriggerCombi]; //! Maximum E Cluster per event distribution for MB trigger
+
+ TH2F *fhClusCen [fgkTriggerCombi]; //! Clusters Centrality vs E distribution for a trigger
+ TH2F *fhClusCenMax[fgkTriggerCombi]; //! Maximum E Cluster vs Centrality per event distribution for a trigger
+ TH2F *fhClusV0 [fgkTriggerCombi]; //! Clusters V0 vs E distribution for a trigger
+ TH2F *fhClusV0Max[fgkTriggerCombi]; //! Maximum E Cluster vs Centrality per event distribution for a trigger
+
+ TH2F *fhClusEta [fgkTriggerCombi]; //! Clusters eta vs E distribution for a trigger
+ TH2F *fhClusEtaMax[fgkTriggerCombi]; //! Maximum E Cluster vs Eta per event distribution for a trigger
+
+ TH2F *fhClusPhi [fgkTriggerCombi]; //! Clusters Phi vs E distribution for a trigger
+ TH2F *fhClusPhiMax[fgkTriggerCombi]; //! Maximum E Cluster vs Phi per event distribution for a trigger
+
+ TH2F *fhClusEtaPhiHigh [fgkTriggerCombi]; //! Clusters eta vs phi distribution for a trigger, energy above fEtaPhiEnMin GeV
+ TH2F *fhClusEtaPhiHighCluMax[fgkTriggerCombi]; //! Maximum E Cluster, Phi vs Eta per event distribution for a trigger, energy above fEtaPhiEnMin GeV
+
+ TH2F *fhClusEtaPhiHighCellMax [fgkTriggerCombi]; //! Clusters maximum energy cell index eta vs phi distribution for a trigger, energy above fEtaPhiEnMin GeV
+ TH2F *fhClusEtaPhiHighCellMaxCluMax[fgkTriggerCombi]; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for MB trigger, energy above fEtaPhiEnMin GeV
+
+ TH2F *fhClusEtaPhiLow [fgkTriggerCombi]; //! Clusters eta vs phi distribution for a trigger, energy below fEtaPhiEnMin GeV
+ TH2F *fhClusEtaPhiLowCluMax[fgkTriggerCombi]; //! Maximum E Cluster, Phi vs Eta per event distribution for MB trigger, energy below fEtaPhiEnMin GeV
+
+ TH2F *fhClusEtaPhiLowCellMax [fgkTriggerCombi]; //! Clusters maximum energy cell index eta vs phi distribution for a trigger, energy below fEtaPhiEnMin GeV
+ TH2F *fhClusEtaPhiLowCellMaxCluMax[fgkTriggerCombi]; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for MB trigger, energy below fEtaPhiEnMin GeV
+
+ TH1F *fhV0[fgkTriggerCombi];//! V0 distribution for a triggered event
+
// Histograms bins
Int_t fNBinsSTUSignal ; // Number of bins for STU total signal histograms
Float_t fMaxSTUTRURatio ; // Maximum value for STU/TRU ratios histograms
Int_t fNBinsClusterE ; // Number of bins for E cluster histograms
Float_t fMaxClusterE ; // Maximum value for E cluster histograms
-
+ Int_t fNBinsClusterPhi ; // Number of bins for Phi cluster histograms
+ Float_t fMaxClusterPhi ; // Maximum value for Phi cluster histograms
+ Float_t fMinClusterPhi ; // Maximum value for Phi cluster histograms
+ Int_t fNBinsClusterEta ; // Number of bins for Eta cluster histograms
+ Float_t fMaxClusterEta ; // Maximum value for Eta cluster histograms
+
+
//Constants needed by the class: EMCAL
- static const int fgkFALTRORows = AliEMCALGeoParams::fgkEMCALRows*(AliEMCALGeoParams::fgkEMCALModules-7)/2; // total number
+ //static const int fgkFALTRORows = AliEMCALGeoParams::fgkEMCALRows*(AliEMCALGeoParams::fgkEMCALModules-7)/2; // total number
+ static const int fgkFALTRORows = 60; //AliEMCALGeoParams::fgkEMCALSTURows-4; // total number, temporary, not considers DCal
// of fake altro rows in EMCAL
// (ALTRO channels in one SM times 5 SM divided by 2 per FALTRO)
- static const int fgkFALTROCols = AliEMCALGeoParams::fgkEMCALCols; // total number of fake altro columns in EMCAL
+ static const int fgkFALTROCols = AliEMCALGeoParams::fgkEMCALSTUCols; // total number of fake altro columns in EMCAL
// (ALTRO channels in one SM times 2 SM divided by 2 per FALTRO)
+ // cell, patch maps
+ Double_t fMapCell [fgkFALTRORows][fgkFALTROCols]; // Cell map
+ Double_t fMapCellL1G [fgkFALTRORows][fgkFALTROCols]; // Cell map for L1G
+ Double_t fMapCellL1G2 [fgkFALTRORows][fgkFALTROCols]; // Cell map for L1G2
+ Double_t fMapCellL1J [fgkFALTRORows][fgkFALTROCols]; // Cell map for L1J
+ Double_t fMapCellL1J2 [fgkFALTRORows][fgkFALTROCols]; // Cell map for L1J2
+ Double_t fMapTrigL0 [fgkFALTRORows][fgkFALTROCols]; // Patch map for L0
+ Double_t fMapTrigL1 [fgkFALTRORows][fgkFALTROCols]; // Patch map for L1
+ Double_t fMapTrigL0L1G[fgkFALTRORows][fgkFALTROCols]; // Patch map for L0L1G
+ Double_t fMapTrigL0L1J[fgkFALTRORows][fgkFALTROCols]; // Patch map for L0L1J
+ Double_t fMapTrigL1G [fgkFALTRORows][fgkFALTROCols]; // Patch map for L1G
+ Double_t fMapTrigL1G2 [fgkFALTRORows][fgkFALTROCols]; // Patch map for L1G2
+ Double_t fMapTrigL1J [fgkFALTRORows][fgkFALTROCols]; // Patch map for L1J
+ Double_t fMapTrigL1J2 [fgkFALTRORows][fgkFALTROCols]; // Patch map for L1J2
+
- AliAnalysisTaskEMCALTriggerQA(const AliAnalysisTaskEMCALTriggerQA&); //not implemented
+ AliAnalysisTaskEMCALTriggerQA (const AliAnalysisTaskEMCALTriggerQA&); // not implemented
- AliAnalysisTaskEMCALTriggerQA& operator=(const AliAnalysisTaskEMCALTriggerQA&); //not implemented
+ AliAnalysisTaskEMCALTriggerQA& operator=(const AliAnalysisTaskEMCALTriggerQA&); // not implemented
- ClassDef(AliAnalysisTaskEMCALTriggerQA, 9);
+ ClassDef(AliAnalysisTaskEMCALTriggerQA, 14);
};
#endif