ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/
//
//
//             Base class for DStar in Jets Analysis
//
//-----------------------------------------------------------------------
//                         Author A.Grelli 
//              ERC-QGP Utrecht University - a.grelli@uu.nl
//-----------------------------------------------------------------------

#include <TDatabasePDG.h>
#include <TParticle.h>
#include <TVector3.h>
#include "TROOT.h"

#include "AliAnalysisTaskSEDStarJets.h"
#include "AliRDHFCutsDStartoKpipi.h"
#include "AliStack.h"
#include "AliMCEvent.h"
#include "AliAODMCHeader.h"
#include "AliAODHandler.h"
#include "AliAnalysisManager.h"
#include "AliLog.h"
#include "AliAODVertex.h"
#include "AliAODJet.h"
#include "AliAODRecoDecay.h"
#include "AliAODRecoCascadeHF.h"
#include "AliAODRecoDecayHF2Prong.h"
#include "AliESDtrack.h"
#include "AliAODMCParticle.h"

ClassImp(AliAnalysisTaskSEDStarJets)

//__________________________________________________________________________
AliAnalysisTaskSEDStarJets::AliAnalysisTaskSEDStarJets() :
  AliAnalysisTaskSE(),
  fEvents(0),
  fchargeFrCorr(0),
  fUseMCInfo(kTRUE), 
  fRequireNormalization(kTRUE),
  fOutput(0),
  fCuts(0),          
  ftrigger(0),   
  fPtPion(0),        
  fInvMass(0),       
  fRECOPtDStar(0), 
  fRECOPtBkg(0),   
  fDStar(0),          
  fDiff(0),           
  fDiffSideBand(0),  
  fDStarMass(0),    
  fPhi(0),       
  fPhiBkg(0),        
  fTrueDiff(0),       
  fResZ(0),        
  fResZBkg(0),               
  fEjet(0),        
  fPhijet(0),        
  fEtaJet(0),         
  theMCFF(0),
  fDphiD0Dstar(0),
  fPtJet(0)           
{
  //
  // Default ctor
  //
}
//___________________________________________________________________________
AliAnalysisTaskSEDStarJets::AliAnalysisTaskSEDStarJets(const Char_t* name, AliRDHFCutsDStartoKpipi* cuts) :
  AliAnalysisTaskSE(name),
  fEvents(0),
  fchargeFrCorr(0),
  fUseMCInfo(kTRUE),
  fRequireNormalization(kTRUE),
  fOutput(0),
  fCuts(0),          
  ftrigger(0),   
  fPtPion(0),        
  fInvMass(0),       
  fRECOPtDStar(0),
  fRECOPtBkg(0),     
  fDStar(0),          
  fDiff(0),           
  fDiffSideBand(0),  
  fDStarMass(0),    
  fPhi(0),       
  fPhiBkg(0),        
  fTrueDiff(0),       
  fResZ(0),        
  fResZBkg(0),       
  fEjet(0),        
  fPhijet(0),        
  fEtaJet(0),         
  theMCFF(0),
  fDphiD0Dstar(0),
  fPtJet(0)               
{
  //
  // Constructor. Initialization of Inputs and Outputs
  //
  fCuts=cuts;
  Info("AliAnalysisTaskSEDStarJets","Calling Constructor");
 
  DefineOutput(1,TList::Class()); // histos
  DefineOutput(2,AliRDHFCutsDStartoKpipi::Class()); // my cuts
}
//___________________________________________________________________________
AliAnalysisTaskSEDStarJets::~AliAnalysisTaskSEDStarJets() {
  //
  // destructor
  //

  Info("~AliAnalysisTaskSEDStarJets","Calling Destructor");  
  if (fOutput) {
    delete fOutput;
    fOutput = 0;
  }

  if (fCuts) {
    delete fCuts;
    fCuts = 0;
  }
  
  if (ftrigger) { delete ftrigger; ftrigger = 0;} 
  if (fPtPion)  { delete fPtPion;  fPtPion = 0;} 
  if (fInvMass) { delete fInvMass; fInvMass = 0;} 
  if (fRECOPtDStar) { delete fRECOPtDStar; fRECOPtDStar = 0;} 
  if (fRECOPtBkg)   { delete fRECOPtBkg; fRECOPtBkg = 0;} 
  if (fDStar) { delete fDStar; fDStar = 0;} 
  if (fDiff)  { delete fDiff; fDiff = 0;} 
  if (fDiffSideBand) { delete fDiffSideBand; fDiffSideBand = 0;} 
  if (fDStarMass)    { delete fDStarMass; fDStarMass = 0;} 
  if (fPhi)     { delete fPhi; fPhi = 0;} 
  if (fPhiBkg)  { delete fPhiBkg; fPhiBkg = 0;} 
  if (fTrueDiff){ delete fTrueDiff; fTrueDiff = 0;} 
  if (fResZ)    { delete fResZ;  fResZ = 0;} 
  if (fResZBkg) { delete fResZBkg; fResZBkg = 0;}
  if (fEjet)    { delete fEjet; fEjet = 0;}
  if (fPhijet)  { delete fPhijet; fPhijet = 0;}
  if (fEtaJet)  { delete fEtaJet; fEtaJet = 0;} 
  if (theMCFF)  { delete theMCFF; theMCFF = 0;} 
  if (fDphiD0Dstar) { delete fDphiD0Dstar; fDphiD0Dstar = 0;} 
  if (fPtJet) { delete fPtJet; fPtJet = 0;} 
}

//___________________________________________________________
void AliAnalysisTaskSEDStarJets::Init(){
  //
  // Initialization
  //
  if(fDebug > 1) printf("AnalysisTaskSEDStarJets::Init() \n");
  AliRDHFCutsDStartoKpipi* copyfCuts=new AliRDHFCutsDStartoKpipi(*fCuts);
  // Post the cuts
  PostData(2,copyfCuts);
  
  return;
}

//_________________________________________________
void AliAnalysisTaskSEDStarJets::UserExec(Option_t *)
{
  // user exec
  if (!fInputEvent) {
    Error("UserExec","NO EVENT FOUND!");
    return;
  }

  fEvents++;
  AliInfo(Form("Event %d",fEvents));
  if (fEvents%10000 ==0) AliInfo(Form("Event %d",fEvents));

  // Load the event
  AliAODEvent* aodEvent = dynamic_cast<AliAODEvent*>(fInputEvent);
 
  TClonesArray *arrayDStartoD0pi=0;

  if(!aodEvent && AODEvent() && IsStandardAOD()) {
    // In case there is an AOD handler writing a standard AOD, use the AOD 
    // event in memory rather than the input (ESD) event.    
    aodEvent = dynamic_cast<AliAODEvent*> (AODEvent());
    // in this case the braches in the deltaAOD (AliAOD.VertexingHF.root)
    // have to taken from the AOD event hold by the AliAODExtension
    AliAODHandler* aodHandler = (AliAODHandler*) 
      ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
    if(aodHandler->GetExtensions()) {
      AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject("AliAOD.VertexingHF.root");
      AliAODEvent *aodFromExt = ext->GetAOD();
      arrayDStartoD0pi=(TClonesArray*)aodFromExt->GetList()->FindObject("Dstar");
    }
  } else {
    arrayDStartoD0pi=(TClonesArray*)aodEvent->GetList()->FindObject("Dstar");
  }
  
  if (!arrayDStartoD0pi){
    AliInfo("Could not find array of HF vertices, skipping the event");
    return;
  }else AliDebug(2, Form("Found %d vertices",arrayDStartoD0pi->GetEntriesFast()));   

  // fix for temporary bug in ESDfilter 
  // the AODs with null vertex pointer didn't pass the PhysSel
  if(!aodEvent->GetPrimaryVertex() || TMath::Abs(aodEvent->GetMagneticField())<0.001) return;

  // Simulate a jet triggered sample
  TClonesArray *arrayofJets = (TClonesArray*)aodEvent->GetJets();
  if(aodEvent->GetNJets()<=0) return;

  // counters for efficiencies
  Int_t icountReco = 0;
  
  // Normalization factor
  if(fRequireNormalization){       
    ftrigger->Fill(1);
  }
  
  //D* and D0 prongs needed to MatchToMC method
  Int_t pdgDgDStartoD0pi[2]={421,211};
  Int_t pdgDgD0toKpi[2]={321,211};
  
  Double_t max =0;
  Double_t ejet   = 0;
  Double_t phiJet = 0;
  Double_t etaJet = 0;
  Double_t ptjet = 0;

  //loop over jets and consider only the leading jey in the event
  for (Int_t iJets = 0; iJets<arrayofJets->GetEntriesFast(); iJets++) {    
    AliAODJet* jet = (AliAODJet*)arrayofJets->At(iJets);
     
    //jets variables
    ejet   = jet->E();

    if(ejet>max){
      max = jet->E();
      phiJet = jet->Phi();
      etaJet = jet->Eta();
      ptjet = jet->Pt();
    }
    
    // fill energy, eta and phi of the jet
    fEjet   ->Fill(ejet);
    fPhijet ->Fill(phiJet);
    fEtaJet ->Fill(etaJet);
    fPtJet->Fill(ptjet);
  }

  //loop over D* candidates
  for (Int_t iDStartoD0pi = 0; iDStartoD0pi<arrayDStartoD0pi->GetEntriesFast(); iDStartoD0pi++) {
    
    // D* candidates
    AliAODRecoCascadeHF* dstarD0pi = (AliAODRecoCascadeHF*)arrayDStartoD0pi->At(iDStartoD0pi);
    AliAODRecoDecayHF2Prong* theD0particle = (AliAODRecoDecayHF2Prong*)dstarD0pi->Get2Prong();

    Double_t finvM =-999;
    Double_t finvMDStar =-999;
    Double_t dPhi =-999;
    Bool_t isDStar =0;
    Int_t mcLabel = -9999;

    // find associated MC particle for D* ->D0toKpi
    if(fUseMCInfo){
      TClonesArray* mcArray = dynamic_cast<TClonesArray*>(aodEvent->FindListObject(AliAODMCParticle::StdBranchName()));
      if(!mcArray) {
	printf("AliAnalysisTaskSEDStarSpectra::UserExec: MC particles not found!\n");
	return;
      }
      mcLabel = dstarD0pi->MatchToMC(413,421,pdgDgDStartoD0pi,pdgDgD0toKpi,mcArray);

      if(mcLabel>=0) isDStar = 1;
      if(mcLabel>0){
	Double_t zMC =-999;
	AliAODMCParticle* mcPart = dynamic_cast<AliAODMCParticle*>(mcArray->At(mcLabel));
      //fragmentation function in mc
	zMC= FillMCFF(mcPart,mcArray,mcLabel);
	if(zMC>0) theMCFF->Fill(zMC);
      }	      
    }

    // soft pion
    AliAODTrack *track2 = (AliAODTrack*)dstarD0pi->GetBachelor();              
    Double_t pt = dstarD0pi->Pt();

    // track quality cuts
    Int_t isTkSelected = fCuts->IsSelected(dstarD0pi,AliRDHFCuts::kTracks); // quality cuts on tracks
    if(!isTkSelected) continue;

    // region of interest + topological cuts + PID
    if(!fCuts->IsInFiducialAcceptance(dstarD0pi->Pt(),dstarD0pi->YDstar())) continue;    
    Int_t isSelected=fCuts->IsSelected(dstarD0pi,AliRDHFCuts::kCandidate); //selected
    if (!isSelected) continue;
    
    // fill histos
    finvM = dstarD0pi->InvMassD0();
    fInvMass->Fill(finvM); 

    //DStar invariant mass
    finvMDStar = dstarD0pi->InvMassDstarKpipi();
    
    Double_t EGjet = 0;
    Double_t dStarMom = dstarD0pi->P();
    Double_t phiDStar = dstarD0pi->Phi(); 
    Double_t phiD0    = theD0particle->Phi();
    //check suggested by Federico
    Double_t dPhiD0Dstar = phiD0 - phiDStar;
    
    dPhi = phiJet - phiDStar;

    //plot right dphi
    if(dPhi<=-(TMath::Pi())/2) dPhi = dPhi+2*(TMath::Pi());
    if(dPhi>(3*(TMath::Pi()))/2) dPhi = dPhi-2*(TMath::Pi());
    
    Double_t corrFactorCharge = (ejet/100)*20;
    EGjet =  ejet + corrFactorCharge;	
    
    // fill D* candidates
    Double_t mPDGD0=TDatabasePDG::Instance()->GetParticle(421)->Mass();
    if(finvM >= (mPDGD0-0.05) && finvM <=(mPDGD0+0.05)){ // ~3 sigma (sigma=17MeV, conservative)

      if(isDStar == 1) { 
	fDphiD0Dstar->Fill(dPhiD0Dstar);
	fDStarMass->Fill(finvMDStar); 
	fTrueDiff->Fill(finvMDStar-finvM);
      }
      if(isDStar == 0) fDphiD0Dstar->Fill(dPhiD0Dstar); // angle between D0 and D*

      fDStar->Fill(finvMDStar);
      fDiff ->Fill(finvMDStar-finvM);  	      
      
      Double_t mPDGDstar=TDatabasePDG::Instance()->GetParticle(413)->Mass();
      Double_t invmassDelta = dstarD0pi->DeltaInvMass();
      
      // now the dphi signal and the fragmentation function 
      if (TMath::Abs(invmassDelta-(mPDGDstar-mPDGD0))<0.0019){
	//fill candidates D* and soft pion reco pt
	
	fRECOPtDStar->Fill(pt);
	fPtPion->Fill(track2->Pt());
	
	fPhi ->Fill(dPhi);

	Double_t jetCone = 0.4;
	if(dPhi>=-jetCone && dPhi<=jetCone){  // evaluate in the near side inside UA1 radius		      
	  Double_t zFrag = (TMath::Cos(dPhi)*dStarMom)/EGjet;                               
	  fResZ->Fill(TMath::Abs(zFrag));		      
	}		    
      }
    }    
    // evaluate side band background
    SideBandBackground(finvM, finvMDStar, dStarMom, EGjet, dPhi);
    
  } // D* cand

AliDebug(2, Form("Found %i Reco particles that are D*!!",icountReco));

PostData(1,fOutput);
}

//________________________________________ terminate ___________________________
void AliAnalysisTaskSEDStarJets::Terminate(Option_t*)
{    
  // The Terminate() function is the last function to be called during
  // a query. It always runs on the client, it can be used to present
  // the results graphically or save the results to file.
  
  Info("Terminate"," terminate");
  AliAnalysisTaskSE::Terminate();

  fOutput = dynamic_cast<TList*> (GetOutputData(1));
  if (!fOutput) {     
    printf("ERROR: fOutput not available\n");
    return;
  }
  
  fDStarMass    = dynamic_cast<TH1F*>(fOutput->FindObject("fDStarMass"));
  fTrueDiff     = dynamic_cast<TH1F*>(fOutput->FindObject("fTrueDiff"));
  fInvMass      = dynamic_cast<TH1F*>(fOutput->FindObject("fInvMass"));
  fPtPion       = dynamic_cast<TH1F*>(fOutput->FindObject("fPtPion "));
  fDStar        = dynamic_cast<TH1F*>(fOutput->FindObject("fDStar"));
  fDiff         = dynamic_cast<TH1F*>(fOutput->FindObject("fDiff"));
  fDiffSideBand = dynamic_cast<TH1F*>(fOutput->FindObject("fDiffSideBand"));
  ftrigger      = dynamic_cast<TH1F*>(fOutput->FindObject("ftrigger"));
  fRECOPtDStar  = dynamic_cast<TH1F*>(fOutput->FindObject("fRECOPtDStar"));
  fRECOPtBkg    = dynamic_cast<TH1F*>(fOutput->FindObject("fRECOPtBkg"));
  fEjet         = dynamic_cast<TH1F*>(fOutput->FindObject("fEjet"));
  fPhijet       = dynamic_cast<TH1F*>(fOutput->FindObject("fPhijet"));
  fEtaJet       = dynamic_cast<TH1F*>(fOutput->FindObject("fEtaJet"));
  fPhi          = dynamic_cast<TH1F*>(fOutput->FindObject("fPhi"));
  fResZ         = dynamic_cast<TH1F*>(fOutput->FindObject("fResZ"));
  fResZBkg      = dynamic_cast<TH1F*>(fOutput->FindObject("fResZBkg"));
  fPhiBkg       = dynamic_cast<TH1F*>(fOutput->FindObject("fPhiBkg"));
  theMCFF       = dynamic_cast<TH1F*>(fOutput->FindObject("theMCFF"));
  fDphiD0Dstar  = dynamic_cast<TH1F*>(fOutput->FindObject("fDphiD0Dstar"));
  fPtJet  = dynamic_cast<TH1F*>(fOutput->FindObject("fPtJet"));

}
//___________________________________________________________________________

void AliAnalysisTaskSEDStarJets::UserCreateOutputObjects() { 
 // output 
  Info("UserCreateOutputObjects","CreateOutputObjects of task %s\n", GetName());
  
  //slot #1  
  OpenFile(1);
  fOutput = new TList();
  fOutput->SetOwner();
  // define histograms
  DefineHistoFroAnalysis();

  return;
}
//___________________________________ hiostograms _______________________________________

Bool_t  AliAnalysisTaskSEDStarJets::DefineHistoFroAnalysis(){
  
  // Invariant mass related histograms
  fInvMass = new TH1F("invMass","Kpi invariant mass distribution",1500,.5,3.5);
  fInvMass->SetStats(kTRUE);
  fInvMass->GetXaxis()->SetTitle("GeV/c");
  fInvMass->GetYaxis()->SetTitle("Entries");
  fOutput->Add(fInvMass);
  
  fDStar = new TH1F("invMassDStar","DStar invariant mass after D0 cuts ",600,1.8,2.4);
  fDStar->SetStats(kTRUE);
  fDStar->GetXaxis()->SetTitle("GeV/c");
  fDStar->GetYaxis()->SetTitle("Entries");
  fOutput->Add(fDStar);

  fDiff = new TH1F("Diff","M(kpipi)-M(kpi)",750,0.1,0.2);
  fDiff->SetStats(kTRUE);
  fDiff->GetXaxis()->SetTitle("M(kpipi)-M(kpi) GeV/c^2");
  fDiff->GetYaxis()->SetTitle("Entries");
  fOutput->Add(fDiff);
  
  fDiffSideBand = new TH1F("DiffSide","M(kpipi)-M(kpi) Side Band Background",750,0.1,0.2);
  fDiffSideBand->SetStats(kTRUE);
  fDiffSideBand->GetXaxis()->SetTitle("M(kpipi)-M(Kpi) GeV/c^2");
  fDiffSideBand->GetYaxis()->SetTitle("Entries");
  fOutput->Add(fDiffSideBand); 
 
  fDStarMass = new TH1F("RECODStar2","RECO DStar invariant mass distribution",750,1.5,2.5);
  fOutput->Add(fDStarMass);

  fTrueDiff  = new TH1F("dstar","True Reco diff",750,0,0.2);
  fOutput->Add(fTrueDiff);

  // trigger normalization
  ftrigger = new TH1F("Normalization","Normalization factor for correlations",1,0,10);
  ftrigger->SetStats(kTRUE);
  fOutput->Add(ftrigger);

  //correlation fistograms
  fPhi = new TH1F("phi","Delta phi between Jet axis and DStar ",25,-1.57,4.72);
  fPhi->SetStats(kTRUE);
  fPhi->GetXaxis()->SetTitle("#Delta #phi (rad)");
  fPhi->GetYaxis()->SetTitle("Entries");
  fOutput->Add(fPhi);

  fDphiD0Dstar = new TH1F("phiD0Dstar","Delta phi between D0 and DStar ",1000,-6.5,6.5);
  fOutput->Add(fDphiD0Dstar);

  fPhiBkg = new TH1F("phiBkg","Delta phi between Jet axis and DStar background ",25,-1.57,4.72);
  fPhiBkg->SetStats(kTRUE);
  fPhiBkg->GetXaxis()->SetTitle("#Delta #phi (rad)");
  fPhiBkg->GetYaxis()->SetTitle("Entries");
  fOutput->Add(fPhiBkg);

  fRECOPtDStar = new TH1F("RECODStar1","RECO DStar pt distribution",30,0,30);
  fRECOPtDStar->SetStats(kTRUE);
  fRECOPtDStar->SetLineColor(2);
  fRECOPtDStar->GetXaxis()->SetTitle("GeV/c");
  fRECOPtDStar->GetYaxis()->SetTitle("Entries");
  fOutput->Add(fRECOPtDStar);
  
  fRECOPtBkg = new TH1F("RECOptBkg","RECO pt distribution side bands",30,0,30);
  fRECOPtBkg->SetStats(kTRUE);
  fRECOPtBkg->SetLineColor(2);
  fRECOPtBkg->GetXaxis()->SetTitle("GeV/c");
  fRECOPtBkg->GetYaxis()->SetTitle("Entries");
  fOutput->Add(fRECOPtBkg);

  fPtPion = new TH1F("pionpt","Primary pions candidates pt ",500,0,10);
  fPtPion->SetStats(kTRUE);
  fPtPion->GetXaxis()->SetTitle("GeV/c");
  fPtPion->GetYaxis()->SetTitle("Entries");
  fOutput->Add(fPtPion);
    
  // jet related fistograms
  fEjet      = new TH1F("ejet",  "UA1 algorithm jet energy distribution",1000,0,500);
  fPhijet    = new TH1F("Phijet","UA1 algorithm jet #phi distribution",  200,-7,7);
  fEtaJet    = new TH1F("Etajet","UA1 algorithm jet #eta distribution",  200,-7,7);
  fPtJet      = new TH1F("PtJet",  "UA1 algorithm jet Pt distribution",1000,0,500);
  fOutput->Add(fEjet);
  fOutput->Add(fPhijet);
  fOutput->Add(fEtaJet);
  fOutput->Add(fPtJet);

  theMCFF    = new TH1F("FragFuncMC","Fragmentation function in MC for FC ",100,0,10);
  fResZ      = new TH1F("FragFunc","Fragmentation function ",50,0,1);
  fResZBkg   = new TH1F("FragFuncBkg","Fragmentation function background",50,0,1);  
  fOutput->Add(theMCFF);
  fOutput->Add(fResZ);
  fOutput->Add(fResZBkg);

  return kTRUE; 
}

//______________________________ side band background for D*___________________________________

void AliAnalysisTaskSEDStarJets::SideBandBackground(Double_t invM, Double_t invMDStar, Double_t dStarMomBkg, Double_t EGjet, Double_t dPhi){

  //  D* side band background method. Two side bands, in M(Kpi) are taken at ~6 sigmas 
  // (expected detector resolution) on the left and right frm the D0 mass. Each band
  //  has a width of ~5 sigmas. Two band needed  for opening angle considerations   
  
  if((invM>=1.7 && invM<=1.8) || (invM>=1.92 && invM<=2.19)){    
    fDiffSideBand->Fill(invMDStar-invM); // M(Kpipi)-M(Kpi) side band background    
    if ((invMDStar-invM)<=0.14732 && (invMDStar-invM)>=0.14352) {                                                  
      fPhiBkg->Fill(dPhi);
      fRECOPtBkg->Fill(dStarMomBkg);
      if(dPhi>=-0.4 && dPhi<=0.4){  // evaluate in the near side	
	Double_t zFragBkg = (TMath::Cos(dPhi)*dStarMomBkg)/EGjet;                               
	fResZBkg->Fill(TMath::Abs(zFragBkg));	
      }
    }
  }
}

//_____________________________________________________________________________________________-
double AliAnalysisTaskSEDStarJets::FillMCFF(AliAODMCParticle* mcPart, TClonesArray* mcArray, Int_t mcLabel){
  //
  // GS from MC
  // UA1 jet algorithm reproduced in MC
  //
  Double_t zMC2 =-999;
  
  Double_t leading =0;
  Double_t PartE = 0;
  Double_t PhiLeading = -999;
  Double_t EtaLeading = -999;
  Double_t PtLeading = -999;
  Int_t counter =-999;

  if (!mcPart) return zMC2;
  if (!mcArray) return zMC2;

  //find leading particle
  for (Int_t iPart=0; iPart<mcArray->GetEntriesFast(); iPart++) { 
    AliAODMCParticle* Part = dynamic_cast<AliAODMCParticle*>(mcArray->At(iPart));
    if (!Part) {
      AliWarning("MC Particle not found in tree, skipping"); 
      continue;
    } 
   
    // remove quarks and the leading particle (it will be counted later)
    if(iPart == mcLabel) continue;
    if(iPart <= 8) continue;
    
    //remove resonances not directly detected in detector
    Int_t PDGCode = Part->GetPdgCode();

    // be sure the particle reach the detector
    Double_t x = Part->Xv();
    Double_t y = Part->Yv();
    Double_t z = Part->Zv();
    
    if(TMath::Abs(PDGCode)== 2212 && x<3 && y<3) continue;
    if(TMath::Abs(x)>30 || TMath::Abs(y)>30 || TMath::Abs(z)>30 ) continue; 
    if(TMath::Abs(PDGCode)!=211 && TMath::Abs(PDGCode)!=321 &&  TMath::Abs(PDGCode)!=11 &&  TMath::Abs(PDGCode)!=13 &&  TMath::Abs(PDGCode)!=2212) continue;

    Int_t daug0 = -999;
    Double_t xd =-999;
    Double_t yd =-999;
    Double_t zd =-999;
    
    daug0 = Part->GetDaughter(0);
    
    if(daug0>=0){
      AliAODMCParticle* tdaug = dynamic_cast<AliAODMCParticle*>(mcArray->At(daug0));
      if(tdaug){ 
      xd = tdaug->Xv();
      yd = tdaug->Yv();
      zd = tdaug->Zv();
      }
    }
    if(TMath::Abs(xd)<3 || TMath::Abs(yd)<3) continue;

    Bool_t AliceAcc = (TMath::Abs(Part->Eta()) <= 0.9);
    if(!AliceAcc) continue; 

    PartE  = Part->E();

    if(PartE>leading){
      leading = Part->E();
      PhiLeading = Part->Phi();
      EtaLeading = Part->Eta();
      PtLeading = Part->Pt();
      counter = iPart;
    } 
 
  }

  Double_t jetEnergy = 0;

  //reconstruct the jet
  for (Int_t iiPart=0; iiPart<mcArray->GetEntriesFast(); iiPart++) { 
    AliAODMCParticle* tPart = dynamic_cast<AliAODMCParticle*>(mcArray->At(iiPart));
    if (!tPart) {
      AliWarning("MC Particle not found in tree, skipping"); 
      continue;
    } 
    // remove quarks and the leading particle (it will be counted later)
    if(iiPart == counter) continue; // do not count again the leading particle
    if(iiPart == mcLabel) continue;
    if(iiPart <= 8) continue;

    //remove resonances not directly detected in detector
    Int_t PDGCode = tPart->GetPdgCode();

    // be sure the particle reach the detector
    Double_t x = tPart->Xv();
    Double_t y = tPart->Yv();
    Double_t z = tPart->Zv();
    
    if(TMath::Abs(PDGCode)== 2212 && (x<3 && y<3)) continue;    
    if(TMath::Abs(x)>30 || TMath::Abs(y)>30 || TMath::Abs(z)>30 ) continue; // has to be generated at least in the silicon tracker or beam pipe
    if(TMath::Abs(PDGCode)!=211 && TMath::Abs(PDGCode)!=321 &&  TMath::Abs(PDGCode)!=11 &&  TMath::Abs(PDGCode)!=13 &&  TMath::Abs(PDGCode)!=2212) continue;


    Int_t daug0 = -999;
    Double_t xd =-999;
    Double_t yd =-999;
    Double_t zd =-999;

    daug0 = tPart->GetDaughter(0);

    if(daug0>=0){
      AliAODMCParticle* tdaug = dynamic_cast<AliAODMCParticle*>(mcArray->At(daug0));
      if(tdaug){ 
      xd = tdaug->Xv();
      yd = tdaug->Yv();
      zd = tdaug->Zv();
      }
    }
    if(TMath::Abs(xd)<3 && TMath::Abs(yd)<3) continue;
    //remove particles not in ALICE acceptance
    if(tPart->Pt()<0.07) continue;
    Bool_t AliceAcc = (TMath::Abs(tPart->Eta()) <= 0.9); 
    if(!AliceAcc) continue; 

    Double_t EtaMCp = tPart->Eta();
    Double_t PhiMCp = tPart->Phi();

    Double_t DphiMClead = PhiLeading-PhiMCp;

    if(DphiMClead<=-(TMath::Pi())/2) DphiMClead = DphiMClead+2*(TMath::Pi());
    if(DphiMClead>(3*(TMath::Pi()))/2) DphiMClead = DphiMClead-2*(TMath::Pi());

    Double_t deta = (EtaLeading-EtaMCp);
    //cone radius
    Double_t radius = TMath::Sqrt((DphiMClead*DphiMClead)+(deta*deta));

    if(radius>0.4) continue; // in the jet cone
    if(tPart->Charge()==0) continue; // only charged fraction

    jetEnergy = jetEnergy+(tPart->E());
  }

  jetEnergy = jetEnergy + leading;

  // delta phi D*, jet axis
  Double_t dPhi = PhiLeading - (mcPart->Phi());

  //plot right dphi
  if(dPhi<=-(TMath::Pi())/2) dPhi = dPhi+2*(TMath::Pi());
  if(dPhi>(3*(TMath::Pi()))/2) dPhi = dPhi-2*(TMath::Pi());

  zMC2 = (TMath::Cos(dPhi)*(mcPart->P()))/jetEnergy;

  return zMC2; 
}
 AliAnalysisTaskSEDStarJets.cxx:1
 AliAnalysisTaskSEDStarJets.cxx:2
 AliAnalysisTaskSEDStarJets.cxx:3
 AliAnalysisTaskSEDStarJets.cxx:4
 AliAnalysisTaskSEDStarJets.cxx:5
 AliAnalysisTaskSEDStarJets.cxx:6
 AliAnalysisTaskSEDStarJets.cxx:7
 AliAnalysisTaskSEDStarJets.cxx:8
 AliAnalysisTaskSEDStarJets.cxx:9
 AliAnalysisTaskSEDStarJets.cxx:10
 AliAnalysisTaskSEDStarJets.cxx:11
 AliAnalysisTaskSEDStarJets.cxx:12
 AliAnalysisTaskSEDStarJets.cxx:13
 AliAnalysisTaskSEDStarJets.cxx:14
 AliAnalysisTaskSEDStarJets.cxx:15
 AliAnalysisTaskSEDStarJets.cxx:16
 AliAnalysisTaskSEDStarJets.cxx:17
 AliAnalysisTaskSEDStarJets.cxx:18
 AliAnalysisTaskSEDStarJets.cxx:19
 AliAnalysisTaskSEDStarJets.cxx:20
 AliAnalysisTaskSEDStarJets.cxx:21
 AliAnalysisTaskSEDStarJets.cxx:22
 AliAnalysisTaskSEDStarJets.cxx:23
 AliAnalysisTaskSEDStarJets.cxx:24
 AliAnalysisTaskSEDStarJets.cxx:25
 AliAnalysisTaskSEDStarJets.cxx:26
 AliAnalysisTaskSEDStarJets.cxx:27
 AliAnalysisTaskSEDStarJets.cxx:28
 AliAnalysisTaskSEDStarJets.cxx:29
 AliAnalysisTaskSEDStarJets.cxx:30
 AliAnalysisTaskSEDStarJets.cxx:31
 AliAnalysisTaskSEDStarJets.cxx:32
 AliAnalysisTaskSEDStarJets.cxx:33
 AliAnalysisTaskSEDStarJets.cxx:34
 AliAnalysisTaskSEDStarJets.cxx:35
 AliAnalysisTaskSEDStarJets.cxx:36
 AliAnalysisTaskSEDStarJets.cxx:37
 AliAnalysisTaskSEDStarJets.cxx:38
 AliAnalysisTaskSEDStarJets.cxx:39
 AliAnalysisTaskSEDStarJets.cxx:40
 AliAnalysisTaskSEDStarJets.cxx:41
 AliAnalysisTaskSEDStarJets.cxx:42
 AliAnalysisTaskSEDStarJets.cxx:43
 AliAnalysisTaskSEDStarJets.cxx:44
 AliAnalysisTaskSEDStarJets.cxx:45
 AliAnalysisTaskSEDStarJets.cxx:46
 AliAnalysisTaskSEDStarJets.cxx:47
 AliAnalysisTaskSEDStarJets.cxx:48
 AliAnalysisTaskSEDStarJets.cxx:49
 AliAnalysisTaskSEDStarJets.cxx:50
 AliAnalysisTaskSEDStarJets.cxx:51
 AliAnalysisTaskSEDStarJets.cxx:52
 AliAnalysisTaskSEDStarJets.cxx:53
 AliAnalysisTaskSEDStarJets.cxx:54
 AliAnalysisTaskSEDStarJets.cxx:55
 AliAnalysisTaskSEDStarJets.cxx:56
 AliAnalysisTaskSEDStarJets.cxx:57
 AliAnalysisTaskSEDStarJets.cxx:58
 AliAnalysisTaskSEDStarJets.cxx:59
 AliAnalysisTaskSEDStarJets.cxx:60
 AliAnalysisTaskSEDStarJets.cxx:61
 AliAnalysisTaskSEDStarJets.cxx:62
 AliAnalysisTaskSEDStarJets.cxx:63
 AliAnalysisTaskSEDStarJets.cxx:64
 AliAnalysisTaskSEDStarJets.cxx:65
 AliAnalysisTaskSEDStarJets.cxx:66
 AliAnalysisTaskSEDStarJets.cxx:67
 AliAnalysisTaskSEDStarJets.cxx:68
 AliAnalysisTaskSEDStarJets.cxx:69
 AliAnalysisTaskSEDStarJets.cxx:70
 AliAnalysisTaskSEDStarJets.cxx:71
 AliAnalysisTaskSEDStarJets.cxx:72
 AliAnalysisTaskSEDStarJets.cxx:73
 AliAnalysisTaskSEDStarJets.cxx:74
 AliAnalysisTaskSEDStarJets.cxx:75
 AliAnalysisTaskSEDStarJets.cxx:76
 AliAnalysisTaskSEDStarJets.cxx:77
 AliAnalysisTaskSEDStarJets.cxx:78
 AliAnalysisTaskSEDStarJets.cxx:79
 AliAnalysisTaskSEDStarJets.cxx:80
 AliAnalysisTaskSEDStarJets.cxx:81
 AliAnalysisTaskSEDStarJets.cxx:82
 AliAnalysisTaskSEDStarJets.cxx:83
 AliAnalysisTaskSEDStarJets.cxx:84
 AliAnalysisTaskSEDStarJets.cxx:85
 AliAnalysisTaskSEDStarJets.cxx:86
 AliAnalysisTaskSEDStarJets.cxx:87
 AliAnalysisTaskSEDStarJets.cxx:88
 AliAnalysisTaskSEDStarJets.cxx:89
 AliAnalysisTaskSEDStarJets.cxx:90
 AliAnalysisTaskSEDStarJets.cxx:91
 AliAnalysisTaskSEDStarJets.cxx:92
 AliAnalysisTaskSEDStarJets.cxx:93
 AliAnalysisTaskSEDStarJets.cxx:94
 AliAnalysisTaskSEDStarJets.cxx:95
 AliAnalysisTaskSEDStarJets.cxx:96
 AliAnalysisTaskSEDStarJets.cxx:97
 AliAnalysisTaskSEDStarJets.cxx:98
 AliAnalysisTaskSEDStarJets.cxx:99
 AliAnalysisTaskSEDStarJets.cxx:100
 AliAnalysisTaskSEDStarJets.cxx:101
 AliAnalysisTaskSEDStarJets.cxx:102
 AliAnalysisTaskSEDStarJets.cxx:103
 AliAnalysisTaskSEDStarJets.cxx:104
 AliAnalysisTaskSEDStarJets.cxx:105
 AliAnalysisTaskSEDStarJets.cxx:106
 AliAnalysisTaskSEDStarJets.cxx:107
 AliAnalysisTaskSEDStarJets.cxx:108
 AliAnalysisTaskSEDStarJets.cxx:109
 AliAnalysisTaskSEDStarJets.cxx:110
 AliAnalysisTaskSEDStarJets.cxx:111
 AliAnalysisTaskSEDStarJets.cxx:112
 AliAnalysisTaskSEDStarJets.cxx:113
 AliAnalysisTaskSEDStarJets.cxx:114
 AliAnalysisTaskSEDStarJets.cxx:115
 AliAnalysisTaskSEDStarJets.cxx:116
 AliAnalysisTaskSEDStarJets.cxx:117
 AliAnalysisTaskSEDStarJets.cxx:118
 AliAnalysisTaskSEDStarJets.cxx:119
 AliAnalysisTaskSEDStarJets.cxx:120
 AliAnalysisTaskSEDStarJets.cxx:121
 AliAnalysisTaskSEDStarJets.cxx:122
 AliAnalysisTaskSEDStarJets.cxx:123
 AliAnalysisTaskSEDStarJets.cxx:124
 AliAnalysisTaskSEDStarJets.cxx:125
 AliAnalysisTaskSEDStarJets.cxx:126
 AliAnalysisTaskSEDStarJets.cxx:127
 AliAnalysisTaskSEDStarJets.cxx:128
 AliAnalysisTaskSEDStarJets.cxx:129
 AliAnalysisTaskSEDStarJets.cxx:130
 AliAnalysisTaskSEDStarJets.cxx:131
 AliAnalysisTaskSEDStarJets.cxx:132
 AliAnalysisTaskSEDStarJets.cxx:133
 AliAnalysisTaskSEDStarJets.cxx:134
 AliAnalysisTaskSEDStarJets.cxx:135
 AliAnalysisTaskSEDStarJets.cxx:136
 AliAnalysisTaskSEDStarJets.cxx:137
 AliAnalysisTaskSEDStarJets.cxx:138
 AliAnalysisTaskSEDStarJets.cxx:139
 AliAnalysisTaskSEDStarJets.cxx:140
 AliAnalysisTaskSEDStarJets.cxx:141
 AliAnalysisTaskSEDStarJets.cxx:142
 AliAnalysisTaskSEDStarJets.cxx:143
 AliAnalysisTaskSEDStarJets.cxx:144
 AliAnalysisTaskSEDStarJets.cxx:145
 AliAnalysisTaskSEDStarJets.cxx:146
 AliAnalysisTaskSEDStarJets.cxx:147
 AliAnalysisTaskSEDStarJets.cxx:148
 AliAnalysisTaskSEDStarJets.cxx:149
 AliAnalysisTaskSEDStarJets.cxx:150
 AliAnalysisTaskSEDStarJets.cxx:151
 AliAnalysisTaskSEDStarJets.cxx:152
 AliAnalysisTaskSEDStarJets.cxx:153
 AliAnalysisTaskSEDStarJets.cxx:154
 AliAnalysisTaskSEDStarJets.cxx:155
 AliAnalysisTaskSEDStarJets.cxx:156
 AliAnalysisTaskSEDStarJets.cxx:157
 AliAnalysisTaskSEDStarJets.cxx:158
 AliAnalysisTaskSEDStarJets.cxx:159
 AliAnalysisTaskSEDStarJets.cxx:160
 AliAnalysisTaskSEDStarJets.cxx:161
 AliAnalysisTaskSEDStarJets.cxx:162
 AliAnalysisTaskSEDStarJets.cxx:163
 AliAnalysisTaskSEDStarJets.cxx:164
 AliAnalysisTaskSEDStarJets.cxx:165
 AliAnalysisTaskSEDStarJets.cxx:166
 AliAnalysisTaskSEDStarJets.cxx:167
 AliAnalysisTaskSEDStarJets.cxx:168
 AliAnalysisTaskSEDStarJets.cxx:169
 AliAnalysisTaskSEDStarJets.cxx:170
 AliAnalysisTaskSEDStarJets.cxx:171
 AliAnalysisTaskSEDStarJets.cxx:172
 AliAnalysisTaskSEDStarJets.cxx:173
 AliAnalysisTaskSEDStarJets.cxx:174
 AliAnalysisTaskSEDStarJets.cxx:175
 AliAnalysisTaskSEDStarJets.cxx:176
 AliAnalysisTaskSEDStarJets.cxx:177
 AliAnalysisTaskSEDStarJets.cxx:178
 AliAnalysisTaskSEDStarJets.cxx:179
 AliAnalysisTaskSEDStarJets.cxx:180
 AliAnalysisTaskSEDStarJets.cxx:181
 AliAnalysisTaskSEDStarJets.cxx:182
 AliAnalysisTaskSEDStarJets.cxx:183
 AliAnalysisTaskSEDStarJets.cxx:184
 AliAnalysisTaskSEDStarJets.cxx:185
 AliAnalysisTaskSEDStarJets.cxx:186
 AliAnalysisTaskSEDStarJets.cxx:187
 AliAnalysisTaskSEDStarJets.cxx:188
 AliAnalysisTaskSEDStarJets.cxx:189
 AliAnalysisTaskSEDStarJets.cxx:190
 AliAnalysisTaskSEDStarJets.cxx:191
 AliAnalysisTaskSEDStarJets.cxx:192
 AliAnalysisTaskSEDStarJets.cxx:193
 AliAnalysisTaskSEDStarJets.cxx:194
 AliAnalysisTaskSEDStarJets.cxx:195
 AliAnalysisTaskSEDStarJets.cxx:196
 AliAnalysisTaskSEDStarJets.cxx:197
 AliAnalysisTaskSEDStarJets.cxx:198
 AliAnalysisTaskSEDStarJets.cxx:199
 AliAnalysisTaskSEDStarJets.cxx:200
 AliAnalysisTaskSEDStarJets.cxx:201
 AliAnalysisTaskSEDStarJets.cxx:202
 AliAnalysisTaskSEDStarJets.cxx:203
 AliAnalysisTaskSEDStarJets.cxx:204
 AliAnalysisTaskSEDStarJets.cxx:205
 AliAnalysisTaskSEDStarJets.cxx:206
 AliAnalysisTaskSEDStarJets.cxx:207
 AliAnalysisTaskSEDStarJets.cxx:208
 AliAnalysisTaskSEDStarJets.cxx:209
 AliAnalysisTaskSEDStarJets.cxx:210
 AliAnalysisTaskSEDStarJets.cxx:211
 AliAnalysisTaskSEDStarJets.cxx:212
 AliAnalysisTaskSEDStarJets.cxx:213
 AliAnalysisTaskSEDStarJets.cxx:214
 AliAnalysisTaskSEDStarJets.cxx:215
 AliAnalysisTaskSEDStarJets.cxx:216
 AliAnalysisTaskSEDStarJets.cxx:217
 AliAnalysisTaskSEDStarJets.cxx:218
 AliAnalysisTaskSEDStarJets.cxx:219
 AliAnalysisTaskSEDStarJets.cxx:220
 AliAnalysisTaskSEDStarJets.cxx:221
 AliAnalysisTaskSEDStarJets.cxx:222
 AliAnalysisTaskSEDStarJets.cxx:223
 AliAnalysisTaskSEDStarJets.cxx:224
 AliAnalysisTaskSEDStarJets.cxx:225
 AliAnalysisTaskSEDStarJets.cxx:226
 AliAnalysisTaskSEDStarJets.cxx:227
 AliAnalysisTaskSEDStarJets.cxx:228
 AliAnalysisTaskSEDStarJets.cxx:229
 AliAnalysisTaskSEDStarJets.cxx:230
 AliAnalysisTaskSEDStarJets.cxx:231
 AliAnalysisTaskSEDStarJets.cxx:232
 AliAnalysisTaskSEDStarJets.cxx:233
 AliAnalysisTaskSEDStarJets.cxx:234
 AliAnalysisTaskSEDStarJets.cxx:235
 AliAnalysisTaskSEDStarJets.cxx:236
 AliAnalysisTaskSEDStarJets.cxx:237
 AliAnalysisTaskSEDStarJets.cxx:238
 AliAnalysisTaskSEDStarJets.cxx:239
 AliAnalysisTaskSEDStarJets.cxx:240
 AliAnalysisTaskSEDStarJets.cxx:241
 AliAnalysisTaskSEDStarJets.cxx:242
 AliAnalysisTaskSEDStarJets.cxx:243
 AliAnalysisTaskSEDStarJets.cxx:244
 AliAnalysisTaskSEDStarJets.cxx:245
 AliAnalysisTaskSEDStarJets.cxx:246
 AliAnalysisTaskSEDStarJets.cxx:247
 AliAnalysisTaskSEDStarJets.cxx:248
 AliAnalysisTaskSEDStarJets.cxx:249
 AliAnalysisTaskSEDStarJets.cxx:250
 AliAnalysisTaskSEDStarJets.cxx:251
 AliAnalysisTaskSEDStarJets.cxx:252
 AliAnalysisTaskSEDStarJets.cxx:253
 AliAnalysisTaskSEDStarJets.cxx:254
 AliAnalysisTaskSEDStarJets.cxx:255
 AliAnalysisTaskSEDStarJets.cxx:256
 AliAnalysisTaskSEDStarJets.cxx:257
 AliAnalysisTaskSEDStarJets.cxx:258
 AliAnalysisTaskSEDStarJets.cxx:259
 AliAnalysisTaskSEDStarJets.cxx:260
 AliAnalysisTaskSEDStarJets.cxx:261
 AliAnalysisTaskSEDStarJets.cxx:262
 AliAnalysisTaskSEDStarJets.cxx:263
 AliAnalysisTaskSEDStarJets.cxx:264
 AliAnalysisTaskSEDStarJets.cxx:265
 AliAnalysisTaskSEDStarJets.cxx:266
 AliAnalysisTaskSEDStarJets.cxx:267
 AliAnalysisTaskSEDStarJets.cxx:268
 AliAnalysisTaskSEDStarJets.cxx:269
 AliAnalysisTaskSEDStarJets.cxx:270
 AliAnalysisTaskSEDStarJets.cxx:271
 AliAnalysisTaskSEDStarJets.cxx:272
 AliAnalysisTaskSEDStarJets.cxx:273
 AliAnalysisTaskSEDStarJets.cxx:274
 AliAnalysisTaskSEDStarJets.cxx:275
 AliAnalysisTaskSEDStarJets.cxx:276
 AliAnalysisTaskSEDStarJets.cxx:277
 AliAnalysisTaskSEDStarJets.cxx:278
 AliAnalysisTaskSEDStarJets.cxx:279
 AliAnalysisTaskSEDStarJets.cxx:280
 AliAnalysisTaskSEDStarJets.cxx:281
 AliAnalysisTaskSEDStarJets.cxx:282
 AliAnalysisTaskSEDStarJets.cxx:283
 AliAnalysisTaskSEDStarJets.cxx:284
 AliAnalysisTaskSEDStarJets.cxx:285
 AliAnalysisTaskSEDStarJets.cxx:286
 AliAnalysisTaskSEDStarJets.cxx:287
 AliAnalysisTaskSEDStarJets.cxx:288
 AliAnalysisTaskSEDStarJets.cxx:289
 AliAnalysisTaskSEDStarJets.cxx:290
 AliAnalysisTaskSEDStarJets.cxx:291
 AliAnalysisTaskSEDStarJets.cxx:292
 AliAnalysisTaskSEDStarJets.cxx:293
 AliAnalysisTaskSEDStarJets.cxx:294
 AliAnalysisTaskSEDStarJets.cxx:295
 AliAnalysisTaskSEDStarJets.cxx:296
 AliAnalysisTaskSEDStarJets.cxx:297
 AliAnalysisTaskSEDStarJets.cxx:298
 AliAnalysisTaskSEDStarJets.cxx:299
 AliAnalysisTaskSEDStarJets.cxx:300
 AliAnalysisTaskSEDStarJets.cxx:301
 AliAnalysisTaskSEDStarJets.cxx:302
 AliAnalysisTaskSEDStarJets.cxx:303
 AliAnalysisTaskSEDStarJets.cxx:304
 AliAnalysisTaskSEDStarJets.cxx:305
 AliAnalysisTaskSEDStarJets.cxx:306
 AliAnalysisTaskSEDStarJets.cxx:307
 AliAnalysisTaskSEDStarJets.cxx:308
 AliAnalysisTaskSEDStarJets.cxx:309
 AliAnalysisTaskSEDStarJets.cxx:310
 AliAnalysisTaskSEDStarJets.cxx:311
 AliAnalysisTaskSEDStarJets.cxx:312
 AliAnalysisTaskSEDStarJets.cxx:313
 AliAnalysisTaskSEDStarJets.cxx:314
 AliAnalysisTaskSEDStarJets.cxx:315
 AliAnalysisTaskSEDStarJets.cxx:316
 AliAnalysisTaskSEDStarJets.cxx:317
 AliAnalysisTaskSEDStarJets.cxx:318
 AliAnalysisTaskSEDStarJets.cxx:319
 AliAnalysisTaskSEDStarJets.cxx:320
 AliAnalysisTaskSEDStarJets.cxx:321
 AliAnalysisTaskSEDStarJets.cxx:322
 AliAnalysisTaskSEDStarJets.cxx:323
 AliAnalysisTaskSEDStarJets.cxx:324
 AliAnalysisTaskSEDStarJets.cxx:325
 AliAnalysisTaskSEDStarJets.cxx:326
 AliAnalysisTaskSEDStarJets.cxx:327
 AliAnalysisTaskSEDStarJets.cxx:328
 AliAnalysisTaskSEDStarJets.cxx:329
 AliAnalysisTaskSEDStarJets.cxx:330
 AliAnalysisTaskSEDStarJets.cxx:331
 AliAnalysisTaskSEDStarJets.cxx:332
 AliAnalysisTaskSEDStarJets.cxx:333
 AliAnalysisTaskSEDStarJets.cxx:334
 AliAnalysisTaskSEDStarJets.cxx:335
 AliAnalysisTaskSEDStarJets.cxx:336
 AliAnalysisTaskSEDStarJets.cxx:337
 AliAnalysisTaskSEDStarJets.cxx:338
 AliAnalysisTaskSEDStarJets.cxx:339
 AliAnalysisTaskSEDStarJets.cxx:340
 AliAnalysisTaskSEDStarJets.cxx:341
 AliAnalysisTaskSEDStarJets.cxx:342
 AliAnalysisTaskSEDStarJets.cxx:343
 AliAnalysisTaskSEDStarJets.cxx:344
 AliAnalysisTaskSEDStarJets.cxx:345
 AliAnalysisTaskSEDStarJets.cxx:346
 AliAnalysisTaskSEDStarJets.cxx:347
 AliAnalysisTaskSEDStarJets.cxx:348
 AliAnalysisTaskSEDStarJets.cxx:349
 AliAnalysisTaskSEDStarJets.cxx:350
 AliAnalysisTaskSEDStarJets.cxx:351
 AliAnalysisTaskSEDStarJets.cxx:352
 AliAnalysisTaskSEDStarJets.cxx:353
 AliAnalysisTaskSEDStarJets.cxx:354
 AliAnalysisTaskSEDStarJets.cxx:355
 AliAnalysisTaskSEDStarJets.cxx:356
 AliAnalysisTaskSEDStarJets.cxx:357
 AliAnalysisTaskSEDStarJets.cxx:358
 AliAnalysisTaskSEDStarJets.cxx:359
 AliAnalysisTaskSEDStarJets.cxx:360
 AliAnalysisTaskSEDStarJets.cxx:361
 AliAnalysisTaskSEDStarJets.cxx:362
 AliAnalysisTaskSEDStarJets.cxx:363
 AliAnalysisTaskSEDStarJets.cxx:364
 AliAnalysisTaskSEDStarJets.cxx:365
 AliAnalysisTaskSEDStarJets.cxx:366
 AliAnalysisTaskSEDStarJets.cxx:367
 AliAnalysisTaskSEDStarJets.cxx:368
 AliAnalysisTaskSEDStarJets.cxx:369
 AliAnalysisTaskSEDStarJets.cxx:370
 AliAnalysisTaskSEDStarJets.cxx:371
 AliAnalysisTaskSEDStarJets.cxx:372
 AliAnalysisTaskSEDStarJets.cxx:373
 AliAnalysisTaskSEDStarJets.cxx:374
 AliAnalysisTaskSEDStarJets.cxx:375
 AliAnalysisTaskSEDStarJets.cxx:376
 AliAnalysisTaskSEDStarJets.cxx:377
 AliAnalysisTaskSEDStarJets.cxx:378
 AliAnalysisTaskSEDStarJets.cxx:379
 AliAnalysisTaskSEDStarJets.cxx:380
 AliAnalysisTaskSEDStarJets.cxx:381
 AliAnalysisTaskSEDStarJets.cxx:382
 AliAnalysisTaskSEDStarJets.cxx:383
 AliAnalysisTaskSEDStarJets.cxx:384
 AliAnalysisTaskSEDStarJets.cxx:385
 AliAnalysisTaskSEDStarJets.cxx:386
 AliAnalysisTaskSEDStarJets.cxx:387
 AliAnalysisTaskSEDStarJets.cxx:388
 AliAnalysisTaskSEDStarJets.cxx:389
 AliAnalysisTaskSEDStarJets.cxx:390
 AliAnalysisTaskSEDStarJets.cxx:391
 AliAnalysisTaskSEDStarJets.cxx:392
 AliAnalysisTaskSEDStarJets.cxx:393
 AliAnalysisTaskSEDStarJets.cxx:394
 AliAnalysisTaskSEDStarJets.cxx:395
 AliAnalysisTaskSEDStarJets.cxx:396
 AliAnalysisTaskSEDStarJets.cxx:397
 AliAnalysisTaskSEDStarJets.cxx:398
 AliAnalysisTaskSEDStarJets.cxx:399
 AliAnalysisTaskSEDStarJets.cxx:400
 AliAnalysisTaskSEDStarJets.cxx:401
 AliAnalysisTaskSEDStarJets.cxx:402
 AliAnalysisTaskSEDStarJets.cxx:403
 AliAnalysisTaskSEDStarJets.cxx:404
 AliAnalysisTaskSEDStarJets.cxx:405
 AliAnalysisTaskSEDStarJets.cxx:406
 AliAnalysisTaskSEDStarJets.cxx:407
 AliAnalysisTaskSEDStarJets.cxx:408
 AliAnalysisTaskSEDStarJets.cxx:409
 AliAnalysisTaskSEDStarJets.cxx:410
 AliAnalysisTaskSEDStarJets.cxx:411
 AliAnalysisTaskSEDStarJets.cxx:412
 AliAnalysisTaskSEDStarJets.cxx:413
 AliAnalysisTaskSEDStarJets.cxx:414
 AliAnalysisTaskSEDStarJets.cxx:415
 AliAnalysisTaskSEDStarJets.cxx:416
 AliAnalysisTaskSEDStarJets.cxx:417
 AliAnalysisTaskSEDStarJets.cxx:418
 AliAnalysisTaskSEDStarJets.cxx:419
 AliAnalysisTaskSEDStarJets.cxx:420
 AliAnalysisTaskSEDStarJets.cxx:421
 AliAnalysisTaskSEDStarJets.cxx:422
 AliAnalysisTaskSEDStarJets.cxx:423
 AliAnalysisTaskSEDStarJets.cxx:424
 AliAnalysisTaskSEDStarJets.cxx:425
 AliAnalysisTaskSEDStarJets.cxx:426
 AliAnalysisTaskSEDStarJets.cxx:427
 AliAnalysisTaskSEDStarJets.cxx:428
 AliAnalysisTaskSEDStarJets.cxx:429
 AliAnalysisTaskSEDStarJets.cxx:430
 AliAnalysisTaskSEDStarJets.cxx:431
 AliAnalysisTaskSEDStarJets.cxx:432
 AliAnalysisTaskSEDStarJets.cxx:433
 AliAnalysisTaskSEDStarJets.cxx:434
 AliAnalysisTaskSEDStarJets.cxx:435
 AliAnalysisTaskSEDStarJets.cxx:436
 AliAnalysisTaskSEDStarJets.cxx:437
 AliAnalysisTaskSEDStarJets.cxx:438
 AliAnalysisTaskSEDStarJets.cxx:439
 AliAnalysisTaskSEDStarJets.cxx:440
 AliAnalysisTaskSEDStarJets.cxx:441
 AliAnalysisTaskSEDStarJets.cxx:442
 AliAnalysisTaskSEDStarJets.cxx:443
 AliAnalysisTaskSEDStarJets.cxx:444
 AliAnalysisTaskSEDStarJets.cxx:445
 AliAnalysisTaskSEDStarJets.cxx:446
 AliAnalysisTaskSEDStarJets.cxx:447
 AliAnalysisTaskSEDStarJets.cxx:448
 AliAnalysisTaskSEDStarJets.cxx:449
 AliAnalysisTaskSEDStarJets.cxx:450
 AliAnalysisTaskSEDStarJets.cxx:451
 AliAnalysisTaskSEDStarJets.cxx:452
 AliAnalysisTaskSEDStarJets.cxx:453
 AliAnalysisTaskSEDStarJets.cxx:454
 AliAnalysisTaskSEDStarJets.cxx:455
 AliAnalysisTaskSEDStarJets.cxx:456
 AliAnalysisTaskSEDStarJets.cxx:457
 AliAnalysisTaskSEDStarJets.cxx:458
 AliAnalysisTaskSEDStarJets.cxx:459
 AliAnalysisTaskSEDStarJets.cxx:460
 AliAnalysisTaskSEDStarJets.cxx:461
 AliAnalysisTaskSEDStarJets.cxx:462
 AliAnalysisTaskSEDStarJets.cxx:463
 AliAnalysisTaskSEDStarJets.cxx:464
 AliAnalysisTaskSEDStarJets.cxx:465
 AliAnalysisTaskSEDStarJets.cxx:466
 AliAnalysisTaskSEDStarJets.cxx:467
 AliAnalysisTaskSEDStarJets.cxx:468
 AliAnalysisTaskSEDStarJets.cxx:469
 AliAnalysisTaskSEDStarJets.cxx:470
 AliAnalysisTaskSEDStarJets.cxx:471
 AliAnalysisTaskSEDStarJets.cxx:472
 AliAnalysisTaskSEDStarJets.cxx:473
 AliAnalysisTaskSEDStarJets.cxx:474
 AliAnalysisTaskSEDStarJets.cxx:475
 AliAnalysisTaskSEDStarJets.cxx:476
 AliAnalysisTaskSEDStarJets.cxx:477
 AliAnalysisTaskSEDStarJets.cxx:478
 AliAnalysisTaskSEDStarJets.cxx:479
 AliAnalysisTaskSEDStarJets.cxx:480
 AliAnalysisTaskSEDStarJets.cxx:481
 AliAnalysisTaskSEDStarJets.cxx:482
 AliAnalysisTaskSEDStarJets.cxx:483
 AliAnalysisTaskSEDStarJets.cxx:484
 AliAnalysisTaskSEDStarJets.cxx:485
 AliAnalysisTaskSEDStarJets.cxx:486
 AliAnalysisTaskSEDStarJets.cxx:487
 AliAnalysisTaskSEDStarJets.cxx:488
 AliAnalysisTaskSEDStarJets.cxx:489
 AliAnalysisTaskSEDStarJets.cxx:490
 AliAnalysisTaskSEDStarJets.cxx:491
 AliAnalysisTaskSEDStarJets.cxx:492
 AliAnalysisTaskSEDStarJets.cxx:493
 AliAnalysisTaskSEDStarJets.cxx:494
 AliAnalysisTaskSEDStarJets.cxx:495
 AliAnalysisTaskSEDStarJets.cxx:496
 AliAnalysisTaskSEDStarJets.cxx:497
 AliAnalysisTaskSEDStarJets.cxx:498
 AliAnalysisTaskSEDStarJets.cxx:499
 AliAnalysisTaskSEDStarJets.cxx:500
 AliAnalysisTaskSEDStarJets.cxx:501
 AliAnalysisTaskSEDStarJets.cxx:502
 AliAnalysisTaskSEDStarJets.cxx:503
 AliAnalysisTaskSEDStarJets.cxx:504
 AliAnalysisTaskSEDStarJets.cxx:505
 AliAnalysisTaskSEDStarJets.cxx:506
 AliAnalysisTaskSEDStarJets.cxx:507
 AliAnalysisTaskSEDStarJets.cxx:508
 AliAnalysisTaskSEDStarJets.cxx:509
 AliAnalysisTaskSEDStarJets.cxx:510
 AliAnalysisTaskSEDStarJets.cxx:511
 AliAnalysisTaskSEDStarJets.cxx:512
 AliAnalysisTaskSEDStarJets.cxx:513
 AliAnalysisTaskSEDStarJets.cxx:514
 AliAnalysisTaskSEDStarJets.cxx:515
 AliAnalysisTaskSEDStarJets.cxx:516
 AliAnalysisTaskSEDStarJets.cxx:517
 AliAnalysisTaskSEDStarJets.cxx:518
 AliAnalysisTaskSEDStarJets.cxx:519
 AliAnalysisTaskSEDStarJets.cxx:520
 AliAnalysisTaskSEDStarJets.cxx:521
 AliAnalysisTaskSEDStarJets.cxx:522
 AliAnalysisTaskSEDStarJets.cxx:523
 AliAnalysisTaskSEDStarJets.cxx:524
 AliAnalysisTaskSEDStarJets.cxx:525
 AliAnalysisTaskSEDStarJets.cxx:526
 AliAnalysisTaskSEDStarJets.cxx:527
 AliAnalysisTaskSEDStarJets.cxx:528
 AliAnalysisTaskSEDStarJets.cxx:529
 AliAnalysisTaskSEDStarJets.cxx:530
 AliAnalysisTaskSEDStarJets.cxx:531
 AliAnalysisTaskSEDStarJets.cxx:532
 AliAnalysisTaskSEDStarJets.cxx:533
 AliAnalysisTaskSEDStarJets.cxx:534
 AliAnalysisTaskSEDStarJets.cxx:535
 AliAnalysisTaskSEDStarJets.cxx:536
 AliAnalysisTaskSEDStarJets.cxx:537
 AliAnalysisTaskSEDStarJets.cxx:538
 AliAnalysisTaskSEDStarJets.cxx:539
 AliAnalysisTaskSEDStarJets.cxx:540
 AliAnalysisTaskSEDStarJets.cxx:541
 AliAnalysisTaskSEDStarJets.cxx:542
 AliAnalysisTaskSEDStarJets.cxx:543
 AliAnalysisTaskSEDStarJets.cxx:544
 AliAnalysisTaskSEDStarJets.cxx:545
 AliAnalysisTaskSEDStarJets.cxx:546
 AliAnalysisTaskSEDStarJets.cxx:547
 AliAnalysisTaskSEDStarJets.cxx:548
 AliAnalysisTaskSEDStarJets.cxx:549
 AliAnalysisTaskSEDStarJets.cxx:550
 AliAnalysisTaskSEDStarJets.cxx:551
 AliAnalysisTaskSEDStarJets.cxx:552
 AliAnalysisTaskSEDStarJets.cxx:553
 AliAnalysisTaskSEDStarJets.cxx:554
 AliAnalysisTaskSEDStarJets.cxx:555
 AliAnalysisTaskSEDStarJets.cxx:556
 AliAnalysisTaskSEDStarJets.cxx:557
 AliAnalysisTaskSEDStarJets.cxx:558
 AliAnalysisTaskSEDStarJets.cxx:559
 AliAnalysisTaskSEDStarJets.cxx:560
 AliAnalysisTaskSEDStarJets.cxx:561
 AliAnalysisTaskSEDStarJets.cxx:562
 AliAnalysisTaskSEDStarJets.cxx:563
 AliAnalysisTaskSEDStarJets.cxx:564
 AliAnalysisTaskSEDStarJets.cxx:565
 AliAnalysisTaskSEDStarJets.cxx:566
 AliAnalysisTaskSEDStarJets.cxx:567
 AliAnalysisTaskSEDStarJets.cxx:568
 AliAnalysisTaskSEDStarJets.cxx:569
 AliAnalysisTaskSEDStarJets.cxx:570
 AliAnalysisTaskSEDStarJets.cxx:571
 AliAnalysisTaskSEDStarJets.cxx:572
 AliAnalysisTaskSEDStarJets.cxx:573
 AliAnalysisTaskSEDStarJets.cxx:574
 AliAnalysisTaskSEDStarJets.cxx:575
 AliAnalysisTaskSEDStarJets.cxx:576
 AliAnalysisTaskSEDStarJets.cxx:577
 AliAnalysisTaskSEDStarJets.cxx:578
 AliAnalysisTaskSEDStarJets.cxx:579
 AliAnalysisTaskSEDStarJets.cxx:580
 AliAnalysisTaskSEDStarJets.cxx:581
 AliAnalysisTaskSEDStarJets.cxx:582
 AliAnalysisTaskSEDStarJets.cxx:583
 AliAnalysisTaskSEDStarJets.cxx:584
 AliAnalysisTaskSEDStarJets.cxx:585
 AliAnalysisTaskSEDStarJets.cxx:586
 AliAnalysisTaskSEDStarJets.cxx:587
 AliAnalysisTaskSEDStarJets.cxx:588
 AliAnalysisTaskSEDStarJets.cxx:589
 AliAnalysisTaskSEDStarJets.cxx:590
 AliAnalysisTaskSEDStarJets.cxx:591
 AliAnalysisTaskSEDStarJets.cxx:592
 AliAnalysisTaskSEDStarJets.cxx:593
 AliAnalysisTaskSEDStarJets.cxx:594
 AliAnalysisTaskSEDStarJets.cxx:595
 AliAnalysisTaskSEDStarJets.cxx:596
 AliAnalysisTaskSEDStarJets.cxx:597
 AliAnalysisTaskSEDStarJets.cxx:598
 AliAnalysisTaskSEDStarJets.cxx:599
 AliAnalysisTaskSEDStarJets.cxx:600
 AliAnalysisTaskSEDStarJets.cxx:601
 AliAnalysisTaskSEDStarJets.cxx:602
 AliAnalysisTaskSEDStarJets.cxx:603
 AliAnalysisTaskSEDStarJets.cxx:604
 AliAnalysisTaskSEDStarJets.cxx:605
 AliAnalysisTaskSEDStarJets.cxx:606
 AliAnalysisTaskSEDStarJets.cxx:607
 AliAnalysisTaskSEDStarJets.cxx:608
 AliAnalysisTaskSEDStarJets.cxx:609
 AliAnalysisTaskSEDStarJets.cxx:610
 AliAnalysisTaskSEDStarJets.cxx:611
 AliAnalysisTaskSEDStarJets.cxx:612
 AliAnalysisTaskSEDStarJets.cxx:613
 AliAnalysisTaskSEDStarJets.cxx:614
 AliAnalysisTaskSEDStarJets.cxx:615
 AliAnalysisTaskSEDStarJets.cxx:616
 AliAnalysisTaskSEDStarJets.cxx:617
 AliAnalysisTaskSEDStarJets.cxx:618
 AliAnalysisTaskSEDStarJets.cxx:619
 AliAnalysisTaskSEDStarJets.cxx:620
 AliAnalysisTaskSEDStarJets.cxx:621
 AliAnalysisTaskSEDStarJets.cxx:622
 AliAnalysisTaskSEDStarJets.cxx:623
 AliAnalysisTaskSEDStarJets.cxx:624
 AliAnalysisTaskSEDStarJets.cxx:625
 AliAnalysisTaskSEDStarJets.cxx:626
 AliAnalysisTaskSEDStarJets.cxx:627
 AliAnalysisTaskSEDStarJets.cxx:628
 AliAnalysisTaskSEDStarJets.cxx:629
 AliAnalysisTaskSEDStarJets.cxx:630
 AliAnalysisTaskSEDStarJets.cxx:631
 AliAnalysisTaskSEDStarJets.cxx:632
 AliAnalysisTaskSEDStarJets.cxx:633
 AliAnalysisTaskSEDStarJets.cxx:634
 AliAnalysisTaskSEDStarJets.cxx:635
 AliAnalysisTaskSEDStarJets.cxx:636
 AliAnalysisTaskSEDStarJets.cxx:637
 AliAnalysisTaskSEDStarJets.cxx:638
 AliAnalysisTaskSEDStarJets.cxx:639
 AliAnalysisTaskSEDStarJets.cxx:640
 AliAnalysisTaskSEDStarJets.cxx:641
 AliAnalysisTaskSEDStarJets.cxx:642
 AliAnalysisTaskSEDStarJets.cxx:643
 AliAnalysisTaskSEDStarJets.cxx:644
 AliAnalysisTaskSEDStarJets.cxx:645
 AliAnalysisTaskSEDStarJets.cxx:646
 AliAnalysisTaskSEDStarJets.cxx:647
 AliAnalysisTaskSEDStarJets.cxx:648
 AliAnalysisTaskSEDStarJets.cxx:649
 AliAnalysisTaskSEDStarJets.cxx:650
 AliAnalysisTaskSEDStarJets.cxx:651
 AliAnalysisTaskSEDStarJets.cxx:652
 AliAnalysisTaskSEDStarJets.cxx:653
 AliAnalysisTaskSEDStarJets.cxx:654
 AliAnalysisTaskSEDStarJets.cxx:655
 AliAnalysisTaskSEDStarJets.cxx:656
 AliAnalysisTaskSEDStarJets.cxx:657
 AliAnalysisTaskSEDStarJets.cxx:658
 AliAnalysisTaskSEDStarJets.cxx:659
 AliAnalysisTaskSEDStarJets.cxx:660
 AliAnalysisTaskSEDStarJets.cxx:661
 AliAnalysisTaskSEDStarJets.cxx:662
 AliAnalysisTaskSEDStarJets.cxx:663
 AliAnalysisTaskSEDStarJets.cxx:664
 AliAnalysisTaskSEDStarJets.cxx:665
 AliAnalysisTaskSEDStarJets.cxx:666
 AliAnalysisTaskSEDStarJets.cxx:667
 AliAnalysisTaskSEDStarJets.cxx:668
 AliAnalysisTaskSEDStarJets.cxx:669
 AliAnalysisTaskSEDStarJets.cxx:670
 AliAnalysisTaskSEDStarJets.cxx:671
 AliAnalysisTaskSEDStarJets.cxx:672
 AliAnalysisTaskSEDStarJets.cxx:673
 AliAnalysisTaskSEDStarJets.cxx:674
 AliAnalysisTaskSEDStarJets.cxx:675
 AliAnalysisTaskSEDStarJets.cxx:676
 AliAnalysisTaskSEDStarJets.cxx:677
 AliAnalysisTaskSEDStarJets.cxx:678
 AliAnalysisTaskSEDStarJets.cxx:679
 AliAnalysisTaskSEDStarJets.cxx:680
 AliAnalysisTaskSEDStarJets.cxx:681
 AliAnalysisTaskSEDStarJets.cxx:682
 AliAnalysisTaskSEDStarJets.cxx:683
 AliAnalysisTaskSEDStarJets.cxx:684
 AliAnalysisTaskSEDStarJets.cxx:685
 AliAnalysisTaskSEDStarJets.cxx:686
 AliAnalysisTaskSEDStarJets.cxx:687
 AliAnalysisTaskSEDStarJets.cxx:688
 AliAnalysisTaskSEDStarJets.cxx:689
 AliAnalysisTaskSEDStarJets.cxx:690
 AliAnalysisTaskSEDStarJets.cxx:691
 AliAnalysisTaskSEDStarJets.cxx:692