ROOT logo
#ifndef ALIANALYSISTASKEMCALTRIGGERQA_H
#define ALIANALYSISTASKEMCALTRIGGERQA_H

//------------------------------------------------------------------------//
//  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 TH1F;
class TH2I;
class TH2F;
class AliEMCALGeometry;
class TProfile2D;

//--- AliRoot ---
class AliEMCALRecoUtils;
#include "AliEMCALGeoParams.h"
#include "AliAnalysisTaskSE.h"

class AliAnalysisTaskEMCALTriggerQA : public AliAnalysisTaskSE 
{
public:
  
  AliAnalysisTaskEMCALTriggerQA(const char *name);   // named constructor
  
  virtual ~AliAnalysisTaskEMCALTriggerQA() { ; }     // destructor
  
  void   ClusterAnalysis();
  
  void   FillCellMaps();
  
  void   FillTriggerPatchMaps(TString triggerclasses);
  
  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);
  
  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             *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
  
  TH2F             *fhGPMaxVV0TT;     //! V0 signal vs maximum gamma L1 patch
  TH2F             *fhJPMaxVV0TT;     //! V0 signal vs maximum jet L1 patch
  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
  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             *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           fMaxSTUSignal     ;     // Maximum value for TRU total signal histograms
  Int_t             fNBinsTRUSignal   ;     // Number of bins for TRU total signal histograms
  Float_t           fMaxTRUSignal     ;     // Maximum value for TRU total signal histograms
  Int_t             fNBinsV0Signal    ;     // Number of bins for V0 total signal histograms
  Float_t           fMaxV0Signal      ;     // Maximum value for V0 total signal histograms
  Int_t             fNBinsSTUFEERatio ;     // Number of bins for STU/FEE ratios histograms
  Float_t           fMaxSTUFEERatio   ;     // Maximum value for STU/FEE ratios histograms
  Int_t             fNBinsSTUTRURatio ;     // Number of bins for STU/TRU ratios 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 = 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::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& operator=(const AliAnalysisTaskEMCALTriggerQA&); // not implemented
  
  ClassDef(AliAnalysisTaskEMCALTriggerQA, 14);
};

#endif 
 AliAnalysisTaskEMCALTriggerQA.h:1
 AliAnalysisTaskEMCALTriggerQA.h:2
 AliAnalysisTaskEMCALTriggerQA.h:3
 AliAnalysisTaskEMCALTriggerQA.h:4
 AliAnalysisTaskEMCALTriggerQA.h:5
 AliAnalysisTaskEMCALTriggerQA.h:6
 AliAnalysisTaskEMCALTriggerQA.h:7
 AliAnalysisTaskEMCALTriggerQA.h:8
 AliAnalysisTaskEMCALTriggerQA.h:9
 AliAnalysisTaskEMCALTriggerQA.h:10
 AliAnalysisTaskEMCALTriggerQA.h:11
 AliAnalysisTaskEMCALTriggerQA.h:12
 AliAnalysisTaskEMCALTriggerQA.h:13
 AliAnalysisTaskEMCALTriggerQA.h:14
 AliAnalysisTaskEMCALTriggerQA.h:15
 AliAnalysisTaskEMCALTriggerQA.h:16
 AliAnalysisTaskEMCALTriggerQA.h:17
 AliAnalysisTaskEMCALTriggerQA.h:18
 AliAnalysisTaskEMCALTriggerQA.h:19
 AliAnalysisTaskEMCALTriggerQA.h:20
 AliAnalysisTaskEMCALTriggerQA.h:21
 AliAnalysisTaskEMCALTriggerQA.h:22
 AliAnalysisTaskEMCALTriggerQA.h:23
 AliAnalysisTaskEMCALTriggerQA.h:24
 AliAnalysisTaskEMCALTriggerQA.h:25
 AliAnalysisTaskEMCALTriggerQA.h:26
 AliAnalysisTaskEMCALTriggerQA.h:27
 AliAnalysisTaskEMCALTriggerQA.h:28
 AliAnalysisTaskEMCALTriggerQA.h:29
 AliAnalysisTaskEMCALTriggerQA.h:30
 AliAnalysisTaskEMCALTriggerQA.h:31
 AliAnalysisTaskEMCALTriggerQA.h:32
 AliAnalysisTaskEMCALTriggerQA.h:33
 AliAnalysisTaskEMCALTriggerQA.h:34
 AliAnalysisTaskEMCALTriggerQA.h:35
 AliAnalysisTaskEMCALTriggerQA.h:36
 AliAnalysisTaskEMCALTriggerQA.h:37
 AliAnalysisTaskEMCALTriggerQA.h:38
 AliAnalysisTaskEMCALTriggerQA.h:39
 AliAnalysisTaskEMCALTriggerQA.h:40
 AliAnalysisTaskEMCALTriggerQA.h:41
 AliAnalysisTaskEMCALTriggerQA.h:42
 AliAnalysisTaskEMCALTriggerQA.h:43
 AliAnalysisTaskEMCALTriggerQA.h:44
 AliAnalysisTaskEMCALTriggerQA.h:45
 AliAnalysisTaskEMCALTriggerQA.h:46
 AliAnalysisTaskEMCALTriggerQA.h:47
 AliAnalysisTaskEMCALTriggerQA.h:48
 AliAnalysisTaskEMCALTriggerQA.h:49
 AliAnalysisTaskEMCALTriggerQA.h:50
 AliAnalysisTaskEMCALTriggerQA.h:51
 AliAnalysisTaskEMCALTriggerQA.h:52
 AliAnalysisTaskEMCALTriggerQA.h:53
 AliAnalysisTaskEMCALTriggerQA.h:54
 AliAnalysisTaskEMCALTriggerQA.h:55
 AliAnalysisTaskEMCALTriggerQA.h:56
 AliAnalysisTaskEMCALTriggerQA.h:57
 AliAnalysisTaskEMCALTriggerQA.h:58
 AliAnalysisTaskEMCALTriggerQA.h:59
 AliAnalysisTaskEMCALTriggerQA.h:60
 AliAnalysisTaskEMCALTriggerQA.h:61
 AliAnalysisTaskEMCALTriggerQA.h:62
 AliAnalysisTaskEMCALTriggerQA.h:63
 AliAnalysisTaskEMCALTriggerQA.h:64
 AliAnalysisTaskEMCALTriggerQA.h:65
 AliAnalysisTaskEMCALTriggerQA.h:66
 AliAnalysisTaskEMCALTriggerQA.h:67
 AliAnalysisTaskEMCALTriggerQA.h:68
 AliAnalysisTaskEMCALTriggerQA.h:69
 AliAnalysisTaskEMCALTriggerQA.h:70
 AliAnalysisTaskEMCALTriggerQA.h:71
 AliAnalysisTaskEMCALTriggerQA.h:72
 AliAnalysisTaskEMCALTriggerQA.h:73
 AliAnalysisTaskEMCALTriggerQA.h:74
 AliAnalysisTaskEMCALTriggerQA.h:75
 AliAnalysisTaskEMCALTriggerQA.h:76
 AliAnalysisTaskEMCALTriggerQA.h:77
 AliAnalysisTaskEMCALTriggerQA.h:78
 AliAnalysisTaskEMCALTriggerQA.h:79
 AliAnalysisTaskEMCALTriggerQA.h:80
 AliAnalysisTaskEMCALTriggerQA.h:81
 AliAnalysisTaskEMCALTriggerQA.h:82
 AliAnalysisTaskEMCALTriggerQA.h:83
 AliAnalysisTaskEMCALTriggerQA.h:84
 AliAnalysisTaskEMCALTriggerQA.h:85
 AliAnalysisTaskEMCALTriggerQA.h:86
 AliAnalysisTaskEMCALTriggerQA.h:87
 AliAnalysisTaskEMCALTriggerQA.h:88
 AliAnalysisTaskEMCALTriggerQA.h:89
 AliAnalysisTaskEMCALTriggerQA.h:90
 AliAnalysisTaskEMCALTriggerQA.h:91
 AliAnalysisTaskEMCALTriggerQA.h:92
 AliAnalysisTaskEMCALTriggerQA.h:93
 AliAnalysisTaskEMCALTriggerQA.h:94
 AliAnalysisTaskEMCALTriggerQA.h:95
 AliAnalysisTaskEMCALTriggerQA.h:96
 AliAnalysisTaskEMCALTriggerQA.h:97
 AliAnalysisTaskEMCALTriggerQA.h:98
 AliAnalysisTaskEMCALTriggerQA.h:99
 AliAnalysisTaskEMCALTriggerQA.h:100
 AliAnalysisTaskEMCALTriggerQA.h:101
 AliAnalysisTaskEMCALTriggerQA.h:102
 AliAnalysisTaskEMCALTriggerQA.h:103
 AliAnalysisTaskEMCALTriggerQA.h:104
 AliAnalysisTaskEMCALTriggerQA.h:105
 AliAnalysisTaskEMCALTriggerQA.h:106
 AliAnalysisTaskEMCALTriggerQA.h:107
 AliAnalysisTaskEMCALTriggerQA.h:108
 AliAnalysisTaskEMCALTriggerQA.h:109
 AliAnalysisTaskEMCALTriggerQA.h:110
 AliAnalysisTaskEMCALTriggerQA.h:111
 AliAnalysisTaskEMCALTriggerQA.h:112
 AliAnalysisTaskEMCALTriggerQA.h:113
 AliAnalysisTaskEMCALTriggerQA.h:114
 AliAnalysisTaskEMCALTriggerQA.h:115
 AliAnalysisTaskEMCALTriggerQA.h:116
 AliAnalysisTaskEMCALTriggerQA.h:117
 AliAnalysisTaskEMCALTriggerQA.h:118
 AliAnalysisTaskEMCALTriggerQA.h:119
 AliAnalysisTaskEMCALTriggerQA.h:120
 AliAnalysisTaskEMCALTriggerQA.h:121
 AliAnalysisTaskEMCALTriggerQA.h:122
 AliAnalysisTaskEMCALTriggerQA.h:123
 AliAnalysisTaskEMCALTriggerQA.h:124
 AliAnalysisTaskEMCALTriggerQA.h:125
 AliAnalysisTaskEMCALTriggerQA.h:126
 AliAnalysisTaskEMCALTriggerQA.h:127
 AliAnalysisTaskEMCALTriggerQA.h:128
 AliAnalysisTaskEMCALTriggerQA.h:129
 AliAnalysisTaskEMCALTriggerQA.h:130
 AliAnalysisTaskEMCALTriggerQA.h:131
 AliAnalysisTaskEMCALTriggerQA.h:132
 AliAnalysisTaskEMCALTriggerQA.h:133
 AliAnalysisTaskEMCALTriggerQA.h:134
 AliAnalysisTaskEMCALTriggerQA.h:135
 AliAnalysisTaskEMCALTriggerQA.h:136
 AliAnalysisTaskEMCALTriggerQA.h:137
 AliAnalysisTaskEMCALTriggerQA.h:138
 AliAnalysisTaskEMCALTriggerQA.h:139
 AliAnalysisTaskEMCALTriggerQA.h:140
 AliAnalysisTaskEMCALTriggerQA.h:141
 AliAnalysisTaskEMCALTriggerQA.h:142
 AliAnalysisTaskEMCALTriggerQA.h:143
 AliAnalysisTaskEMCALTriggerQA.h:144
 AliAnalysisTaskEMCALTriggerQA.h:145
 AliAnalysisTaskEMCALTriggerQA.h:146
 AliAnalysisTaskEMCALTriggerQA.h:147
 AliAnalysisTaskEMCALTriggerQA.h:148
 AliAnalysisTaskEMCALTriggerQA.h:149
 AliAnalysisTaskEMCALTriggerQA.h:150
 AliAnalysisTaskEMCALTriggerQA.h:151
 AliAnalysisTaskEMCALTriggerQA.h:152
 AliAnalysisTaskEMCALTriggerQA.h:153
 AliAnalysisTaskEMCALTriggerQA.h:154
 AliAnalysisTaskEMCALTriggerQA.h:155
 AliAnalysisTaskEMCALTriggerQA.h:156
 AliAnalysisTaskEMCALTriggerQA.h:157
 AliAnalysisTaskEMCALTriggerQA.h:158
 AliAnalysisTaskEMCALTriggerQA.h:159
 AliAnalysisTaskEMCALTriggerQA.h:160
 AliAnalysisTaskEMCALTriggerQA.h:161
 AliAnalysisTaskEMCALTriggerQA.h:162
 AliAnalysisTaskEMCALTriggerQA.h:163
 AliAnalysisTaskEMCALTriggerQA.h:164
 AliAnalysisTaskEMCALTriggerQA.h:165
 AliAnalysisTaskEMCALTriggerQA.h:166
 AliAnalysisTaskEMCALTriggerQA.h:167
 AliAnalysisTaskEMCALTriggerQA.h:168
 AliAnalysisTaskEMCALTriggerQA.h:169
 AliAnalysisTaskEMCALTriggerQA.h:170
 AliAnalysisTaskEMCALTriggerQA.h:171
 AliAnalysisTaskEMCALTriggerQA.h:172
 AliAnalysisTaskEMCALTriggerQA.h:173
 AliAnalysisTaskEMCALTriggerQA.h:174
 AliAnalysisTaskEMCALTriggerQA.h:175
 AliAnalysisTaskEMCALTriggerQA.h:176
 AliAnalysisTaskEMCALTriggerQA.h:177
 AliAnalysisTaskEMCALTriggerQA.h:178
 AliAnalysisTaskEMCALTriggerQA.h:179
 AliAnalysisTaskEMCALTriggerQA.h:180
 AliAnalysisTaskEMCALTriggerQA.h:181
 AliAnalysisTaskEMCALTriggerQA.h:182
 AliAnalysisTaskEMCALTriggerQA.h:183
 AliAnalysisTaskEMCALTriggerQA.h:184
 AliAnalysisTaskEMCALTriggerQA.h:185
 AliAnalysisTaskEMCALTriggerQA.h:186
 AliAnalysisTaskEMCALTriggerQA.h:187
 AliAnalysisTaskEMCALTriggerQA.h:188
 AliAnalysisTaskEMCALTriggerQA.h:189
 AliAnalysisTaskEMCALTriggerQA.h:190
 AliAnalysisTaskEMCALTriggerQA.h:191
 AliAnalysisTaskEMCALTriggerQA.h:192
 AliAnalysisTaskEMCALTriggerQA.h:193
 AliAnalysisTaskEMCALTriggerQA.h:194
 AliAnalysisTaskEMCALTriggerQA.h:195
 AliAnalysisTaskEMCALTriggerQA.h:196
 AliAnalysisTaskEMCALTriggerQA.h:197
 AliAnalysisTaskEMCALTriggerQA.h:198
 AliAnalysisTaskEMCALTriggerQA.h:199
 AliAnalysisTaskEMCALTriggerQA.h:200
 AliAnalysisTaskEMCALTriggerQA.h:201
 AliAnalysisTaskEMCALTriggerQA.h:202
 AliAnalysisTaskEMCALTriggerQA.h:203
 AliAnalysisTaskEMCALTriggerQA.h:204
 AliAnalysisTaskEMCALTriggerQA.h:205
 AliAnalysisTaskEMCALTriggerQA.h:206
 AliAnalysisTaskEMCALTriggerQA.h:207
 AliAnalysisTaskEMCALTriggerQA.h:208
 AliAnalysisTaskEMCALTriggerQA.h:209
 AliAnalysisTaskEMCALTriggerQA.h:210
 AliAnalysisTaskEMCALTriggerQA.h:211
 AliAnalysisTaskEMCALTriggerQA.h:212
 AliAnalysisTaskEMCALTriggerQA.h:213
 AliAnalysisTaskEMCALTriggerQA.h:214
 AliAnalysisTaskEMCALTriggerQA.h:215
 AliAnalysisTaskEMCALTriggerQA.h:216
 AliAnalysisTaskEMCALTriggerQA.h:217
 AliAnalysisTaskEMCALTriggerQA.h:218
 AliAnalysisTaskEMCALTriggerQA.h:219
 AliAnalysisTaskEMCALTriggerQA.h:220
 AliAnalysisTaskEMCALTriggerQA.h:221
 AliAnalysisTaskEMCALTriggerQA.h:222
 AliAnalysisTaskEMCALTriggerQA.h:223
 AliAnalysisTaskEMCALTriggerQA.h:224
 AliAnalysisTaskEMCALTriggerQA.h:225
 AliAnalysisTaskEMCALTriggerQA.h:226
 AliAnalysisTaskEMCALTriggerQA.h:227
 AliAnalysisTaskEMCALTriggerQA.h:228
 AliAnalysisTaskEMCALTriggerQA.h:229
 AliAnalysisTaskEMCALTriggerQA.h:230
 AliAnalysisTaskEMCALTriggerQA.h:231
 AliAnalysisTaskEMCALTriggerQA.h:232
 AliAnalysisTaskEMCALTriggerQA.h:233
 AliAnalysisTaskEMCALTriggerQA.h:234
 AliAnalysisTaskEMCALTriggerQA.h:235
 AliAnalysisTaskEMCALTriggerQA.h:236
 AliAnalysisTaskEMCALTriggerQA.h:237
 AliAnalysisTaskEMCALTriggerQA.h:238
 AliAnalysisTaskEMCALTriggerQA.h:239
 AliAnalysisTaskEMCALTriggerQA.h:240
 AliAnalysisTaskEMCALTriggerQA.h:241
 AliAnalysisTaskEMCALTriggerQA.h:242
 AliAnalysisTaskEMCALTriggerQA.h:243
 AliAnalysisTaskEMCALTriggerQA.h:244
 AliAnalysisTaskEMCALTriggerQA.h:245
 AliAnalysisTaskEMCALTriggerQA.h:246
 AliAnalysisTaskEMCALTriggerQA.h:247
 AliAnalysisTaskEMCALTriggerQA.h:248
 AliAnalysisTaskEMCALTriggerQA.h:249
 AliAnalysisTaskEMCALTriggerQA.h:250
 AliAnalysisTaskEMCALTriggerQA.h:251
 AliAnalysisTaskEMCALTriggerQA.h:252
 AliAnalysisTaskEMCALTriggerQA.h:253
 AliAnalysisTaskEMCALTriggerQA.h:254
 AliAnalysisTaskEMCALTriggerQA.h:255
 AliAnalysisTaskEMCALTriggerQA.h:256
 AliAnalysisTaskEMCALTriggerQA.h:257
 AliAnalysisTaskEMCALTriggerQA.h:258
 AliAnalysisTaskEMCALTriggerQA.h:259
 AliAnalysisTaskEMCALTriggerQA.h:260
 AliAnalysisTaskEMCALTriggerQA.h:261
 AliAnalysisTaskEMCALTriggerQA.h:262
 AliAnalysisTaskEMCALTriggerQA.h:263
 AliAnalysisTaskEMCALTriggerQA.h:264
 AliAnalysisTaskEMCALTriggerQA.h:265
 AliAnalysisTaskEMCALTriggerQA.h:266
 AliAnalysisTaskEMCALTriggerQA.h:267
 AliAnalysisTaskEMCALTriggerQA.h:268
 AliAnalysisTaskEMCALTriggerQA.h:269
 AliAnalysisTaskEMCALTriggerQA.h:270
 AliAnalysisTaskEMCALTriggerQA.h:271
 AliAnalysisTaskEMCALTriggerQA.h:272
 AliAnalysisTaskEMCALTriggerQA.h:273
 AliAnalysisTaskEMCALTriggerQA.h:274
 AliAnalysisTaskEMCALTriggerQA.h:275
 AliAnalysisTaskEMCALTriggerQA.h:276
 AliAnalysisTaskEMCALTriggerQA.h:277
 AliAnalysisTaskEMCALTriggerQA.h:278
 AliAnalysisTaskEMCALTriggerQA.h:279
 AliAnalysisTaskEMCALTriggerQA.h:280
 AliAnalysisTaskEMCALTriggerQA.h:281
 AliAnalysisTaskEMCALTriggerQA.h:282
 AliAnalysisTaskEMCALTriggerQA.h:283
 AliAnalysisTaskEMCALTriggerQA.h:284
 AliAnalysisTaskEMCALTriggerQA.h:285
 AliAnalysisTaskEMCALTriggerQA.h:286
 AliAnalysisTaskEMCALTriggerQA.h:287
 AliAnalysisTaskEMCALTriggerQA.h:288
 AliAnalysisTaskEMCALTriggerQA.h:289
 AliAnalysisTaskEMCALTriggerQA.h:290
 AliAnalysisTaskEMCALTriggerQA.h:291
 AliAnalysisTaskEMCALTriggerQA.h:292
 AliAnalysisTaskEMCALTriggerQA.h:293
 AliAnalysisTaskEMCALTriggerQA.h:294
 AliAnalysisTaskEMCALTriggerQA.h:295
 AliAnalysisTaskEMCALTriggerQA.h:296