ROOT logo
// $Id$
//
// High multiplicity pp trigger analysis task.
//
// Author: M. Verweij

#include <TClonesArray.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TH3F.h>
#include <TList.h>
#include <TLorentzVector.h>

#include "AliLog.h"
#include "AliEmcalTriggerPatchInfo.h"
#include "AliParticleContainer.h"
#include "AliVVZERO.h"

#include "AliAnalysisTaskEmcalHighMultTrigger.h"

ClassImp(AliAnalysisTaskEmcalHighMultTrigger)

//________________________________________________________________________
AliAnalysisTaskEmcalHighMultTrigger::AliAnalysisTaskEmcalHighMultTrigger() : 
  AliAnalysisTaskEmcalJet("AliAnalysisTaskEmcalHighMultTrigger", kTRUE),
  fNExLP(1),
  fNAccPatches(-1),
  fMedianEnergy(0),
  fMedianEnergyExLP(0),
  fSumEnergy(0),
  fSumEnergyExLP(0),
  fTruncatedMean(0),
  fTruncateThreshold(6.),
  fHistPatchEtaPhiE(0),
  fHistEnergyMedian(0),
  fHistEnergyMedianExLP(0),
  fHistEnergySum(0),
  fHistEnergySumExLP(0),
  fHistTruncatedMean(0),
  fHistTracks(0),
  fHistTracklets(0),
  fHistV0MultSum(0),
  fHistTracksTracklets(0),
  fHistTracksV0MultSum(0),
  fHistSPDTrkClsSum(0),
  fHistSPDTrkClsSumExLP(0),
  fHistSPDTrkClsMedian(0),
  fHistSPDTrkClsMedianExLP(0),
  fHistSPDTrkClsTruncMean(0)
{
  // Default constructor.

  const Int_t nMultEst = 3;
  for(Int_t i = 0; i<nMultEst; i++) {
    fHistEnergyMedianEst[i] = 0;
    fHistEnergyMedianExLPEst[i] = 0;
    fHistEnergySumEst[i] = 0;
    fHistEnergySumExLPEst[i] = 0;
    fHistEnergySumAvgEst[i] = 0;
    fHistEnergySumAvgExLPEst[i] = 0;
    fHistTruncatedMeanEst[i] = 0;
  }

  SetMakeGeneralHistograms(kTRUE);
}

//________________________________________________________________________
AliAnalysisTaskEmcalHighMultTrigger::AliAnalysisTaskEmcalHighMultTrigger(const char *name) : 
  AliAnalysisTaskEmcalJet(name, kTRUE),
  fNExLP(1),
  fNAccPatches(-1),
  fMedianEnergy(0),
  fMedianEnergyExLP(0),
  fSumEnergy(0),
  fSumEnergyExLP(0),
  fTruncatedMean(0),
  fTruncateThreshold(6.),
  fHistPatchEtaPhiE(0),
  fHistEnergyMedian(0),
  fHistEnergyMedianExLP(0),
  fHistEnergySum(0),
  fHistEnergySumExLP(0),
  fHistTruncatedMean(0),
  fHistTracks(0),
  fHistTracklets(0),
  fHistV0MultSum(0),
  fHistTracksTracklets(0),
  fHistTracksV0MultSum(0),
  fHistSPDTrkClsSum(0),
  fHistSPDTrkClsSumExLP(0),
  fHistSPDTrkClsMedian(0),
  fHistSPDTrkClsMedianExLP(0),
  fHistSPDTrkClsTruncMean(0)
{
  // Standard constructor.

  const Int_t nMultEst = 3;
  for(Int_t i = 0; i<nMultEst; i++) {
    fHistEnergyMedianEst[i] = 0;
    fHistEnergyMedianExLPEst[i] = 0;
    fHistEnergySumEst[i] = 0;
    fHistEnergySumExLPEst[i] = 0;
    fHistEnergySumAvgEst[i] = 0;
    fHistEnergySumAvgExLPEst[i] = 0;
    fHistTruncatedMeanEst[i] = 0;
  }

  SetMakeGeneralHistograms(kTRUE);
}

//________________________________________________________________________
AliAnalysisTaskEmcalHighMultTrigger::~AliAnalysisTaskEmcalHighMultTrigger()
{
  // Destructor.
}

//________________________________________________________________________
void AliAnalysisTaskEmcalHighMultTrigger::UserCreateOutputObjects()
{
  // Create user output.

  AliAnalysisTaskEmcalJet::UserCreateOutputObjects();

  Int_t nE = 500;
  Double_t minE = 0.;
  Double_t maxE = 50.;

  TString histName = "";
  TString histTitle = "";

  histName = Form("fHistPatchEtaPhiE");
  histTitle = Form("%s;#eta;#phi;E",histName.Data());
  fHistPatchEtaPhiE = new TH3F(histName.Data(),histTitle.Data(),100,-1.,1.,18*8,0.,TMath::TwoPi(),100,0.,100.);
  fOutput->Add(fHistPatchEtaPhiE);

  histName = Form("fHistEnergyMedian");
  histTitle = Form("%s;med[#it{E}]",histName.Data());
  fHistEnergyMedian = new TH1F(histName.Data(),histTitle.Data(),nE,minE,maxE/4.);
  fOutput->Add(fHistEnergyMedian);

  histName = Form("fHistEnergyMedianExLP");
  histTitle = Form("%s;med[#it{E}]",histName.Data());
  fHistEnergyMedianExLP = new TH1F(histName.Data(),histTitle.Data(),nE,minE,maxE/4.);
  fOutput->Add(fHistEnergyMedianExLP);

  histName = Form("fHistEnergySum");
  histTitle = Form("%s;#sum[#it{E}]",histName.Data());
  fHistEnergySum = new TH1F(histName.Data(),histTitle.Data(),nE,minE,maxE);
  fOutput->Add(fHistEnergySum);

  histName = Form("fHistEnergySumExLP");
  histTitle = Form("%s;#sum[#it{E}]",histName.Data());
  fHistEnergySumExLP = new TH1F(histName.Data(),histTitle.Data(),nE,minE,maxE);
  fOutput->Add(fHistEnergySumExLP);

  histName = Form("fHistTruncatedMean");
  histTitle = Form("%s;#sum[#it{E}]",histName.Data());
  fHistTruncatedMean = new TH1F(histName.Data(),histTitle.Data(),nE,minE,maxE/4.);
  fOutput->Add(fHistTruncatedMean);

  histName = Form("fHistTracks");
  histTitle = Form("%s;#it{N}_{tracks}",histName.Data());
  fHistTracks = new TH1F(histName.Data(),histTitle.Data(),300,0.,300.);
  fOutput->Add(fHistTracks);

  histName = Form("fHistTracklets");
  histTitle = Form("%s;#it{N}_{tracklets}",histName.Data());
  fHistTracklets = new TH1F(histName.Data(),histTitle.Data(),300,0.,300.);
  fOutput->Add(fHistTracklets);

  histName = Form("fHistV0MultSum");
  histTitle = Form("%s;mult[V0A+V0C]",histName.Data());
  fHistV0MultSum = new TH1F(histName.Data(),histTitle.Data(),500,0.,500.);
  fOutput->Add(fHistV0MultSum);

  const Int_t nMultEst = 3;
  Int_t nBinsMultEst[nMultEst] = {300,200,500};
  Double_t multEstMax[nMultEst] = {300.,200.,500.};
  TString strMultEst[nMultEst] = {"Tracks","Tracklets","V0MultSum"};
  for(Int_t i = 0; i<nMultEst; i++) {
    histName = Form("fHistEnergyMedianEst%s",strMultEst[i].Data());
    histTitle = Form("%s;med[#it{E}];%s",histName.Data(),strMultEst[i].Data());
    fHistEnergyMedianEst[i] = new TH2F(histName.Data(),histTitle.Data(),nE,minE,maxE/4.,nBinsMultEst[i],0.,multEstMax[i]);
    fOutput->Add(fHistEnergyMedianEst[i]);

    histName = Form("fHistEnergyMedianExLPEst%s",strMultEst[i].Data());
    histTitle = Form("%s;med[#it{E}];%s",histName.Data(),strMultEst[i].Data());
    fHistEnergyMedianExLPEst[i] = new TH2F(histName.Data(),histTitle.Data(),nE,minE,maxE/4.,nBinsMultEst[i],0.,multEstMax[i]);
    fOutput->Add(fHistEnergyMedianExLPEst[i]);

    histName = Form("fHistEnergySumEst%s",strMultEst[i].Data());
    histTitle = Form("%s;#sum[#it{E}];%s",histName.Data(),strMultEst[i].Data());
    fHistEnergySumEst[i] = new TH2F(histName.Data(),histTitle.Data(),nE,minE,maxE,nBinsMultEst[i],0.,multEstMax[i]);
    fOutput->Add(fHistEnergySumEst[i]);

    histName = Form("fHistEnergySumExLPEst%s",strMultEst[i].Data());
    histTitle = Form("%s;#sum[#it{E}];%s",histName.Data(),strMultEst[i].Data());
    fHistEnergySumExLPEst[i] = new TH2F(histName.Data(),histTitle.Data(),nE,minE,maxE,nBinsMultEst[i],0.,multEstMax[i]);
    fOutput->Add(fHistEnergySumExLPEst[i]);

    histName = Form("fHistEnergySumAvgEst%s",strMultEst[i].Data());
    histTitle = Form("%s;#sum[#it{E}];%s",histName.Data(),strMultEst[i].Data());
    fHistEnergySumAvgEst[i] = new TH2F(histName.Data(),histTitle.Data(),nE,minE,maxE/4.,nBinsMultEst[i],0.,multEstMax[i]);
    fOutput->Add(fHistEnergySumAvgEst[i]);

    histName = Form("fHistEnergySumAvgExLPEst%s",strMultEst[i].Data());
    histTitle = Form("%s;#sum[#it{E}];%s",histName.Data(),strMultEst[i].Data());
    fHistEnergySumAvgExLPEst[i] = new TH2F(histName.Data(),histTitle.Data(),nE,minE,maxE/4.,nBinsMultEst[i],0.,multEstMax[i]);
    fOutput->Add(fHistEnergySumAvgExLPEst[i]);

    histName = Form("fHistTruncatedMeanEst%s",strMultEst[i].Data());
    histTitle = Form("%s;#LT#it{E}#GT_{trunc};%s",histName.Data(),strMultEst[i].Data());
    fHistTruncatedMeanEst[i] = new TH2F(histName.Data(),histTitle.Data(),nE,minE,maxE/4.,nBinsMultEst[i],0.,multEstMax[i]);
    fOutput->Add(fHistTruncatedMeanEst[i]);
  }

  histName = Form("fHistTracksTracklets");
  histTitle = Form("%s;%s;%s",histName.Data(),strMultEst[0].Data(),strMultEst[1].Data());
  fHistTracksTracklets = new TH2F(histName.Data(),histTitle.Data(),nBinsMultEst[0],0.,multEstMax[0],nBinsMultEst[1],0.,multEstMax[1]);
  fOutput->Add(fHistTracksTracklets);

  histName = Form("fHistTracksV0MultSum");
  histTitle = Form("%s;%s;%s",histName.Data(),strMultEst[0].Data(),strMultEst[2].Data());
  fHistTracksV0MultSum = new TH2F(histName.Data(),histTitle.Data(),nBinsMultEst[0],0.,multEstMax[0],nBinsMultEst[2],0.,multEstMax[2]);
  fOutput->Add(fHistTracksV0MultSum);

  histName = Form("fHistSPDTrkClsSum");
  histTitle = Form("%s;#it{N}_{tracklets,SPD};#it{N}_{clusters,SPD};#sum[#it{E}]",histName.Data());
  fHistSPDTrkClsSum = new TH3F(histName.Data(),histTitle.Data(),nBinsMultEst[1],0.,multEstMax[1],200,0.,1000.,nE,minE,maxE);
  fOutput->Add(fHistSPDTrkClsSum);

  histName = Form("fHistSPDTrkClsSumExLP");
  histTitle = Form("%s;#it{N}_{tracklets,SPD};#it{N}_{clusters,SPD};#sum[#it{E}]",histName.Data());
  fHistSPDTrkClsSumExLP = new TH3F(histName.Data(),histTitle.Data(),nBinsMultEst[1],0.,multEstMax[1],200,0.,1000.,nE,minE,maxE);
  fOutput->Add(fHistSPDTrkClsSumExLP);

  histName = Form("fHistSPDTrkClsMedian");
  histTitle = Form("%s;#it{N}_{tracklets,SPD};#it{N}_{clusters,SPD};med[#it{E}]",histName.Data());
  fHistSPDTrkClsMedian = new TH3F(histName.Data(),histTitle.Data(),nBinsMultEst[1],0.,multEstMax[1],200,0.,1000.,nE,minE,maxE/4.);
  fOutput->Add(fHistSPDTrkClsMedian);

  histName = Form("fHistSPDTrkClsMedianExLP");
  histTitle = Form("%s;#it{N}_{tracklets,SPD};#it{N}_{clusters,SPD};med[#it{E}]",histName.Data());
  fHistSPDTrkClsMedianExLP = new TH3F(histName.Data(),histTitle.Data(),nBinsMultEst[1],0.,multEstMax[1],200,0.,1000.,nE,minE,maxE/4.);
  fOutput->Add(fHistSPDTrkClsMedianExLP);

  histName = Form("fHistSPDTrkClsTruncMean");
  histTitle = Form("%s;#it{N}_{tracklets,SPD};#it{N}_{clusters,SPD};#LT#it{E}#GT_{trunc}",histName.Data());
  fHistSPDTrkClsTruncMean = new TH3F(histName.Data(),histTitle.Data(),nBinsMultEst[1],0.,multEstMax[1],200,0.,1000.,nE,minE,maxE/4.);
  fOutput->Add(fHistSPDTrkClsTruncMean);

  PostData(1, fOutput); // Post data for ALL output slots > 0 here.
}

//________________________________________________________________________
Bool_t AliAnalysisTaskEmcalHighMultTrigger::FillHistograms()
{
  // Fill histograms.

  fHistEnergyMedian->Fill(fMedianEnergy);
  fHistEnergyMedianExLP->Fill(fMedianEnergyExLP);
  fHistEnergySum->Fill(fSumEnergy);
  fHistEnergySumExLP->Fill(fSumEnergyExLP);
  fHistTruncatedMean->Fill(fTruncatedMean);

  //Multiplicity estimators
  Int_t nTracks   = -1;
  if (GetParticleContainer(0)) nTracks = GetParticleContainer(0)->GetNAcceptedParticles();
  Int_t nTracklets = InputEvent()->GetMultiplicity()->GetNumberOfTracklets();

  AliVVZERO* vV0 = InputEvent()->GetVZEROData();
  Float_t multV0A=vV0->GetMTotV0A();
  Float_t multV0C=vV0->GetMTotV0C();

  fHistTracks->Fill(nTracks);
  fHistTracklets->Fill(nTracklets);
  fHistV0MultSum->Fill(multV0A+multV0C);

  const Int_t nMultEst = 3;
  Float_t multEst[nMultEst] = {(Float_t)(nTracks),(Float_t)(nTracklets),(Float_t)(multV0A+multV0C)};
  for(Int_t i = 0; i<nMultEst; i++) {
    fHistEnergyMedianEst[i]->Fill(fMedianEnergy,multEst[i]);
    fHistEnergyMedianExLPEst[i]->Fill(fMedianEnergyExLP,multEst[i]);
    fHistEnergySumEst[i]->Fill(fSumEnergy,multEst[i]);
    fHistEnergySumExLPEst[i]->Fill(fSumEnergyExLP,multEst[i]);
    if(fNAccPatches>0)
      fHistEnergySumAvgEst[i]->Fill(fSumEnergy/((Double_t)fNAccPatches),multEst[i]);
    if(fNAccPatches>1)
      fHistEnergySumAvgExLPEst[i]->Fill(fSumEnergyExLP/((Double_t)fNAccPatches-1.),multEst[i]);
    fHistTruncatedMeanEst[i]->Fill(fTruncatedMean,multEst[i]);
  }

  fHistTracksTracklets->Fill(multEst[0],multEst[1]);
  fHistTracksV0MultSum->Fill(multEst[0],multEst[2]);

  Int_t nClustersLayer0 = InputEvent()->GetNumberOfITSClusters(0);
  Int_t nClustersLayer1 = InputEvent()->GetNumberOfITSClusters(1);
  fHistSPDTrkClsSum->Fill(multEst[1],(Float_t)(nClustersLayer0+nClustersLayer1),fSumEnergy);
  fHistSPDTrkClsSumExLP->Fill(multEst[1],(Float_t)(nClustersLayer0+nClustersLayer1),fSumEnergyExLP);
  fHistSPDTrkClsMedian->Fill(multEst[1],(Float_t)(nClustersLayer0+nClustersLayer1),fMedianEnergy);
  fHistSPDTrkClsMedianExLP->Fill(multEst[1],(Float_t)(nClustersLayer0+nClustersLayer1),fMedianEnergyExLP);
  fHistSPDTrkClsTruncMean->Fill(multEst[1],(Float_t)(nClustersLayer0+nClustersLayer1),fTruncatedMean);

  return kTRUE;
}

//________________________________________________________________________
void AliAnalysisTaskEmcalHighMultTrigger::ExecOnce() {

  AliAnalysisTaskEmcalJet::ExecOnce();

}

//________________________________________________________________________
Bool_t AliAnalysisTaskEmcalHighMultTrigger::Run()
{
  // Run analysis code here, if needed. It will be executed before FillHistograms().

  if(!fTriggerPatchInfo) {
    AliDebug(11,Form("Couldn't find patch info object %s",fCaloTriggerPatchInfoName.Data()));
    return kFALSE;
  }

  Int_t nPatch = fTriggerPatchInfo->GetEntriesFast();

  //sort patches
  Double_t ptarr[999] = {0};
  Int_t indexes[999] = {0};
  Int_t iacc = 0;
  for(Int_t i = 0; i<nPatch; i++) {
    AliEmcalTriggerPatchInfo *patch = dynamic_cast<AliEmcalTriggerPatchInfo*>(fTriggerPatchInfo->At(i));
    if(!patch) continue;
    if(patch->GetPatchE()>0.) {
      ptarr[iacc] = patch->GetPatchE();
      iacc++;
    }
    fHistPatchEtaPhiE->Fill(patch->GetEtaMin(),patch->GetPhiMin(),patch->GetPatchE());
  }
  
  TMath::Sort(nPatch,ptarr,indexes);
  Double_t ptarrSort[999];
  // Double_t indexesSort[999];
  Double_t ptarrSortExLP[999];
  //  Double_t indexesSortExLP[999];
  for(Int_t i = 0; i<iacc; i++) {
    ptarrSort[i] = ptarr[indexes[i]];
    //  indexesSort[i] = indexes[i];
    if(i>=fNExLP) {
      ptarrSortExLP[i] = ptarr[indexes[i]];
      //  indexesSortExLP[i] = indexes[i];
    }
  }

  //Calculate sum energy 
  fSumEnergy = 0.;
  fSumEnergyExLP = 0.;
  for(Int_t i = 0; i<iacc; i++) {
    fSumEnergy+= ptarr[indexes[i]];
    if(i>=fNExLP)
      fSumEnergyExLP+= ptarr[indexes[i]];
  }

  //calculate median of all and excluding leading patch(es)
  fMedianEnergy = TMath::Median(iacc,ptarrSort);
  fMedianEnergyExLP = TMath::Median(iacc-fNExLP,ptarrSortExLP);
  fNAccPatches = iacc;

  //calculate truncated mean
  Double_t it = 0.;
  Double_t sum = 0.;
  for(Int_t i = 0; i<iacc; i++) {
    if(ptarr[indexes[i]]<fTruncateThreshold) {
      sum+= ptarr[indexes[i]];
      it+=1.;
    }
  }
  if(it>0)
    fTruncatedMean = sum/it;

   return kTRUE;  // If return kFALSE FillHistogram() will NOT be executed.
}

//________________________________________________________________________
void AliAnalysisTaskEmcalHighMultTrigger::Terminate(Option_t *) 
{
  // Called once at the end of the analysis.
}

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