ROOT logo
#include "AliAnalysisTaskEmcalTriggerInfoQA.h"

#include <Riostream.h>
#include <ctime>
#include <TString.h>
#include <TChain.h>
#include <TTree.h>
#include <TH1D.h>
#include <TH2D.h>
#include <TH3D.h>
#include <TCanvas.h>
#include <TList.h>
#include <TLorentzVector.h>
#include <TProfile.h>
#include <TProfile2D.h>
#include <TProfile3D.h>
#include <TRandom.h>
#include <TRandom3.h>

#include "AliAnalysisTaskEmcal.h"
#include "AliAnalysisManager.h"
#include "AliStack.h"
#include "AliESDtrackCuts.h"
#include "AliESDEvent.h"
#include "AliESDInputHandler.h"
#include "AliAODEvent.h"
#include "AliMCEvent.h"
#include "AliEmcalJet.h"
#include "AliEMCALGeometry.h"

#include "AliEmcalTriggerPatchInfo.h"
#include "AliEmcalTriggerSetupInfo.h"

ClassImp(AliAnalysisTaskEmcalTriggerInfoQA)

//________________________________________________________________________
AliAnalysisTaskEmcalTriggerInfoQA::AliAnalysisTaskEmcalTriggerInfoQA() : 
    AliAnalysisTaskEmcal(),
    fOutput(0),
    fHistos(0),
    fTriggersInfo(0),
    fTriggerSetup(0),
    fIsInitialized(kFALSE),
    fCaloTriggerPatchInfoName("EmcalTriggers"),
    fCaloTriggerSetupInfoName("EmcalTriggerSetup")
{
}

//________________________________________________________________________
AliAnalysisTaskEmcalTriggerInfoQA::AliAnalysisTaskEmcalTriggerInfoQA(const char *name) :
    AliAnalysisTaskEmcal(name),
    fOutput(0),
    fHistos(0),
    fTriggersInfo(0),
    fTriggerSetup(0),
    fIsInitialized(kFALSE),
    fCaloTriggerPatchInfoName("EmcalTriggers"),
    fCaloTriggerSetupInfoName("EmcalTriggerSetup")
{
    DefineOutput(1,TList::Class());  // for output list
}

//________________________________________________________________________
AliAnalysisTaskEmcalTriggerInfoQA::~AliAnalysisTaskEmcalTriggerInfoQA()
{
//   // Destructor. Clean-up the output list, but not the histograms that are put inside
//   // (the list is owner and will clean-up these histograms). Protect in PROOF case.
//     if (fHistos && !AliAnalysisManager::GetAnalysisManager()->IsProofMode())
//     {
//         delete fOutput;
//     }
//     delete fTrackCuts;
}

//________________________________________________________________________
void AliAnalysisTaskEmcalTriggerInfoQA::UserCreateOutputObjects()
{
  Int_t i;
  
  // Create histograms
  // Called once (on the worker node)
  fIsInitialized=kFALSE;
  fOutput = new TList();
  fOutput->SetOwner();  // IMPORTANT!

  char buf[100];
  char strId[3][10];
  sprintf( strId[0], "JetLow" );
  sprintf( strId[1], "JetHigh" );
  sprintf( strId[2], "JetMain" );

  fHistos = new TH1*[5000];

  for( i = 0; i < 100; i++ )
    fHistos[i] = 0;
  
  sprintf( buf, "fhPatchNTotal" );
  fHistos[0] = new TH1D( buf, buf, 200, -0.5, 199.5 );
  fHistos[0]->SetXTitle( "N_{patch} in event" );
  fHistos[0]->SetYTitle( "N" );

  // common histos
  for( i = 0; i < 3; i++ ){
    
    sprintf( buf, "fhPatchN%s", strId[i] );
    fHistos[1000*(i+1)+0] = new TH1D( buf, buf, 200, -0.5, 199.5 );
    fHistos[1000*(i+1)+0]->SetXTitle( "N_{patch} in event" );
    fHistos[1000*(i+1)+0]->SetYTitle( "N" );

    sprintf( buf, "fhThreshold%s", strId[i] );
    fHistos[1000*(i+1)+1] = new TH1D( buf, buf, 500, -0.5, 2999.5 );
    fHistos[1000*(i+1)+1]->SetXTitle( "thresholds [ADC]" );
    fHistos[1000*(i+1)+1]->SetYTitle( "N" );

    sprintf( buf, "fhThresholdGeV%s", strId[i] );
    fHistos[1000*(i+1)+2] = new TH1D( buf, buf, 500, 0, 250 );
    fHistos[1000*(i+1)+2]->SetXTitle( "thresholds [GeV]" );
    fHistos[1000*(i+1)+2]->SetYTitle( "N" );
  
    sprintf( buf, "fhADCPatch%s", strId[i] );
    fHistos[1000*(i+1)+3] = new TH1D( buf, buf, 500, -0.5, 2999.5 );
    fHistos[1000*(i+1)+3]->SetXTitle( "E [ADC]" );
    fHistos[1000*(i+1)+3]->SetYTitle( "N" );

    sprintf( buf, "fhADCPatchGeV%s", strId[i] );
    fHistos[1000*(i+1)+4] = new TH1D( buf, buf, 500, 0, 250 );
    fHistos[1000*(i+1)+4]->SetXTitle( "E [GeV]" );
    fHistos[1000*(i+1)+4]->SetYTitle( "N" );
  
    sprintf( buf, "fhECells%s", strId[i] );
    fHistos[1000*(i+1)+5] = new TH1D( buf, buf, 500, 0, 250 );
    fHistos[1000*(i+1)+5]->SetXTitle( "E cells [GeV]" );
    fHistos[1000*(i+1)+5]->SetYTitle( "N" );
  
    sprintf( buf, "fhPatchSpacial%s", strId[i] );
    fHistos[1000*(i+1)+6] = new TH2D( buf, buf, 9, -0.5, 8.5,
                                                13, -0.5, 12.5 );
    fHistos[1000*(i+1)+6]->SetXTitle( "cells in -eta [8 cells]" );
    fHistos[1000*(i+1)+6]->SetYTitle( "cells in phi [8 cells]" );
    fHistos[1000*(i+1)+6]->SetOption( "COLZ" );
    fHistos[1000*(i+1)+6]->SetStats( kFALSE );
    
    sprintf( buf, "fhPatchSpacialADC%s", strId[i] );
    fHistos[1000*(i+1)+7] = new TH2D( buf, buf, 9, -0.5, 8.5,
                                                13, -0.5, 12.5 );
    fHistos[1000*(i+1)+7]->SetXTitle( "cells in -eta [8 cells]" );
    fHistos[1000*(i+1)+7]->SetYTitle( "cells in phi [8 cells]" );
    fHistos[1000*(i+1)+7]->SetOption( "COLZ" );
    fHistos[1000*(i+1)+7]->SetStats( kFALSE );

    sprintf( buf, "fhPatchSpacialECells%s", strId[i] );
    fHistos[1000*(i+1)+8] = new TH2D( buf, buf, 9, -0.5, 8.5,
                                                13, -0.5, 12.5 );
    fHistos[1000*(i+1)+8]->SetXTitle( "cells in -eta [8 cells]" );
    fHistos[1000*(i+1)+8]->SetYTitle( "cells in phi [8 cells]" );
    fHistos[1000*(i+1)+8]->SetOption( "COLZ" );
    fHistos[1000*(i+1)+8]->SetStats( kFALSE );

    sprintf( buf, "fhPatchCenter%s", strId[i] );
    fHistos[1000*(i+1)+9] = new TH2D( buf, buf, 100, -0.7, 0.7,
                                                100, 0, TMath::Pi()*2 );
    fHistos[1000*(i+1)+9]->SetXTitle( "#eta" );
    fHistos[1000*(i+1)+9]->SetYTitle( "#phi [rad]" );
    fHistos[1000*(i+1)+9]->SetOption( "COLZ" );
    fHistos[1000*(i+1)+9]->SetStats( kFALSE );
    
    sprintf( buf, "fhPatchCenterMass%s", strId[i] );
    fHistos[1000*(i+1)+10] = new TH2D( buf, buf, 100, -0.7, 0.7,
                                                100, 0, TMath::Pi()*2 );
    fHistos[1000*(i+1)+10]->SetXTitle( "#eta" );
    fHistos[1000*(i+1)+10]->SetYTitle( "#phi [rad]" );
    fHistos[1000*(i+1)+10]->SetOption( "COLZ" );
    fHistos[1000*(i+1)+10]->SetStats( kFALSE );
  
    sprintf( buf, "fhEInPatchSpacial%s", strId[i] );
    fHistos[1000*(i+1)+11] = new TH2D( buf, buf, 32, -0.5, 31.5,
                                                32, -0.5, 31.5 );
    fHistos[1000*(i+1)+11]->SetXTitle( "cells in -eta" );
    fHistos[1000*(i+1)+11]->SetYTitle( "cells in phi" );
    fHistos[1000*(i+1)+11]->SetOption( "COLZ" );
    fHistos[1000*(i+1)+11]->SetStats( kFALSE );

    sprintf( buf, "fhADCvsEcells%s", strId[i] );
    fHistos[1000*(i+1)+12] = new TH2D( buf, buf,  500, -0.5, 2999.5,
                                                500, 0, 250 );
    fHistos[1000*(i+1)+12]->SetXTitle( "E [ADC]" );
    fHistos[1000*(i+1)+12]->SetYTitle( "E cells [GeV]" );
    fHistos[1000*(i+1)+12]->SetOption( "COLZ" );
    fHistos[1000*(i+1)+12]->SetStats( kFALSE );

  }

  for( i = 0; i < 5000; i++ )
    if( fHistos[i] != 0 )
      fOutput->Add( fHistos[i] );
    
 
  // Post data for ALL output slots >0 here,
  // To get at least an empty histogram
  // 1 is the outputnumber of a certain weg of task 1
  PostData(1, fOutput);
}

void AliAnalysisTaskEmcalTriggerInfoQA::UserExecOnce()
{
  AliAnalysisTaskEmcal::ExecOnce();

  // Get the event tracks from PicoTracks
  fTriggersInfo =dynamic_cast <TClonesArray*>(InputEvent()->FindListObject( fCaloTriggerPatchInfoName.Data() ));
  
  fTriggerSetup = dynamic_cast <AliEmcalTriggerSetupInfo*>(InputEvent()->FindListObject( fCaloTriggerSetupInfoName.Data() ));
    
  fIsInitialized=kTRUE;
}
//________________________________________________________________________
void AliAnalysisTaskEmcalTriggerInfoQA::UserExec(Option_t *) 
{
  Int_t nPatch, iPatch, iMainPatch, nJetLow, nJetHigh, type;
  AliEmcalTriggerPatchInfo *patch;
  
  if (fIsInitialized==kFALSE)
    UserExecOnce();

    
  if( !fTriggersInfo ){
    AliError(Form("Calo triggers info container %s not available.", fCaloTriggerPatchInfoName.Data()));
    return;
  }
  if( !fTriggerSetup ){
    AliError(Form("Calo trigger setup info container %s not available.", fCaloTriggerSetupInfoName.Data()));
    return;
  }
  if( !fCaloCells ){
    AliError(Form("Calo cells container %s not available.", fCaloCellsName.Data()));
    return;
  }
  
  // first get the thresholds
  fHistos[1000+1]->Fill( fTriggerSetup->GetThresholdJetLow() );
  fHistos[2000+1]->Fill( fTriggerSetup->GetThresholdJetHigh() );
  fHistos[1000+2]->Fill( fTriggerSetup->GetThresholdGeVRoughJetLow() );
  fHistos[2000+2]->Fill( fTriggerSetup->GetThresholdGeVRoughJetHigh() );
  
  // now go through patchs
  nPatch = fTriggersInfo->GetEntries();
  
  fHistos[0]->Fill( nPatch );
  
  nJetLow = 0;
  nJetHigh = 0;
  iMainPatch = -1;
  
  for( iPatch = 0; iPatch < nPatch; iPatch++ ){
    
    patch = (AliEmcalTriggerPatchInfo*)fTriggersInfo->At( iPatch );
    
    // check if high/low threshold
    // high overrides the low, to avoid double counting
    type = -1;
    if( patch->IsJetHigh() ){
      type = 1;
      nJetHigh++;
    }
    else if( patch->IsJetLow() ){
      type = 0;
      nJetLow++;
    }
    
    if( type == -1 )
      continue;
    
    FillPatch( patch, type );
    
    // save main pach position
    if( patch->IsMainTrigger() )
      iMainPatch = iPatch;

  } // patches
  
  // fill jet counts per event
  fHistos[1000]->Fill( nJetLow );
  fHistos[2000]->Fill( nJetHigh );
  
  //  main trigger patch check -----------------------------
  if( iMainPatch == -1 ){
      // count of patches
      fHistos[3000]->Fill( 0 );
  }
  else{
    patch = (AliEmcalTriggerPatchInfo*)fTriggersInfo->At( iMainPatch );
    
    fHistos[3000]->Fill( 1 );
    
    // what threshold was the main trigger taken with
    if( patch->IsJetHigh() ){
      fHistos[3000+1]->Fill( fTriggerSetup->GetThresholdJetHigh() );
      fHistos[3000+2]->Fill( fTriggerSetup->GetThresholdGeVRoughJetHigh() );
    }
    else{
      fHistos[3000+1]->Fill( fTriggerSetup->GetThresholdJetLow() );
      fHistos[3000+2]->Fill( fTriggerSetup->GetThresholdGeVRoughJetLow() );
    }
    
    FillPatch( patch, 2 );
  }

  PostData(1, fOutput);
}


//________________________________________________________________________
void AliAnalysisTaskEmcalTriggerInfoQA::FillPatch( AliEmcalTriggerPatchInfo *patch, Int_t type ){
  
  // fills the patch parameters
  
  Int_t globCol, globRow, i, j, k, absId, cellAbsId[4];;
  
  // patch energies
  fHistos[1000*(type+1)+3]->Fill( patch->GetADCAmp() );
  fHistos[1000*(type+1)+4]->Fill( patch->GetADCAmpGeVRough() );
  fHistos[1000*(type+1)+5]->Fill( patch->GetPatchE() );
  
  //cout << "amp: " << patch->GetADCAmp() << endl;
  
  // get corner, convert from cells to trigger channels
  globCol = patch->GetEdgeCellX() / 2;
  globRow = patch->GetEdgeCellY() / 2;
  
  // fill in patch steps (8 cells = 4 trigger channels)
  ((TH2D*)fHistos[1000*(type+1)+6])->Fill( globCol/4, globRow/4 );
  ((TH2D*)fHistos[1000*(type+1)+7])->Fill( globCol/4, globRow/4, patch->GetADCAmp() );
  ((TH2D*)fHistos[1000*(type+1)+8])->Fill( globCol/4, globRow/4, patch->GetPatchE() );
  
  ((TH2D*)fHistos[1000*(type+1)+12])->Fill( patch->GetADCAmp(), patch->GetPatchE() );

  // phi/eta
  ((TH2D*)fHistos[1000*(type+1)+9])->Fill( patch->GetEtaGeo(), patch->GetPhiGeo() );
  ((TH2D*)fHistos[1000*(type+1)+10])->Fill( patch->GetEtaCM(), patch->GetPhiCM() );

  // E inside patch distribution
  // get the absolute trigger ID
  fGeom->GetAbsFastORIndexFromPositionInEMCAL( globCol, globRow, absId );
  // convert to the 4 absId of the cells composing the trigger channel
  fGeom->GetCellIndexFromFastORIndex( absId, cellAbsId );
  
  // sum the available energy in the 32/32 window of cells
  // step over trigger channels and get all the corresponding cells
  for( i = 0; i < 16; i++ ){
    for( j = 0; j < 16; j++ ){
      // get the 4 cells composing the trigger channel
      fGeom->GetAbsFastORIndexFromPositionInEMCAL( globCol+i, globRow+j, absId );
      fGeom->GetCellIndexFromFastORIndex( absId, cellAbsId );
      // add amplitudes and find patch edges
      for( k = 0; k < 4; k++ ){
        ((TH2D*)fHistos[1000*(type+1)+11])->Fill( i*2+k%2, j*2+k/2,
                          fCaloCells->GetCellAmplitude( cellAbsId[k] ));
      }
    }
  } // 32x32 cell window
 
}

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