ROOT logo
//
// Jet tagger analysis task.
//
// Author: M.Verweij

#include <TClonesArray.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TH3F.h>
#include <THnSparse.h>
#include <TList.h>
#include <TLorentzVector.h>
#include <TProfile.h>
#include <TChain.h>
#include <TSystem.h>
#include <TFile.h>
#include <TKey.h>

#include "AliVCluster.h"
#include "AliVTrack.h"
#include "AliEmcalJet.h"
#include "AliRhoParameter.h"
#include "AliLog.h"
#include "AliEmcalParticle.h"
#include "AliMCEvent.h"
#include "AliGenPythiaEventHeader.h"
#include "AliAODMCHeader.h"
#include "AliMCEvent.h"
#include "AliAnalysisManager.h"
#include "AliJetContainer.h"
#include "AliParticleContainer.h"

#include "AliAODEvent.h"
#include "AliESDEvent.h"

#include "AliAnalysisTaskEmcalJetTagger.h"

ClassImp(AliAnalysisTaskEmcalJetTagger)

//________________________________________________________________________
AliAnalysisTaskEmcalJetTagger::AliAnalysisTaskEmcalJetTagger() : 
  AliAnalysisTaskEmcalJet("AliAnalysisTaskEmcalJetTagger", kTRUE),
  fJetTaggingType(kTag),
  fJetTaggingMethod(kGeo),
  fContainerBase(0),
  fContainerTag(1),
  fMinFractionShared(0),
  fUseSumw2(0),
  fMatchingDone(0),
  fh3PtJet1VsDeltaEtaDeltaPhi(0),
  fh2PtJet1VsDeltaR(0),
  fh2PtJet2VsFraction(0),
  fh2PtJet1VsLeadPtAllSel(0),
  fh2PtJet1VsLeadPtTagged(0),
  fh2PtJet1VsPtJet2(0),
  fh2PtJet2VsRelPt(0),
  fh3PtJetDEtaDPhiConst(0),
  fh2PtJetDRConst(0),
  fh3PtJetAreaDRConst(0)
{
  // Default constructor.

  fh3PtJet1VsDeltaEtaDeltaPhi  = new TH3F*[fNcentBins];
  fh2PtJet1VsDeltaR            = new TH2F*[fNcentBins];
  fh2PtJet2VsFraction          = new TH2F*[fNcentBins];
  fh2PtJet1VsLeadPtAllSel      = new TH2F*[fNcentBins];
  fh2PtJet1VsLeadPtTagged      = new TH2F*[fNcentBins];
  fh2PtJet1VsPtJet2            = new TH2F*[fNcentBins];
  fh2PtJet2VsRelPt             = new TH2F*[fNcentBins];

  for (Int_t i = 0; i < fNcentBins; i++) {
    fh3PtJet1VsDeltaEtaDeltaPhi[i] = 0;
    fh2PtJet1VsDeltaR[i]           = 0;
    fh2PtJet2VsFraction[i]         = 0;
    fh2PtJet1VsLeadPtAllSel[i]     = 0;
    fh2PtJet1VsLeadPtTagged[i]     = 0;
    fh2PtJet1VsPtJet2[i]           = 0;
    fh2PtJet2VsRelPt[i]            = 0;
  }

  SetMakeGeneralHistograms(kTRUE);
}

//________________________________________________________________________
AliAnalysisTaskEmcalJetTagger::AliAnalysisTaskEmcalJetTagger(const char *name) : 
  AliAnalysisTaskEmcalJet(name, kTRUE),  
  fJetTaggingType(kTag),
  fJetTaggingMethod(kGeo),
  fContainerBase(0),
  fContainerTag(1),
  fMinFractionShared(0),
  fUseSumw2(0),
  fMatchingDone(0),
  fh3PtJet1VsDeltaEtaDeltaPhi(0),
  fh2PtJet1VsDeltaR(0),
  fh2PtJet2VsFraction(0),
  fh2PtJet1VsLeadPtAllSel(0),
  fh2PtJet1VsLeadPtTagged(0),
  fh2PtJet1VsPtJet2(0),
  fh2PtJet2VsRelPt(0),
  fh3PtJetDEtaDPhiConst(0),
  fh2PtJetDRConst(0),
  fh3PtJetAreaDRConst(0)
{
  // Standard constructor.

  fh3PtJet1VsDeltaEtaDeltaPhi = new TH3F*[fNcentBins];
  fh2PtJet1VsDeltaR           = new TH2F*[fNcentBins];
  fh2PtJet2VsFraction         = new TH2F*[fNcentBins];
  fh2PtJet1VsLeadPtAllSel     = new TH2F*[fNcentBins];
  fh2PtJet1VsLeadPtTagged     = new TH2F*[fNcentBins];
  fh2PtJet1VsPtJet2           = new TH2F*[fNcentBins];
  fh2PtJet2VsRelPt            = new TH2F*[fNcentBins];

  for (Int_t i = 0; i < fNcentBins; i++) {
    fh3PtJet1VsDeltaEtaDeltaPhi[i] = 0;
    fh2PtJet1VsDeltaR[i]           = 0;
    fh2PtJet2VsFraction[i]         = 0;
    fh2PtJet1VsLeadPtAllSel[i]     = 0;
    fh2PtJet1VsLeadPtTagged[i]     = 0;
    fh2PtJet1VsPtJet2[i]           = 0;
    fh2PtJet2VsRelPt[i]            = 0;
  }

  SetMakeGeneralHistograms(kTRUE);
}

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

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

  AliAnalysisTaskEmcalJet::UserCreateOutputObjects();

  Bool_t oldStatus = TH1::AddDirectoryStatus();
  TH1::AddDirectory(kFALSE);

  const Int_t nBinsPt          = 250;
  const Int_t nBinsDPhi        = 72;
  const Int_t nBinsDEta        = 100;
  const Int_t nBinsDR          = 50;
  const Int_t nBinsFraction    = 101;

  const Double_t minPt       = -50.;
  const Double_t maxPt       = 200.;
  const Double_t minDPhi     = -0.5;
  const Double_t maxDPhi     =  0.5;
  const Double_t minDEta     = -0.5;
  const Double_t maxDEta     =  0.5;
  const Double_t minDR       =  0.;
  const Double_t maxDR       =  0.5;
  const Double_t minFraction =  -0.005;
  const Double_t maxFraction =  1.005;

  TString histName = "";
  TString histTitle = "";
  for (Int_t i = 0; i < fNcentBins; i++) {

    histName = TString::Format("fh3PtJet1VsDeltaEtaDeltaPhi_%d",i);
    histTitle = TString::Format("%s;#it{p}_{T,jet1};#it{#Delta#eta};#it{#Delta#varphi}",histName.Data());
    fh3PtJet1VsDeltaEtaDeltaPhi[i] = new TH3F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsDEta,minDEta,maxDEta,nBinsDPhi,minDPhi,maxDPhi);
    fOutput->Add(fh3PtJet1VsDeltaEtaDeltaPhi[i]);

    histName = TString::Format("fh2PtJet1VsDeltaR_%d",i);
    histTitle = TString::Format("%s;#it{p}_{T,jet1};#it{#Delta R}",histName.Data());
    fh2PtJet1VsDeltaR[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsDR,minDR,maxDR);
    fOutput->Add(fh2PtJet1VsDeltaR[i]);

    histName = TString::Format("fh2PtJet2VsFraction_%d",i);
    histTitle = TString::Format("%s;#it{p}_{T,jet2};#it{f}_{shared}",histName.Data());
    fh2PtJet2VsFraction[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsFraction,minFraction,maxFraction);
    fOutput->Add(fh2PtJet2VsFraction[i]);

    histName = TString::Format("fh2PtJet1VsLeadPtAllSel_%d",i);
    histTitle = TString::Format("%s;#it{p}_{T,jet1};#it{p}_{T,lead trk}",histName.Data());
    fh2PtJet1VsLeadPtAllSel[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,20,0.,20.);
    fOutput->Add(fh2PtJet1VsLeadPtAllSel[i]);

    histName = TString::Format("fh2PtJet1VsLeadPtTagged_%d",i);
    histTitle = TString::Format("%s;#it{p}_{T,jet1};#it{p}_{T,lead trk}",histName.Data());
    fh2PtJet1VsLeadPtTagged[i] =  new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,20,0.,20.);
    fOutput->Add(fh2PtJet1VsLeadPtTagged[i]);

    histName = TString::Format("fh2PtJet1VsPtJet2_%d",i);
    histTitle = TString::Format("%s;#it{p}_{T,jet1};#it{p}_{T,jet2}",histName.Data());
    fh2PtJet1VsPtJet2[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsPt,minPt,maxPt);
    fOutput->Add(fh2PtJet1VsPtJet2[i]);

    histName = TString::Format("fh2PtJet2VsRelPt_%d",i);
    histTitle = TString::Format("%s;#it{p}_{T,jet2};(#it{p}_{T,jet2}-#it{p}_{T,jet1})/#it{p}_{T,jet1}",histName.Data());
    fh2PtJet2VsRelPt[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,241,-2.41,2.41);
    fOutput->Add(fh2PtJet2VsRelPt[i]);
  }

  fh3PtJetDEtaDPhiConst = new TH3F("fh3PtJetDEtaDPhiConst","fh3PtJetDEtaDPhiConst;pT;#Delta #eta;#Delta #varphi",nBinsPt,minPt,maxPt,nBinsDEta,-1.,1.,nBinsDPhi,-1.,1.);
  fOutput->Add(fh3PtJetDEtaDPhiConst);

  fh2PtJetDRConst = new TH2F("fh2PtJetDRConst","fh2PtJetDRConst;pT;#Delta R",nBinsPt,minPt,maxPt,100,0.,1.);
  fOutput->Add(fh2PtJetDRConst);

  fh3PtJetAreaDRConst = new TH3F("fh3PtJetAreaDRConst","fh3PtJetAreaDRConst;pT;A;#Delta R",nBinsPt,minPt,maxPt,100,0.,1.,100,0.,1.);
  fOutput->Add(fh3PtJetAreaDRConst);

  if(fUseSumw2) {
    // =========== Switch on Sumw2 for all histos ===========
    for (Int_t i=0; i<fOutput->GetEntries(); ++i) {
      TH1 *h1 = dynamic_cast<TH1*>(fOutput->At(i));
      if (h1){
	h1->Sumw2();
	continue;
      }
      THnSparse *hn = dynamic_cast<THnSparse*>(fOutput->At(i));
      if(hn)hn->Sumw2();
    }
  }

  TH1::AddDirectory(oldStatus);

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

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

  MatchJetsGeo(fContainerBase,fContainerTag,0,0.3,3);

  //  if(fJetTaggingMethod==kFraction)

  return kTRUE;
}

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

  AliEmcalJet *jet1 = NULL;
  AliJetContainer *jetCont = GetJetContainer(fContainerBase);
  if(!jetCont) return kFALSE;
  jetCont->ResetCurrentID();
  while((jet1 = jetCont->GetNextAcceptJet())) {
    Double_t ptJet1 =  jet1->Pt() - jetCont->GetRhoVal()*jet1->Area();
    fh2PtJet1VsLeadPtAllSel[fCentBin]->Fill(ptJet1,jet1->MaxTrackPt());

    //fill histo with angle between jet axis and constituents
    for(Int_t icc=0; icc<jet1->GetNumberOfTracks(); icc++) {
      AliVParticle *vp = static_cast<AliVParticle*>(jet1->TrackAt(icc, jetCont->GetParticleContainer()->GetArray()));//fTracks));
      if(!vp) continue;
      Double_t dEta = jet1->Eta()-vp->Eta();
      Double_t dPhi = jet1->Phi()-vp->Phi();
      if(dPhi<TMath::Pi()) dPhi+=TMath::TwoPi();
      if(dPhi>TMath::Pi()) dPhi-=TMath::TwoPi();
      fh3PtJetDEtaDPhiConst->Fill(ptJet1,dEta,dPhi);

      Double_t dR = TMath::Sqrt(dPhi*dPhi+dEta*dEta);
      fh2PtJetDRConst->Fill(ptJet1,dR);
      fh3PtJetAreaDRConst->Fill(ptJet1,jet1->Area(),dR);
    }

    if(jet1->GetTagStatus()<1 && fJetTaggingType==kTag)
      continue;

    AliEmcalJet *jet2 = NULL;
    if(fJetTaggingType==kTag)     jet2 = jet1->GetTaggedJet();
    if(fJetTaggingType==kClosest) jet2 = jet1->ClosestJet();
    if(!jet2) continue;

    Double_t ptJet2 =  jet2->Pt() - GetRhoVal(fContainerTag)*jet2->Area();
    Double_t fraction = jetCont->GetFractionSharedPt(jet1);
    fh2PtJet2VsFraction[fCentBin]->Fill(ptJet2,fraction);

    if(fraction<fMinFractionShared && fJetTaggingType==kClosest)
      continue;

    fh2PtJet1VsLeadPtTagged[fCentBin]->Fill(ptJet1,jet1->MaxTrackPt());
    fh2PtJet1VsPtJet2[fCentBin]->Fill(ptJet1,ptJet2);
    if(ptJet2>0.) fh2PtJet2VsRelPt[fCentBin]->Fill(ptJet2,(ptJet1-ptJet2)/ptJet2);

    Double_t dPhi = GetDeltaPhi(jet1->Phi(),jet2->Phi());
    if(dPhi>TMath::Pi())
      dPhi -= TMath::TwoPi();
    if(dPhi<(-1.*TMath::Pi()))
      dPhi += TMath::TwoPi();  
    
    fh3PtJet1VsDeltaEtaDeltaPhi[fCentBin]->Fill(ptJet1,jet1->Eta()-jet2->Eta(),dPhi);
    fh2PtJet1VsDeltaR[fCentBin]->Fill(ptJet1,GetDeltaR(jet1,jet2));
  }
  return kTRUE;
}

//________________________________________________________________________
void AliAnalysisTaskEmcalJetTagger::ResetTagging(const Int_t c) {

  //Reset tagging of container c

  for(int i = 0;i<GetNJets(c);i++){
    AliEmcalJet *jet = static_cast<AliEmcalJet*>(GetJetFromArray(i, c));
    if(fJetTaggingType==kClosest)
      jet->ResetMatching();
    else if(fJetTaggingType==kTag) {
      jet->SetTaggedJet(0x0);
      jet->SetTagStatus(-1);
    }
  }
}

//________________________________________________________________________
void AliAnalysisTaskEmcalJetTagger::MatchJetsGeo(Int_t c1, Int_t c2,
						 Int_t iDebug, Float_t maxDist, Int_t type, Bool_t bReset) {

  //
  // Match the full jets to the corresponding charged jets
  // Translation of AliAnalysisHelperJetTasks::GetClosestJets to AliEmcalJet objects
  // type: 
  //         0 = use acceptance cuts of container  
  //         1 = allow 0.1 one more for c2 in eta 
  //         2 = allow 0.1 more in eta and phi for c2
  //         3 = allow 0.1 in eta and phi for both containers

  if(c1<0) c1 = fContainerBase;
  if(c2<0) c2 = fContainerTag;

  const Int_t nJets1 = GetNJets(c1);
  const Int_t nJets2 = GetNJets(c2);

  if(nJets1==0 || nJets2==0) return;

  if(bReset) {
    ResetTagging(c1);
    ResetTagging(c2);
  }
  fMatchingDone = kFALSE;

  TArrayI faMatchIndex1;
  faMatchIndex1.Set(nJets2+1);
  faMatchIndex1.Reset(-1);

  TArrayI faMatchIndex2;
  faMatchIndex2.Set(nJets1+1);
  faMatchIndex2.Reset(-1);

  static TArrayS iFlag(nJets1*nJets2);
  if(iFlag.GetSize()<(nJets1*nJets2)){
    iFlag.Set(nJets1*nJets2+1);
  }
  iFlag.Reset(0);


  AliJetContainer *cont1 = GetJetContainer(c1);
  AliJetContainer *cont2 = GetJetContainer(c2);
  if(type==1)
    cont2->SetJetEtaLimits(cont2->GetJetEtaMin()-0.1,cont2->GetJetEtaMax()+0.1);
  else if(type==2) {
    cont2->SetJetEtaLimits(cont2->GetJetEtaMin()-0.1,cont2->GetJetEtaMax()+0.1);
    cont2->SetJetPhiLimits(cont2->GetJetPhiMin()-0.1,cont2->GetJetPhiMax()+0.1);
  } 
  else if(type==3) {
    cont1->SetJetEtaLimits(cont1->GetJetEtaMin()-0.1,cont1->GetJetEtaMax()+0.1);
    cont1->SetJetPhiLimits(cont1->GetJetPhiMin()-0.1,cont1->GetJetPhiMax()+0.1);
    cont2->SetJetEtaLimits(cont2->GetJetEtaMin()-0.1,cont2->GetJetEtaMax()+0.1);
    cont2->SetJetPhiLimits(cont2->GetJetPhiMin()-0.1,cont2->GetJetPhiMax()+0.1);
  }

  // find the closest distance to the full jet
  for(int i = 0;i<nJets1;i++){

    AliEmcalJet *jet1 = static_cast<AliEmcalJet*>(GetAcceptJetFromArray(i, c1));
    if(!jet1) continue;

    Float_t dist = maxDist;
    
    for(int j = 0;j <nJets2; j++){
      AliEmcalJet *jet2 = static_cast<AliEmcalJet*>(GetAcceptJetFromArray(j, c2));
      if(!jet2) continue;

      Double_t dR = jet1->DeltaR(jet2);//GetDeltaR(jet1,jet2);
      if(dR<dist && dR<maxDist){
	faMatchIndex2[i]=j;
	dist = dR;
      }
    }//j jet loop
    if(faMatchIndex2[i]>=0) {
      iFlag[i*nJets2+faMatchIndex2[i]]+=1;//j closest to i
      if(iDebug>10) Printf("Full Distance (%d)--(%d) %3.3f flag[%d] = %d",i,faMatchIndex2[i],dist,i*nJets2+faMatchIndex2[i],iFlag[i*nJets2+faMatchIndex2[i]]);
    }
  
  }//i jet loop


  // other way around
  for(int j = 0;j<nJets2;j++){
    AliEmcalJet *jet2 = static_cast<AliEmcalJet*>(GetAcceptJetFromArray(j, c2));
    if(!jet2)
      continue;

    Float_t dist = maxDist;
    for(int i = 0;i<nJets1;i++){
      AliEmcalJet *jet1 = static_cast<AliEmcalJet*>(GetAcceptJetFromArray(i, c1));
      if(!jet1)	continue;

      Double_t dR = jet1->DeltaR(jet2);//GetDeltaR(jet1,jet2); 
      if(dR<dist && dR<maxDist){
	faMatchIndex1[j]=i;
        dist = dR;
      }   
    }
    if(faMatchIndex1[j]>=0) {
      iFlag[faMatchIndex1[j]*nJets2+j]+=2;//i closest to j
      if(iDebug>10) Printf("Other way Distance (%d)--(%d) %3.3f flag[%d] = %d",faMatchIndex1[j],j,dist,faMatchIndex1[j]*nJets2+j,iFlag[faMatchIndex1[j]*nJets2+j]);
    }

  }
    
  // check for "true" correlations
  for(int i = 0;i<nJets1;i++){
    AliEmcalJet *jet1 = static_cast<AliEmcalJet*>(GetJetFromArray(i, c1));
    for(int j = 0;j<nJets2;j++){
      AliEmcalJet *jet2 = static_cast<AliEmcalJet*>(GetJetFromArray(j, c2));
      AliDebug(11,Form("%s: Flag[%d][%d] %d ",GetName(),i,j,iFlag[i*nJets2+j]));
      
      // we have a uniqe correlation
      if(iFlag[i*nJets2+j]==3){
	
	Double_t dR = jet1->DeltaR(jet2);//GetDeltaR(jet1,jet2); 
	if(iDebug>1) Printf("closest jets %d  %d  dR =  %f",j,i,dR);
	
	if(fJetTaggingType==kTag) {
	  jet1->SetTaggedJet(jet2);
	  jet1->SetTagStatus(1);
	  
	  jet2->SetTaggedJet(jet1);
	  jet2->SetTagStatus(1);
	}
	else if(fJetTaggingType==kClosest) {
	  jet1->SetClosestJet(jet2,dR);
	  jet2->SetClosestJet(jet1,dR);
	}
      }
    }
  }
  fMatchingDone = kTRUE;
}

//________________________________________________________________________
Double_t AliAnalysisTaskEmcalJetTagger::GetDeltaR(const AliEmcalJet* jet1, const AliEmcalJet* jet2) const {
  //
  // Helper function to calculate the distance between two jets
  //

  Double_t dPhi = jet1->Phi() - jet2->Phi();
  if(dPhi>TMath::Pi())
    dPhi -= TMath::TwoPi();
  if(dPhi<(-1.*TMath::Pi()))
    dPhi += TMath::TwoPi();
  Double_t dEta = jet1->Eta() - jet2->Eta();
  Double_t dR = TMath::Sqrt(dPhi*dPhi+dEta*dEta);
  return dR;
}

//________________________________________________________________________
Double_t AliAnalysisTaskEmcalJetTagger::GetDeltaPhi(const AliEmcalJet* jet1, const AliEmcalJet* jet2) {
  //
  // Calculate azimuthal angle between the axises of the jets
  //

  return GetDeltaPhi(jet1->Phi(),jet2->Phi());

}

//________________________________________________________________________
Double_t AliAnalysisTaskEmcalJetTagger::GetDeltaPhi(Double_t phi1,Double_t phi2) {
  //
  // Calculate azimuthal angle between the axises of the jets
  //

  Double_t dPhi = phi1-phi2;

  if(dPhi <-0.5*TMath::Pi())  dPhi += TMath::TwoPi();
  if(dPhi > 1.5*TMath::Pi())  dPhi -= TMath::TwoPi();

  return dPhi;
}

//________________________________________________________________________
Double_t AliAnalysisTaskEmcalJetTagger::GetFractionSharedPt(const AliEmcalJet *jet1, const AliEmcalJet *jet2) const
{
  //
  // Get fraction of shared pT between matched full and charged jet
  // Uses charged jet pT as baseline: fraction = \Sum_{const,full jet} pT,const,i / pT,jet,ch
  //

  Double_t fraction = 0.;
  Double_t jetPt2 = jet2->Pt();
 
  if(jetPt2>0) {

    AliDebug(2,Form("%s: nConstituents_jet1: %d, nConstituents_jet2: %d, tracks_jet1: %d  tracks_jet2: %d clusters_jet1: %d clusters_jet2: %d",GetName(),jet1->GetNumberOfConstituents(),jet2->GetNumberOfConstituents(),jet1->GetNumberOfTracks(),jet2->GetNumberOfTracks(),jet1->GetNumberOfClusters(),jet2->GetNumberOfClusters()));
    
    Double_t sumPt = 0.;
    AliVParticle *vpf = 0x0;
    Int_t iFound = 0;
    for(Int_t icc=0; icc<jet2->GetNumberOfTracks(); icc++) {
      Int_t idx = (Int_t)jet2->TrackAt(icc);
      iFound = 0;
      for(Int_t icf=0; icf<jet1->GetNumberOfTracks(); icf++) {
	if(idx == jet1->TrackAt(icf) && iFound==0 ) {
	  iFound=1;
	  vpf = static_cast<AliVParticle*>(jet1->TrackAt(icf, fTracks));
	  if(vpf) sumPt += vpf->Pt();
	  continue;
	}
      }
    }
    fraction = sumPt/jetPt2;
  } else fraction = -1.;
  return fraction;
}

//________________________________________________________________________
Bool_t AliAnalysisTaskEmcalJetTagger::RetrieveEventObjects() {
  //
  // retrieve event objects
  //

  if (!AliAnalysisTaskEmcalJet::RetrieveEventObjects())
    return kFALSE;

  return kTRUE;

}

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

 AliAnalysisTaskEmcalJetTagger.cxx:1
 AliAnalysisTaskEmcalJetTagger.cxx:2
 AliAnalysisTaskEmcalJetTagger.cxx:3
 AliAnalysisTaskEmcalJetTagger.cxx:4
 AliAnalysisTaskEmcalJetTagger.cxx:5
 AliAnalysisTaskEmcalJetTagger.cxx:6
 AliAnalysisTaskEmcalJetTagger.cxx:7
 AliAnalysisTaskEmcalJetTagger.cxx:8
 AliAnalysisTaskEmcalJetTagger.cxx:9
 AliAnalysisTaskEmcalJetTagger.cxx:10
 AliAnalysisTaskEmcalJetTagger.cxx:11
 AliAnalysisTaskEmcalJetTagger.cxx:12
 AliAnalysisTaskEmcalJetTagger.cxx:13
 AliAnalysisTaskEmcalJetTagger.cxx:14
 AliAnalysisTaskEmcalJetTagger.cxx:15
 AliAnalysisTaskEmcalJetTagger.cxx:16
 AliAnalysisTaskEmcalJetTagger.cxx:17
 AliAnalysisTaskEmcalJetTagger.cxx:18
 AliAnalysisTaskEmcalJetTagger.cxx:19
 AliAnalysisTaskEmcalJetTagger.cxx:20
 AliAnalysisTaskEmcalJetTagger.cxx:21
 AliAnalysisTaskEmcalJetTagger.cxx:22
 AliAnalysisTaskEmcalJetTagger.cxx:23
 AliAnalysisTaskEmcalJetTagger.cxx:24
 AliAnalysisTaskEmcalJetTagger.cxx:25
 AliAnalysisTaskEmcalJetTagger.cxx:26
 AliAnalysisTaskEmcalJetTagger.cxx:27
 AliAnalysisTaskEmcalJetTagger.cxx:28
 AliAnalysisTaskEmcalJetTagger.cxx:29
 AliAnalysisTaskEmcalJetTagger.cxx:30
 AliAnalysisTaskEmcalJetTagger.cxx:31
 AliAnalysisTaskEmcalJetTagger.cxx:32
 AliAnalysisTaskEmcalJetTagger.cxx:33
 AliAnalysisTaskEmcalJetTagger.cxx:34
 AliAnalysisTaskEmcalJetTagger.cxx:35
 AliAnalysisTaskEmcalJetTagger.cxx:36
 AliAnalysisTaskEmcalJetTagger.cxx:37
 AliAnalysisTaskEmcalJetTagger.cxx:38
 AliAnalysisTaskEmcalJetTagger.cxx:39
 AliAnalysisTaskEmcalJetTagger.cxx:40
 AliAnalysisTaskEmcalJetTagger.cxx:41
 AliAnalysisTaskEmcalJetTagger.cxx:42
 AliAnalysisTaskEmcalJetTagger.cxx:43
 AliAnalysisTaskEmcalJetTagger.cxx:44
 AliAnalysisTaskEmcalJetTagger.cxx:45
 AliAnalysisTaskEmcalJetTagger.cxx:46
 AliAnalysisTaskEmcalJetTagger.cxx:47
 AliAnalysisTaskEmcalJetTagger.cxx:48
 AliAnalysisTaskEmcalJetTagger.cxx:49
 AliAnalysisTaskEmcalJetTagger.cxx:50
 AliAnalysisTaskEmcalJetTagger.cxx:51
 AliAnalysisTaskEmcalJetTagger.cxx:52
 AliAnalysisTaskEmcalJetTagger.cxx:53
 AliAnalysisTaskEmcalJetTagger.cxx:54
 AliAnalysisTaskEmcalJetTagger.cxx:55
 AliAnalysisTaskEmcalJetTagger.cxx:56
 AliAnalysisTaskEmcalJetTagger.cxx:57
 AliAnalysisTaskEmcalJetTagger.cxx:58
 AliAnalysisTaskEmcalJetTagger.cxx:59
 AliAnalysisTaskEmcalJetTagger.cxx:60
 AliAnalysisTaskEmcalJetTagger.cxx:61
 AliAnalysisTaskEmcalJetTagger.cxx:62
 AliAnalysisTaskEmcalJetTagger.cxx:63
 AliAnalysisTaskEmcalJetTagger.cxx:64
 AliAnalysisTaskEmcalJetTagger.cxx:65
 AliAnalysisTaskEmcalJetTagger.cxx:66
 AliAnalysisTaskEmcalJetTagger.cxx:67
 AliAnalysisTaskEmcalJetTagger.cxx:68
 AliAnalysisTaskEmcalJetTagger.cxx:69
 AliAnalysisTaskEmcalJetTagger.cxx:70
 AliAnalysisTaskEmcalJetTagger.cxx:71
 AliAnalysisTaskEmcalJetTagger.cxx:72
 AliAnalysisTaskEmcalJetTagger.cxx:73
 AliAnalysisTaskEmcalJetTagger.cxx:74
 AliAnalysisTaskEmcalJetTagger.cxx:75
 AliAnalysisTaskEmcalJetTagger.cxx:76
 AliAnalysisTaskEmcalJetTagger.cxx:77
 AliAnalysisTaskEmcalJetTagger.cxx:78
 AliAnalysisTaskEmcalJetTagger.cxx:79
 AliAnalysisTaskEmcalJetTagger.cxx:80
 AliAnalysisTaskEmcalJetTagger.cxx:81
 AliAnalysisTaskEmcalJetTagger.cxx:82
 AliAnalysisTaskEmcalJetTagger.cxx:83
 AliAnalysisTaskEmcalJetTagger.cxx:84
 AliAnalysisTaskEmcalJetTagger.cxx:85
 AliAnalysisTaskEmcalJetTagger.cxx:86
 AliAnalysisTaskEmcalJetTagger.cxx:87
 AliAnalysisTaskEmcalJetTagger.cxx:88
 AliAnalysisTaskEmcalJetTagger.cxx:89
 AliAnalysisTaskEmcalJetTagger.cxx:90
 AliAnalysisTaskEmcalJetTagger.cxx:91
 AliAnalysisTaskEmcalJetTagger.cxx:92
 AliAnalysisTaskEmcalJetTagger.cxx:93
 AliAnalysisTaskEmcalJetTagger.cxx:94
 AliAnalysisTaskEmcalJetTagger.cxx:95
 AliAnalysisTaskEmcalJetTagger.cxx:96
 AliAnalysisTaskEmcalJetTagger.cxx:97
 AliAnalysisTaskEmcalJetTagger.cxx:98
 AliAnalysisTaskEmcalJetTagger.cxx:99
 AliAnalysisTaskEmcalJetTagger.cxx:100
 AliAnalysisTaskEmcalJetTagger.cxx:101
 AliAnalysisTaskEmcalJetTagger.cxx:102
 AliAnalysisTaskEmcalJetTagger.cxx:103
 AliAnalysisTaskEmcalJetTagger.cxx:104
 AliAnalysisTaskEmcalJetTagger.cxx:105
 AliAnalysisTaskEmcalJetTagger.cxx:106
 AliAnalysisTaskEmcalJetTagger.cxx:107
 AliAnalysisTaskEmcalJetTagger.cxx:108
 AliAnalysisTaskEmcalJetTagger.cxx:109
 AliAnalysisTaskEmcalJetTagger.cxx:110
 AliAnalysisTaskEmcalJetTagger.cxx:111
 AliAnalysisTaskEmcalJetTagger.cxx:112
 AliAnalysisTaskEmcalJetTagger.cxx:113
 AliAnalysisTaskEmcalJetTagger.cxx:114
 AliAnalysisTaskEmcalJetTagger.cxx:115
 AliAnalysisTaskEmcalJetTagger.cxx:116
 AliAnalysisTaskEmcalJetTagger.cxx:117
 AliAnalysisTaskEmcalJetTagger.cxx:118
 AliAnalysisTaskEmcalJetTagger.cxx:119
 AliAnalysisTaskEmcalJetTagger.cxx:120
 AliAnalysisTaskEmcalJetTagger.cxx:121
 AliAnalysisTaskEmcalJetTagger.cxx:122
 AliAnalysisTaskEmcalJetTagger.cxx:123
 AliAnalysisTaskEmcalJetTagger.cxx:124
 AliAnalysisTaskEmcalJetTagger.cxx:125
 AliAnalysisTaskEmcalJetTagger.cxx:126
 AliAnalysisTaskEmcalJetTagger.cxx:127
 AliAnalysisTaskEmcalJetTagger.cxx:128
 AliAnalysisTaskEmcalJetTagger.cxx:129
 AliAnalysisTaskEmcalJetTagger.cxx:130
 AliAnalysisTaskEmcalJetTagger.cxx:131
 AliAnalysisTaskEmcalJetTagger.cxx:132
 AliAnalysisTaskEmcalJetTagger.cxx:133
 AliAnalysisTaskEmcalJetTagger.cxx:134
 AliAnalysisTaskEmcalJetTagger.cxx:135
 AliAnalysisTaskEmcalJetTagger.cxx:136
 AliAnalysisTaskEmcalJetTagger.cxx:137
 AliAnalysisTaskEmcalJetTagger.cxx:138
 AliAnalysisTaskEmcalJetTagger.cxx:139
 AliAnalysisTaskEmcalJetTagger.cxx:140
 AliAnalysisTaskEmcalJetTagger.cxx:141
 AliAnalysisTaskEmcalJetTagger.cxx:142
 AliAnalysisTaskEmcalJetTagger.cxx:143
 AliAnalysisTaskEmcalJetTagger.cxx:144
 AliAnalysisTaskEmcalJetTagger.cxx:145
 AliAnalysisTaskEmcalJetTagger.cxx:146
 AliAnalysisTaskEmcalJetTagger.cxx:147
 AliAnalysisTaskEmcalJetTagger.cxx:148
 AliAnalysisTaskEmcalJetTagger.cxx:149
 AliAnalysisTaskEmcalJetTagger.cxx:150
 AliAnalysisTaskEmcalJetTagger.cxx:151
 AliAnalysisTaskEmcalJetTagger.cxx:152
 AliAnalysisTaskEmcalJetTagger.cxx:153
 AliAnalysisTaskEmcalJetTagger.cxx:154
 AliAnalysisTaskEmcalJetTagger.cxx:155
 AliAnalysisTaskEmcalJetTagger.cxx:156
 AliAnalysisTaskEmcalJetTagger.cxx:157
 AliAnalysisTaskEmcalJetTagger.cxx:158
 AliAnalysisTaskEmcalJetTagger.cxx:159
 AliAnalysisTaskEmcalJetTagger.cxx:160
 AliAnalysisTaskEmcalJetTagger.cxx:161
 AliAnalysisTaskEmcalJetTagger.cxx:162
 AliAnalysisTaskEmcalJetTagger.cxx:163
 AliAnalysisTaskEmcalJetTagger.cxx:164
 AliAnalysisTaskEmcalJetTagger.cxx:165
 AliAnalysisTaskEmcalJetTagger.cxx:166
 AliAnalysisTaskEmcalJetTagger.cxx:167
 AliAnalysisTaskEmcalJetTagger.cxx:168
 AliAnalysisTaskEmcalJetTagger.cxx:169
 AliAnalysisTaskEmcalJetTagger.cxx:170
 AliAnalysisTaskEmcalJetTagger.cxx:171
 AliAnalysisTaskEmcalJetTagger.cxx:172
 AliAnalysisTaskEmcalJetTagger.cxx:173
 AliAnalysisTaskEmcalJetTagger.cxx:174
 AliAnalysisTaskEmcalJetTagger.cxx:175
 AliAnalysisTaskEmcalJetTagger.cxx:176
 AliAnalysisTaskEmcalJetTagger.cxx:177
 AliAnalysisTaskEmcalJetTagger.cxx:178
 AliAnalysisTaskEmcalJetTagger.cxx:179
 AliAnalysisTaskEmcalJetTagger.cxx:180
 AliAnalysisTaskEmcalJetTagger.cxx:181
 AliAnalysisTaskEmcalJetTagger.cxx:182
 AliAnalysisTaskEmcalJetTagger.cxx:183
 AliAnalysisTaskEmcalJetTagger.cxx:184
 AliAnalysisTaskEmcalJetTagger.cxx:185
 AliAnalysisTaskEmcalJetTagger.cxx:186
 AliAnalysisTaskEmcalJetTagger.cxx:187
 AliAnalysisTaskEmcalJetTagger.cxx:188
 AliAnalysisTaskEmcalJetTagger.cxx:189
 AliAnalysisTaskEmcalJetTagger.cxx:190
 AliAnalysisTaskEmcalJetTagger.cxx:191
 AliAnalysisTaskEmcalJetTagger.cxx:192
 AliAnalysisTaskEmcalJetTagger.cxx:193
 AliAnalysisTaskEmcalJetTagger.cxx:194
 AliAnalysisTaskEmcalJetTagger.cxx:195
 AliAnalysisTaskEmcalJetTagger.cxx:196
 AliAnalysisTaskEmcalJetTagger.cxx:197
 AliAnalysisTaskEmcalJetTagger.cxx:198
 AliAnalysisTaskEmcalJetTagger.cxx:199
 AliAnalysisTaskEmcalJetTagger.cxx:200
 AliAnalysisTaskEmcalJetTagger.cxx:201
 AliAnalysisTaskEmcalJetTagger.cxx:202
 AliAnalysisTaskEmcalJetTagger.cxx:203
 AliAnalysisTaskEmcalJetTagger.cxx:204
 AliAnalysisTaskEmcalJetTagger.cxx:205
 AliAnalysisTaskEmcalJetTagger.cxx:206
 AliAnalysisTaskEmcalJetTagger.cxx:207
 AliAnalysisTaskEmcalJetTagger.cxx:208
 AliAnalysisTaskEmcalJetTagger.cxx:209
 AliAnalysisTaskEmcalJetTagger.cxx:210
 AliAnalysisTaskEmcalJetTagger.cxx:211
 AliAnalysisTaskEmcalJetTagger.cxx:212
 AliAnalysisTaskEmcalJetTagger.cxx:213
 AliAnalysisTaskEmcalJetTagger.cxx:214
 AliAnalysisTaskEmcalJetTagger.cxx:215
 AliAnalysisTaskEmcalJetTagger.cxx:216
 AliAnalysisTaskEmcalJetTagger.cxx:217
 AliAnalysisTaskEmcalJetTagger.cxx:218
 AliAnalysisTaskEmcalJetTagger.cxx:219
 AliAnalysisTaskEmcalJetTagger.cxx:220
 AliAnalysisTaskEmcalJetTagger.cxx:221
 AliAnalysisTaskEmcalJetTagger.cxx:222
 AliAnalysisTaskEmcalJetTagger.cxx:223
 AliAnalysisTaskEmcalJetTagger.cxx:224
 AliAnalysisTaskEmcalJetTagger.cxx:225
 AliAnalysisTaskEmcalJetTagger.cxx:226
 AliAnalysisTaskEmcalJetTagger.cxx:227
 AliAnalysisTaskEmcalJetTagger.cxx:228
 AliAnalysisTaskEmcalJetTagger.cxx:229
 AliAnalysisTaskEmcalJetTagger.cxx:230
 AliAnalysisTaskEmcalJetTagger.cxx:231
 AliAnalysisTaskEmcalJetTagger.cxx:232
 AliAnalysisTaskEmcalJetTagger.cxx:233
 AliAnalysisTaskEmcalJetTagger.cxx:234
 AliAnalysisTaskEmcalJetTagger.cxx:235
 AliAnalysisTaskEmcalJetTagger.cxx:236
 AliAnalysisTaskEmcalJetTagger.cxx:237
 AliAnalysisTaskEmcalJetTagger.cxx:238
 AliAnalysisTaskEmcalJetTagger.cxx:239
 AliAnalysisTaskEmcalJetTagger.cxx:240
 AliAnalysisTaskEmcalJetTagger.cxx:241
 AliAnalysisTaskEmcalJetTagger.cxx:242
 AliAnalysisTaskEmcalJetTagger.cxx:243
 AliAnalysisTaskEmcalJetTagger.cxx:244
 AliAnalysisTaskEmcalJetTagger.cxx:245
 AliAnalysisTaskEmcalJetTagger.cxx:246
 AliAnalysisTaskEmcalJetTagger.cxx:247
 AliAnalysisTaskEmcalJetTagger.cxx:248
 AliAnalysisTaskEmcalJetTagger.cxx:249
 AliAnalysisTaskEmcalJetTagger.cxx:250
 AliAnalysisTaskEmcalJetTagger.cxx:251
 AliAnalysisTaskEmcalJetTagger.cxx:252
 AliAnalysisTaskEmcalJetTagger.cxx:253
 AliAnalysisTaskEmcalJetTagger.cxx:254
 AliAnalysisTaskEmcalJetTagger.cxx:255
 AliAnalysisTaskEmcalJetTagger.cxx:256
 AliAnalysisTaskEmcalJetTagger.cxx:257
 AliAnalysisTaskEmcalJetTagger.cxx:258
 AliAnalysisTaskEmcalJetTagger.cxx:259
 AliAnalysisTaskEmcalJetTagger.cxx:260
 AliAnalysisTaskEmcalJetTagger.cxx:261
 AliAnalysisTaskEmcalJetTagger.cxx:262
 AliAnalysisTaskEmcalJetTagger.cxx:263
 AliAnalysisTaskEmcalJetTagger.cxx:264
 AliAnalysisTaskEmcalJetTagger.cxx:265
 AliAnalysisTaskEmcalJetTagger.cxx:266
 AliAnalysisTaskEmcalJetTagger.cxx:267
 AliAnalysisTaskEmcalJetTagger.cxx:268
 AliAnalysisTaskEmcalJetTagger.cxx:269
 AliAnalysisTaskEmcalJetTagger.cxx:270
 AliAnalysisTaskEmcalJetTagger.cxx:271
 AliAnalysisTaskEmcalJetTagger.cxx:272
 AliAnalysisTaskEmcalJetTagger.cxx:273
 AliAnalysisTaskEmcalJetTagger.cxx:274
 AliAnalysisTaskEmcalJetTagger.cxx:275
 AliAnalysisTaskEmcalJetTagger.cxx:276
 AliAnalysisTaskEmcalJetTagger.cxx:277
 AliAnalysisTaskEmcalJetTagger.cxx:278
 AliAnalysisTaskEmcalJetTagger.cxx:279
 AliAnalysisTaskEmcalJetTagger.cxx:280
 AliAnalysisTaskEmcalJetTagger.cxx:281
 AliAnalysisTaskEmcalJetTagger.cxx:282
 AliAnalysisTaskEmcalJetTagger.cxx:283
 AliAnalysisTaskEmcalJetTagger.cxx:284
 AliAnalysisTaskEmcalJetTagger.cxx:285
 AliAnalysisTaskEmcalJetTagger.cxx:286
 AliAnalysisTaskEmcalJetTagger.cxx:287
 AliAnalysisTaskEmcalJetTagger.cxx:288
 AliAnalysisTaskEmcalJetTagger.cxx:289
 AliAnalysisTaskEmcalJetTagger.cxx:290
 AliAnalysisTaskEmcalJetTagger.cxx:291
 AliAnalysisTaskEmcalJetTagger.cxx:292
 AliAnalysisTaskEmcalJetTagger.cxx:293
 AliAnalysisTaskEmcalJetTagger.cxx:294
 AliAnalysisTaskEmcalJetTagger.cxx:295
 AliAnalysisTaskEmcalJetTagger.cxx:296
 AliAnalysisTaskEmcalJetTagger.cxx:297
 AliAnalysisTaskEmcalJetTagger.cxx:298
 AliAnalysisTaskEmcalJetTagger.cxx:299
 AliAnalysisTaskEmcalJetTagger.cxx:300
 AliAnalysisTaskEmcalJetTagger.cxx:301
 AliAnalysisTaskEmcalJetTagger.cxx:302
 AliAnalysisTaskEmcalJetTagger.cxx:303
 AliAnalysisTaskEmcalJetTagger.cxx:304
 AliAnalysisTaskEmcalJetTagger.cxx:305
 AliAnalysisTaskEmcalJetTagger.cxx:306
 AliAnalysisTaskEmcalJetTagger.cxx:307
 AliAnalysisTaskEmcalJetTagger.cxx:308
 AliAnalysisTaskEmcalJetTagger.cxx:309
 AliAnalysisTaskEmcalJetTagger.cxx:310
 AliAnalysisTaskEmcalJetTagger.cxx:311
 AliAnalysisTaskEmcalJetTagger.cxx:312
 AliAnalysisTaskEmcalJetTagger.cxx:313
 AliAnalysisTaskEmcalJetTagger.cxx:314
 AliAnalysisTaskEmcalJetTagger.cxx:315
 AliAnalysisTaskEmcalJetTagger.cxx:316
 AliAnalysisTaskEmcalJetTagger.cxx:317
 AliAnalysisTaskEmcalJetTagger.cxx:318
 AliAnalysisTaskEmcalJetTagger.cxx:319
 AliAnalysisTaskEmcalJetTagger.cxx:320
 AliAnalysisTaskEmcalJetTagger.cxx:321
 AliAnalysisTaskEmcalJetTagger.cxx:322
 AliAnalysisTaskEmcalJetTagger.cxx:323
 AliAnalysisTaskEmcalJetTagger.cxx:324
 AliAnalysisTaskEmcalJetTagger.cxx:325
 AliAnalysisTaskEmcalJetTagger.cxx:326
 AliAnalysisTaskEmcalJetTagger.cxx:327
 AliAnalysisTaskEmcalJetTagger.cxx:328
 AliAnalysisTaskEmcalJetTagger.cxx:329
 AliAnalysisTaskEmcalJetTagger.cxx:330
 AliAnalysisTaskEmcalJetTagger.cxx:331
 AliAnalysisTaskEmcalJetTagger.cxx:332
 AliAnalysisTaskEmcalJetTagger.cxx:333
 AliAnalysisTaskEmcalJetTagger.cxx:334
 AliAnalysisTaskEmcalJetTagger.cxx:335
 AliAnalysisTaskEmcalJetTagger.cxx:336
 AliAnalysisTaskEmcalJetTagger.cxx:337
 AliAnalysisTaskEmcalJetTagger.cxx:338
 AliAnalysisTaskEmcalJetTagger.cxx:339
 AliAnalysisTaskEmcalJetTagger.cxx:340
 AliAnalysisTaskEmcalJetTagger.cxx:341
 AliAnalysisTaskEmcalJetTagger.cxx:342
 AliAnalysisTaskEmcalJetTagger.cxx:343
 AliAnalysisTaskEmcalJetTagger.cxx:344
 AliAnalysisTaskEmcalJetTagger.cxx:345
 AliAnalysisTaskEmcalJetTagger.cxx:346
 AliAnalysisTaskEmcalJetTagger.cxx:347
 AliAnalysisTaskEmcalJetTagger.cxx:348
 AliAnalysisTaskEmcalJetTagger.cxx:349
 AliAnalysisTaskEmcalJetTagger.cxx:350
 AliAnalysisTaskEmcalJetTagger.cxx:351
 AliAnalysisTaskEmcalJetTagger.cxx:352
 AliAnalysisTaskEmcalJetTagger.cxx:353
 AliAnalysisTaskEmcalJetTagger.cxx:354
 AliAnalysisTaskEmcalJetTagger.cxx:355
 AliAnalysisTaskEmcalJetTagger.cxx:356
 AliAnalysisTaskEmcalJetTagger.cxx:357
 AliAnalysisTaskEmcalJetTagger.cxx:358
 AliAnalysisTaskEmcalJetTagger.cxx:359
 AliAnalysisTaskEmcalJetTagger.cxx:360
 AliAnalysisTaskEmcalJetTagger.cxx:361
 AliAnalysisTaskEmcalJetTagger.cxx:362
 AliAnalysisTaskEmcalJetTagger.cxx:363
 AliAnalysisTaskEmcalJetTagger.cxx:364
 AliAnalysisTaskEmcalJetTagger.cxx:365
 AliAnalysisTaskEmcalJetTagger.cxx:366
 AliAnalysisTaskEmcalJetTagger.cxx:367
 AliAnalysisTaskEmcalJetTagger.cxx:368
 AliAnalysisTaskEmcalJetTagger.cxx:369
 AliAnalysisTaskEmcalJetTagger.cxx:370
 AliAnalysisTaskEmcalJetTagger.cxx:371
 AliAnalysisTaskEmcalJetTagger.cxx:372
 AliAnalysisTaskEmcalJetTagger.cxx:373
 AliAnalysisTaskEmcalJetTagger.cxx:374
 AliAnalysisTaskEmcalJetTagger.cxx:375
 AliAnalysisTaskEmcalJetTagger.cxx:376
 AliAnalysisTaskEmcalJetTagger.cxx:377
 AliAnalysisTaskEmcalJetTagger.cxx:378
 AliAnalysisTaskEmcalJetTagger.cxx:379
 AliAnalysisTaskEmcalJetTagger.cxx:380
 AliAnalysisTaskEmcalJetTagger.cxx:381
 AliAnalysisTaskEmcalJetTagger.cxx:382
 AliAnalysisTaskEmcalJetTagger.cxx:383
 AliAnalysisTaskEmcalJetTagger.cxx:384
 AliAnalysisTaskEmcalJetTagger.cxx:385
 AliAnalysisTaskEmcalJetTagger.cxx:386
 AliAnalysisTaskEmcalJetTagger.cxx:387
 AliAnalysisTaskEmcalJetTagger.cxx:388
 AliAnalysisTaskEmcalJetTagger.cxx:389
 AliAnalysisTaskEmcalJetTagger.cxx:390
 AliAnalysisTaskEmcalJetTagger.cxx:391
 AliAnalysisTaskEmcalJetTagger.cxx:392
 AliAnalysisTaskEmcalJetTagger.cxx:393
 AliAnalysisTaskEmcalJetTagger.cxx:394
 AliAnalysisTaskEmcalJetTagger.cxx:395
 AliAnalysisTaskEmcalJetTagger.cxx:396
 AliAnalysisTaskEmcalJetTagger.cxx:397
 AliAnalysisTaskEmcalJetTagger.cxx:398
 AliAnalysisTaskEmcalJetTagger.cxx:399
 AliAnalysisTaskEmcalJetTagger.cxx:400
 AliAnalysisTaskEmcalJetTagger.cxx:401
 AliAnalysisTaskEmcalJetTagger.cxx:402
 AliAnalysisTaskEmcalJetTagger.cxx:403
 AliAnalysisTaskEmcalJetTagger.cxx:404
 AliAnalysisTaskEmcalJetTagger.cxx:405
 AliAnalysisTaskEmcalJetTagger.cxx:406
 AliAnalysisTaskEmcalJetTagger.cxx:407
 AliAnalysisTaskEmcalJetTagger.cxx:408
 AliAnalysisTaskEmcalJetTagger.cxx:409
 AliAnalysisTaskEmcalJetTagger.cxx:410
 AliAnalysisTaskEmcalJetTagger.cxx:411
 AliAnalysisTaskEmcalJetTagger.cxx:412
 AliAnalysisTaskEmcalJetTagger.cxx:413
 AliAnalysisTaskEmcalJetTagger.cxx:414
 AliAnalysisTaskEmcalJetTagger.cxx:415
 AliAnalysisTaskEmcalJetTagger.cxx:416
 AliAnalysisTaskEmcalJetTagger.cxx:417
 AliAnalysisTaskEmcalJetTagger.cxx:418
 AliAnalysisTaskEmcalJetTagger.cxx:419
 AliAnalysisTaskEmcalJetTagger.cxx:420
 AliAnalysisTaskEmcalJetTagger.cxx:421
 AliAnalysisTaskEmcalJetTagger.cxx:422
 AliAnalysisTaskEmcalJetTagger.cxx:423
 AliAnalysisTaskEmcalJetTagger.cxx:424
 AliAnalysisTaskEmcalJetTagger.cxx:425
 AliAnalysisTaskEmcalJetTagger.cxx:426
 AliAnalysisTaskEmcalJetTagger.cxx:427
 AliAnalysisTaskEmcalJetTagger.cxx:428
 AliAnalysisTaskEmcalJetTagger.cxx:429
 AliAnalysisTaskEmcalJetTagger.cxx:430
 AliAnalysisTaskEmcalJetTagger.cxx:431
 AliAnalysisTaskEmcalJetTagger.cxx:432
 AliAnalysisTaskEmcalJetTagger.cxx:433
 AliAnalysisTaskEmcalJetTagger.cxx:434
 AliAnalysisTaskEmcalJetTagger.cxx:435
 AliAnalysisTaskEmcalJetTagger.cxx:436
 AliAnalysisTaskEmcalJetTagger.cxx:437
 AliAnalysisTaskEmcalJetTagger.cxx:438
 AliAnalysisTaskEmcalJetTagger.cxx:439
 AliAnalysisTaskEmcalJetTagger.cxx:440
 AliAnalysisTaskEmcalJetTagger.cxx:441
 AliAnalysisTaskEmcalJetTagger.cxx:442
 AliAnalysisTaskEmcalJetTagger.cxx:443
 AliAnalysisTaskEmcalJetTagger.cxx:444
 AliAnalysisTaskEmcalJetTagger.cxx:445
 AliAnalysisTaskEmcalJetTagger.cxx:446
 AliAnalysisTaskEmcalJetTagger.cxx:447
 AliAnalysisTaskEmcalJetTagger.cxx:448
 AliAnalysisTaskEmcalJetTagger.cxx:449
 AliAnalysisTaskEmcalJetTagger.cxx:450
 AliAnalysisTaskEmcalJetTagger.cxx:451
 AliAnalysisTaskEmcalJetTagger.cxx:452
 AliAnalysisTaskEmcalJetTagger.cxx:453
 AliAnalysisTaskEmcalJetTagger.cxx:454
 AliAnalysisTaskEmcalJetTagger.cxx:455
 AliAnalysisTaskEmcalJetTagger.cxx:456
 AliAnalysisTaskEmcalJetTagger.cxx:457
 AliAnalysisTaskEmcalJetTagger.cxx:458
 AliAnalysisTaskEmcalJetTagger.cxx:459
 AliAnalysisTaskEmcalJetTagger.cxx:460
 AliAnalysisTaskEmcalJetTagger.cxx:461
 AliAnalysisTaskEmcalJetTagger.cxx:462
 AliAnalysisTaskEmcalJetTagger.cxx:463
 AliAnalysisTaskEmcalJetTagger.cxx:464
 AliAnalysisTaskEmcalJetTagger.cxx:465
 AliAnalysisTaskEmcalJetTagger.cxx:466
 AliAnalysisTaskEmcalJetTagger.cxx:467
 AliAnalysisTaskEmcalJetTagger.cxx:468
 AliAnalysisTaskEmcalJetTagger.cxx:469
 AliAnalysisTaskEmcalJetTagger.cxx:470
 AliAnalysisTaskEmcalJetTagger.cxx:471
 AliAnalysisTaskEmcalJetTagger.cxx:472
 AliAnalysisTaskEmcalJetTagger.cxx:473
 AliAnalysisTaskEmcalJetTagger.cxx:474
 AliAnalysisTaskEmcalJetTagger.cxx:475
 AliAnalysisTaskEmcalJetTagger.cxx:476
 AliAnalysisTaskEmcalJetTagger.cxx:477
 AliAnalysisTaskEmcalJetTagger.cxx:478
 AliAnalysisTaskEmcalJetTagger.cxx:479
 AliAnalysisTaskEmcalJetTagger.cxx:480
 AliAnalysisTaskEmcalJetTagger.cxx:481
 AliAnalysisTaskEmcalJetTagger.cxx:482
 AliAnalysisTaskEmcalJetTagger.cxx:483
 AliAnalysisTaskEmcalJetTagger.cxx:484
 AliAnalysisTaskEmcalJetTagger.cxx:485
 AliAnalysisTaskEmcalJetTagger.cxx:486
 AliAnalysisTaskEmcalJetTagger.cxx:487
 AliAnalysisTaskEmcalJetTagger.cxx:488
 AliAnalysisTaskEmcalJetTagger.cxx:489
 AliAnalysisTaskEmcalJetTagger.cxx:490
 AliAnalysisTaskEmcalJetTagger.cxx:491
 AliAnalysisTaskEmcalJetTagger.cxx:492
 AliAnalysisTaskEmcalJetTagger.cxx:493
 AliAnalysisTaskEmcalJetTagger.cxx:494
 AliAnalysisTaskEmcalJetTagger.cxx:495
 AliAnalysisTaskEmcalJetTagger.cxx:496
 AliAnalysisTaskEmcalJetTagger.cxx:497
 AliAnalysisTaskEmcalJetTagger.cxx:498
 AliAnalysisTaskEmcalJetTagger.cxx:499
 AliAnalysisTaskEmcalJetTagger.cxx:500
 AliAnalysisTaskEmcalJetTagger.cxx:501
 AliAnalysisTaskEmcalJetTagger.cxx:502
 AliAnalysisTaskEmcalJetTagger.cxx:503
 AliAnalysisTaskEmcalJetTagger.cxx:504
 AliAnalysisTaskEmcalJetTagger.cxx:505
 AliAnalysisTaskEmcalJetTagger.cxx:506
 AliAnalysisTaskEmcalJetTagger.cxx:507
 AliAnalysisTaskEmcalJetTagger.cxx:508
 AliAnalysisTaskEmcalJetTagger.cxx:509
 AliAnalysisTaskEmcalJetTagger.cxx:510
 AliAnalysisTaskEmcalJetTagger.cxx:511
 AliAnalysisTaskEmcalJetTagger.cxx:512
 AliAnalysisTaskEmcalJetTagger.cxx:513
 AliAnalysisTaskEmcalJetTagger.cxx:514
 AliAnalysisTaskEmcalJetTagger.cxx:515
 AliAnalysisTaskEmcalJetTagger.cxx:516
 AliAnalysisTaskEmcalJetTagger.cxx:517
 AliAnalysisTaskEmcalJetTagger.cxx:518
 AliAnalysisTaskEmcalJetTagger.cxx:519
 AliAnalysisTaskEmcalJetTagger.cxx:520
 AliAnalysisTaskEmcalJetTagger.cxx:521
 AliAnalysisTaskEmcalJetTagger.cxx:522
 AliAnalysisTaskEmcalJetTagger.cxx:523
 AliAnalysisTaskEmcalJetTagger.cxx:524
 AliAnalysisTaskEmcalJetTagger.cxx:525
 AliAnalysisTaskEmcalJetTagger.cxx:526
 AliAnalysisTaskEmcalJetTagger.cxx:527
 AliAnalysisTaskEmcalJetTagger.cxx:528
 AliAnalysisTaskEmcalJetTagger.cxx:529
 AliAnalysisTaskEmcalJetTagger.cxx:530
 AliAnalysisTaskEmcalJetTagger.cxx:531
 AliAnalysisTaskEmcalJetTagger.cxx:532
 AliAnalysisTaskEmcalJetTagger.cxx:533
 AliAnalysisTaskEmcalJetTagger.cxx:534
 AliAnalysisTaskEmcalJetTagger.cxx:535
 AliAnalysisTaskEmcalJetTagger.cxx:536
 AliAnalysisTaskEmcalJetTagger.cxx:537
 AliAnalysisTaskEmcalJetTagger.cxx:538
 AliAnalysisTaskEmcalJetTagger.cxx:539
 AliAnalysisTaskEmcalJetTagger.cxx:540
 AliAnalysisTaskEmcalJetTagger.cxx:541
 AliAnalysisTaskEmcalJetTagger.cxx:542
 AliAnalysisTaskEmcalJetTagger.cxx:543
 AliAnalysisTaskEmcalJetTagger.cxx:544
 AliAnalysisTaskEmcalJetTagger.cxx:545