ROOT logo
// ChristineQA task
//
// Author: J Mazer

#include "AliAnalysisTaskEmcalJetPatchTriggerQA.h"

#include <TCanvas.h>
#include <TChain.h>
#include <TClonesArray.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TH3F.h>
#include <THnSparse.h>
#include <TList.h>
#include <TLorentzVector.h>
#include <TParameter.h>
#include <TParticle.h>
#include <TTree.h>
#include <TVector3.h>

#include "AliAODEvent.h"
#include "AliAnalysisManager.h"
#include "AliAnalysisTask.h"
#include "AliCentrality.h"
#include "AliESDEvent.h"
#include "AliESDInputHandler.h"
#include "AliEmcalJet.h"
#include "AliVCluster.h"
#include "AliRhoParameter.h"
#include "AliEmcalParticle.h"
#include "AliLocalRhoParameter.h"
#include "AliAnalysisTaskLocalRho.h"
#include <AliInputEventHandler.h>
#include <AliVEventHandler.h>

ClassImp(AliAnalysisTaskEmcalJetPatchTriggerQA)

//________________________________________________________________________
AliAnalysisTaskEmcalJetPatchTriggerQA::AliAnalysisTaskEmcalJetPatchTriggerQA() : 
  AliAnalysisTaskEmcalJet("ChristineQA",kFALSE), 
  fPhimin(-10), fPhimax(10),
  fEtamin(-0.9), fEtamax(0.9),
  fAreacut(0.0), 
  fLocalRhoVal(0),
  fHistNjetvsCent(0),
  fhnJetTriggerQA(0x0)
{
  // Default constructor.
  SetMakeGeneralHistograms(kTRUE);

}

//________________________________________________________________________
AliAnalysisTaskEmcalJetPatchTriggerQA::AliAnalysisTaskEmcalJetPatchTriggerQA(const char *name) :
  AliAnalysisTaskEmcalJet(name,kTRUE),
  fPhimin(-10), fPhimax(10),
  fEtamin(-0.9), fEtamax(0.9),
  fAreacut(0.0), 
  fLocalRhoVal(0),
  fHistNjetvsCent(0),
  fhnJetTriggerQA(0x0)
{ 

   SetMakeGeneralHistograms(kTRUE);
 
   // DefineInput(0,TChain::Class());
   // DefineOutput(1, TList::Class());
}

//_______________________________________________________________________
AliAnalysisTaskEmcalJetPatchTriggerQA::~AliAnalysisTaskEmcalJetPatchTriggerQA()
{
  // destructor
  //
  if (fOutput) {
    delete fOutput;
    fOutput = 0;
  }
}

//________________________________________________________________________
void AliAnalysisTaskEmcalJetPatchTriggerQA::UserCreateOutputObjects()
{
  if (! fCreateHisto)
    return;
  AliAnalysisTaskEmcalJet::UserCreateOutputObjects();

  fHistNjetvsCent            = new TH2F("NjetvsCent", "NjetvsCent", 100, 0.0, 100.0, 100, 0, 100);
  fOutput->Add(fHistNjetvsCent);

  UInt_t bitcode = 0; // bit codes, see GetDimParams() below
  //bitcode = 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6 | 1<<7 | 1<<8 | 1<<9;
  bitcode = 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6 | 1<<7 | 1<<8 ;
  fhnJetTriggerQA = NewTHnSparseF("fhnJetTriggerQA", bitcode);
  fhnJetTriggerQA->Sumw2();
  fOutput->Add(fhnJetTriggerQA);

  PostData(1, fOutput);
}

//________________________________________________________
void AliAnalysisTaskEmcalJetPatchTriggerQA::ExecOnce()
{
  //  Initialize the analysis 
  AliAnalysisTaskEmcalJet::ExecOnce();

} // end of ExecOnce

//________________________________________________________________________
Bool_t AliAnalysisTaskEmcalJetPatchTriggerQA::Run()
{
  // TEST TEST TEST TEST for OBJECTS!!
  if(!fLocalRho) {
    AliWarning(Form("%s: Could not retrieve LocalRho object!", GetName()));
    fLocalRho = GetLocalRhoFromEvent(fLocalRhoName);
  }

  // check to see if we have jet object
  if (!fJets)  return kTRUE;

  // find NUMBER of jets
  const Int_t Njets = fJets->GetEntries();
  Int_t NjetAcc = 0;

  // loop over jets in the event and make appropriate cuts
  //cout<<"I at least get in the event and I have "<<Njets<<" jets"<<endl;
  for (Int_t iJets = 0; iJets < Njets; ++iJets) {
     AliEmcalJet *jet = static_cast<AliEmcalJet*>(fJets->At(iJets));
     if (!jet)  // see if we have a jet
       continue; 
     if (!AcceptMyJet(jet)) 
       continue;

     //cout<<"jet pt "<<jet->Pt()<<" area "<<jet->Area()<<" maxtrackpt "<<jet->MaxTrackPt()<<endl;
     //This somehow needs to be fixed but I'm not sure what it does yet.  It seems the defaults are wacky.
//     if (! AcceptJet(jet)) // sees if jet is accepted
//     continue;
     //  jets.push_back(jet);

     NjetAcc++;
     
     // Initializations and Calculations
     // Double_t jetphi = jet->Phi();
     //Double_t jeteta = jet->Eta();    			        // ETA of jet  
    
     Double_t jetPtraw = jet->Pt();    				// raw pT of jet
     Double_t jetPtLocal = -500;                    // initialize corr jet pt LOCAL
     Double_t jetPtGlobal = -500;					// initialize corr jet pt GLOBAL
     Double_t jetarea = -500;					// initialize jet area
     jetarea = jet->Area();		           		// jet area

     Double_t dEP = -500;			                // initialize angle between jet and event plane
     dEP = RelativeEPJET(jet->Phi(),fEPV0);

     // get LOCAL rho from event and fill histo's
     fRhoVal = fRho->GetVal();
     fLocalRhoVal = fLocalRho->GetLocalVal(jet->Phi(), 0.2);  // jet angle, then jet radius  

     jetPtLocal = jet->Pt() - jetarea*fLocalRhoVal;              // corrected pT of jet from LOCAL rho value     
     jetPtGlobal = jet->Pt() - jetarea*fRhoVal;                  // corrected pT of jet from GLOBAL rho value

     // need to update entries soon
     //Double_t Entries[10] = {centbin, jetPtLocal, jetPtGlobal, jetPtraw, jet->Eta(), jet->Phi(), dEP, fLocalRhoVal, fRhoVal, fEPV0};
     Double_t Entries[9] = {fCent, jetPtLocal, jetPtGlobal, jetPtraw, jet->Phi(), dEP, fLocalRhoVal, fRhoVal, fEPV0};
     fhnJetTriggerQA->Fill(Entries);        // fill Sparse Histo with entries

     // in plane and out of plane histo's
     if( dEP>0 && dEP<=(TMath::Pi()/6) ){
        // we are IN plane, lets fill some histo's
     }else if( dEP>(TMath::Pi()/3) && dEP<=(TMath::Pi()/2) ){
        // we are OUT of PLANE, lets fill some histo's
	 }

    fHistNjetvsCent->Fill(fCent,NjetAcc);

  } // LOOP over JETS in event
  
  return kTRUE;
}   

//________________________________________________________________________
void AliAnalysisTaskEmcalJetPatchTriggerQA::Terminate(Option_t *)
{

} // end of terminate

//________________________________________________________________________
Int_t AliAnalysisTaskEmcalJetPatchTriggerQA::GetCentBin(Double_t cent) const
{  // Get centrality bin.

  Int_t centbin = -1;
  if (cent>=0 && cent<10)
    centbin = 0; 
  else if (cent>=10 && cent<20)
    centbin = 1;
  else if (cent>=20 && cent<30)
    centbin = 2;
  else if (cent>=30 && cent<40)
    centbin = 3;
  else if (cent>=40 && cent<50)
    centbin = 4;
  else if (cent>=50 && cent<90)
    centbin = 5;
  return centbin;
} 

//_________________________________________________________________________
Double_t AliAnalysisTaskEmcalJetPatchTriggerQA:: RelativeEPJET(Double_t jetAng, Double_t EPAng) const
{ // function to calculate angle between jet and EP in the 1st quadrant (0,Pi/2)
  Double_t dphi = (EPAng - jetAng);

  // ran into trouble with a few dEP<-Pi so trying this...
  if( dphi<-1*TMath::Pi() ){
    dphi = dphi + 1*TMath::Pi();
  }

  if( (dphi>0) && (dphi<1*TMath::Pi()/2) ){
    // Do nothing! we are in quadrant 1
  }else if( (dphi>1*TMath::Pi()/2) && (dphi<1*TMath::Pi()) ){
    dphi = 1*TMath::Pi() - dphi;
  }else if( (dphi<0) && (dphi>-1*TMath::Pi()/2) ){
    dphi = fabs(dphi);
  }else if( (dphi<-1*TMath::Pi()/2) && (dphi>-1*TMath::Pi()) ){	
    dphi = dphi + 1*TMath::Pi();
  }
  
  // test
  if( dphi < 0 || dphi > TMath::Pi()/2 )
    AliWarning(Form("%s: dPHI not constrained from [0, Pi/2]", GetName()));

  return dphi;   // dphi in [0, Pi/2]
}

//______________________________________________________________________
THnSparse* AliAnalysisTaskEmcalJetPatchTriggerQA::NewTHnSparseF(const char* name, UInt_t entries)
{
   // generate new THnSparseF, axes are defined in GetDimParams()
   Int_t count = 0;
   UInt_t tmp = entries;
   while(tmp!=0){
      count++;
      tmp = tmp &~ -tmp;  // clear lowest bit
   }

   TString hnTitle(name);
   const Int_t dim = count;
   Int_t nbins[dim];
   Double_t xmin[dim];
   Double_t xmax[dim];

   Int_t i=0;
   Int_t c=0;
   while(c<dim && i<32){
      if(entries&(1<<i)){

         TString label("");
         GetDimParams(i, label, nbins[c], xmin[c], xmax[c]);
         hnTitle += Form(";%s",label.Data());
         c++;
      }

      i++;
   }
   hnTitle += ";";

   return new THnSparseF(name, hnTitle.Data(), dim, nbins, xmin, xmax);
} // end of NewTHnSparseF

void AliAnalysisTaskEmcalJetPatchTriggerQA::GetDimParams(Int_t iEntry, TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax)
{
   // stores label and binning of axis for THnSparse
   const Double_t pi = TMath::Pi();

   switch(iEntry){

   case 0:
      label = "V0 centrality (%)";
      nbins = 20;
      xmin = 0.;
      xmax = 100.;
      break;

   case 1:
      label = "Corrected jet p_{T}: Local #rho";
      nbins = 500;
      xmin = -250.;
      xmax = 250.;
      break;

   case 2:
      label = "Corrected jet p_{T}: Global #rho";
      nbins = 500;
      xmin = -250.;
      xmax = 250.;
      break;

   case 3:
      label = "Raw jet p_{T}";
      nbins = 250;
      xmin = 0;
      xmax = 250.;
      break;

   case 4:
      label = "Jet Phi";
      nbins = 144;
      xmin = 1.4;//-1.0*pi;
      xmax = 3.4;//2.0*pi;
      break;

  case 5:
      label = "Relative angle between jet and Reaction plane";
      nbins = 72;
      xmin = 0;
      xmax = 0.5*pi;
      break;

  case 6:
      label = "Local #rho value";
      nbins = 120;
      xmin = 0.0;
      xmax = 300.0;
      break;

  case 7: 
      label = "Global #rho value";
      nbins = 120;
      xmin = 0.0;
      xmax = 300.0;
      break;

  case 8: 
      label = "fEPV0 event plane";
      nbins = 72;
      xmin = -TMath::Pi()/2.0;
      xmax = TMath::Pi()/2.0;
      break;

   } // end of switch
} // end of getting dim-params

//________________________________________________________________________
Int_t AliAnalysisTaskEmcalJetPatchTriggerQA::AcceptMyJet(AliEmcalJet *jet) {
  //applies all jet cuts except pt
  if ((jet->Phi()<fPhimin)||(jet->Phi()>fPhimax)) return 0;
  if ((jet->Eta()<fEtamin)||(jet->Eta()>fEtamax)) return 0;
  if (jet->Area()<fAreacut) return 0;
  // prevents 0 area jets from sneaking by when area cut == 0
  if (jet->Area()==0) return 0;
  //exclude jets with extremely high pt tracks which are likely misreconstructed
  if(jet->MaxTrackPt()>100) return 0;

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