ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2010, 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.                  *
 **************************************************************************/

/////////////////////////////////////////////////////////////
//
// AliAnalysisTaskSEHFv2 gives the needed tools for the D 
// mesons v2 analysis with event plane method
// Authors: Chiara Bianchin, cbianchi@pd.infn.it, 
// Robert Grajcarek, grajcarek@physi.uni-heidelberg.de
// Giacomo Ortona, ortona@to.infn.it
// Carlos Eugenio Perez Lara, carlos.eugenio.perez.lara@cern.ch
// 
/////////////////////////////////////////////////////////////

/* $Id$ */

#include <Riostream.h>
#include <TClonesArray.h>
#include <TCanvas.h>
#include <TList.h>
#include <TFile.h>
#include <TString.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TGraphErrors.h>
#include <TGraph.h>
#include <TDatabasePDG.h>
#include <TRandom3.h>
#include <TVector2.h>
#include <TArrayF.h>

#include <AliLog.h>
#include <AliAnalysisDataSlot.h>
#include <AliAnalysisDataContainer.h>
#include "AliAnalysisManager.h"
#include "AliAODHandler.h"
#include "AliAODEvent.h"
#include "AliAODVertex.h"
#include "AliAODTrack.h"
#include "AliAODMCHeader.h"
#include "AliAODMCParticle.h"
#include "AliAODRecoDecayHF3Prong.h"
#include "AliAODRecoDecayHF.h"
#include "AliAODRecoDecayHF2Prong.h"
#include "AliAODRecoDecayHF4Prong.h"
#include "AliAODRecoCascadeHF.h"

#include "AliAnalysisTaskSE.h"
#include "AliRDHFCutsDplustoKpipi.h"
#include "AliRDHFCutsD0toKpipipi.h"
#include "AliRDHFCutsDstoKKpi.h"
#include "AliRDHFCutsDStartoKpipi.h"
#include "AliRDHFCutsD0toKpi.h"
#include "AliRDHFCutsLctopKpi.h"

#include "AliHFMassFitter.h"
#include "AliEventplane.h"
#include "AliFlowTrack.h"
#include "AliFlowVector.h"
#include "AliFlowTrackCuts.h"
#include "AliFlowEvent.h"  

#include "AliAnalysisTaskSEHFv2.h"

ClassImp(AliAnalysisTaskSEHFv2)


//________________________________________________________________________
AliAnalysisTaskSEHFv2::AliAnalysisTaskSEHFv2():
AliAnalysisTaskSE(),
  fhEventsInfo(0),
  fOutput(0),
  fRDCuts(0),
  fLowmasslimit(1.669),
  fUpmasslimit(2.069),
  fNPtBins(1),
  fNMassBins(200),
  fReadMC(kFALSE),    
  fUseAfterBurner(kFALSE),
  fDecChannel(0),
  fAfterBurner(0),
  fEventPlaneMeth(kTPCVZERO),
  fEventPlanesComp(10),
  fV0EPorder(2),
  fMinCentr(20),
  fMaxCentr(80),
  fEtaGap(kFALSE),
  fSubEvents(2),
  fCentBinSizePerMil(25)
{
  // Default constructor
}

//________________________________________________________________________
AliAnalysisTaskSEHFv2::AliAnalysisTaskSEHFv2(const char *name,AliRDHFCuts *rdCuts,Int_t decaychannel):
  AliAnalysisTaskSE(name),
  fhEventsInfo(0),
  fOutput(0),
  fRDCuts(rdCuts),
  fLowmasslimit(0),
  fUpmasslimit(0),
  fNPtBins(1),
  fNMassBins(200),
  fReadMC(kFALSE),
  fUseAfterBurner(kFALSE),
  fDecChannel(decaychannel),
  fAfterBurner(0),
  fEventPlaneMeth(kTPCVZERO),
  fEventPlanesComp(10),
  fV0EPorder(2),
  fMinCentr(20),
  fMaxCentr(80),
  fEtaGap(kFALSE),
  fSubEvents(2),
  fCentBinSizePerMil(25)
{
  // standard constructor
  Int_t pdg=421;
  switch(fDecChannel){
  case 0:
    pdg=411;
    break;
  case 1:
    pdg=421;
    break;
  case 2:
    pdg=413;
    break;
  case 3:
    pdg=431;
    break;
  case 4:
    pdg=421;
    break;
  case 5:
    pdg=4122;
    break;
  }
  fAfterBurner = new AliHFAfterBurner(fDecChannel);
  if(pdg==413) SetMassLimits((Float_t)0.1,(Float_t)0.2);
  else SetMassLimits((Float_t)0.2,pdg); //check range
  fNPtBins=fRDCuts->GetNPtBins();

  if(fDebug>1)fRDCuts->PrintAll();
  // Output slot #1 writes into a TH1F container
  DefineOutput(1,TH1F::Class());   //Info on the number of events etc.
  // Output slot #2 writes into a TList container
  DefineOutput(2,TList::Class());  //Main output
  // Output slot #3 writes into a AliRDHFCuts container (cuts)
  switch(fDecChannel){
  case 0:
    DefineOutput(3,AliRDHFCutsDplustoKpipi::Class());  //Cut object for Dplus
    break;
  case 1:
    DefineOutput(3,AliRDHFCutsD0toKpi::Class());  //Cut object for D0
    break;
  case 2:
    DefineOutput(3,AliRDHFCutsDStartoKpipi::Class());  //Cut object for D*
    break;
  }
  //DefineOutput(4,AliFlowEventSimple::Class());
  //DefineOutput(4,TList::Class());
}

//________________________________________________________________________
AliAnalysisTaskSEHFv2::~AliAnalysisTaskSEHFv2()
{
  // Destructor
  delete fOutput;
  delete fhEventsInfo;
  delete fRDCuts;
  delete fAfterBurner;
}
//_________________________________________________________________
void  AliAnalysisTaskSEHFv2::SetMassLimits(Float_t range, Int_t pdg){
  // Set limits for mass spectra plots
  Float_t mass=0;
  Int_t abspdg=TMath::Abs(pdg);
  mass=TDatabasePDG::Instance()->GetParticle(abspdg)->Mass();
  fUpmasslimit = mass+range;
  fLowmasslimit = mass-range;
}
//_________________________________________________________________
void  AliAnalysisTaskSEHFv2::SetMassLimits(Float_t lowlimit, Float_t uplimit){
  // Set limits for mass spectra plots
  if(uplimit>lowlimit)
    {
      fUpmasslimit = uplimit;
      fLowmasslimit = lowlimit;
    }
}


//________________________________________________________________________
void AliAnalysisTaskSEHFv2::LocalInit()
{
  // Initialization

  if(fDebug > 1) printf("AnalysisTaskSEHFv2::Init() \n");

  fRDCuts->SetMinCentrality(fMinCentr);
  fRDCuts->SetMaxCentrality(fMaxCentr);

  switch(fDecChannel){
  case 0:
    {
      AliRDHFCutsDplustoKpipi* copycut=new AliRDHFCutsDplustoKpipi(*(static_cast<AliRDHFCutsDplustoKpipi*>(fRDCuts)));
      // Post the data
      PostData(3,copycut);
    }
    break;
  case 1:
    {
      AliRDHFCutsD0toKpi* copycut=new AliRDHFCutsD0toKpi(*(static_cast<AliRDHFCutsD0toKpi*>(fRDCuts)));
      // Post the data
      PostData(3,copycut);
    }
    break;
  case 2:
    {
      AliRDHFCutsDStartoKpipi* copycut=new AliRDHFCutsDStartoKpipi(*(static_cast<AliRDHFCutsDStartoKpipi*>(fRDCuts)));
      // Post the data
      PostData(3,copycut);
    }
    break;
  default:
    return;
  }
  return;
}
//________________________________________________________________________
void AliAnalysisTaskSEHFv2::UserCreateOutputObjects()
{
  // Create the output container
 
  if(fDebug > 1) printf("AnalysisTaskSEHFv2::UserCreateOutputObjects() \n");

  fhEventsInfo=new TH1F(GetOutputSlot(1)->GetContainer()->GetName(), "Number of AODs scanned",7,-0.5,6.5);
  fhEventsInfo->GetXaxis()->SetBinLabel(1,"nEventsAnal");
  fhEventsInfo->GetXaxis()->SetBinLabel(2,"nEvSelected");
  fhEventsInfo->GetXaxis()->SetBinLabel(3,"nCandidatesSelected");
  fhEventsInfo->GetXaxis()->SetBinLabel(4,"out of pt bounds");
  fhEventsInfo->GetXaxis()->SetBinLabel(5,Form("Ev Sel in Centr %.0f-%.0f%s",fRDCuts->GetMinCentrality(),fRDCuts->GetMaxCentrality(),"%"));
  fhEventsInfo->GetXaxis()->SetBinLabel(6,"mismatch lab");
  fhEventsInfo->GetXaxis()->SetBinLabel(7,"non valid TPC EP");
  fhEventsInfo->GetXaxis()->SetNdivisions(1,kFALSE);


  // Several histograms are more conveniently managed in a TList
  fOutput = new TList();
  fOutput->SetOwner();
  fOutput->SetName("MainOutput");
  
  for(Int_t icentr=fMinCentr*10+fCentBinSizePerMil;icentr<=fMaxCentr*10;icentr=icentr+fCentBinSizePerMil){
    TString centrname;centrname.Form("centr%d_%d",icentr-fCentBinSizePerMil,icentr);

    TH2F* hMPtCand=new TH2F(Form("hMPtCand%s",centrname.Data()),Form("Mass vs pt %s;pt (GeV);M (GeV/c^{2})",centrname.Data()),120,0,24.,fNMassBins,fLowmasslimit,fUpmasslimit);
      fOutput->Add(hMPtCand);//For <pt> calculation


    //Candidate distributions

    for(Int_t i=0;i<fNPtBins;i++){ 

      // Delta Phi histograms
      Double_t maxphi = TMath::Pi();
      if (fDecChannel == 2) maxphi = TMath::PiOver2();
      TH2F* hMdeltaphi=new TH2F(Form("hMdeltaphi_pt%d%s",i,centrname.Data()),Form("Mass vs #Delta#phi %s;#Delta#phi;M (GeV/c^{2})",centrname.Data()),96,0,maxphi,fNMassBins,fLowmasslimit,fUpmasslimit);
      fOutput->Add(hMdeltaphi);//for phi bins analysis
      TH2F* hMc2deltaphi=new TH2F(Form("hMc2deltaphi_pt%d%s",i,centrname.Data()),Form("Mass vs cos2#Delta#phi (p_{t} bin %d %s);cos2#Delta#phi;M (GeV/c^{2})",i,centrname.Data()),100,-1.,1.,fNMassBins,fLowmasslimit,fUpmasslimit);
      fOutput->Add(hMc2deltaphi);
      TH2F* hMs2deltaphi=new TH2F(Form("hMs2deltaphi_pt%d%s",i,centrname.Data()),Form("Mass vs sin2#Delta#phi (p_{t} bin %d %s);sin2#Delta#phi;M (GeV/c^{2})",i,centrname.Data()),100,-1.,1.,fNMassBins,fLowmasslimit,fUpmasslimit);
      fOutput->Add(hMs2deltaphi);
      
      // phi histograms (for systematics)
      TH2F* hCos2PhiMass=new TH2F(Form("hCos2phiMass_pt%d%s",i,centrname.Data()),Form("Mass vs cos(2#phi) %s;cos(2#phi);M (GeV/c^{2})",centrname.Data()),100,-1.,1.,fNMassBins,fLowmasslimit,fUpmasslimit);
      fOutput->Add(hCos2PhiMass);
      TH2F* hSin2PhiMass=new TH2F(Form("hSin2phiMass_pt%d%s",i,centrname.Data()),Form("Mass vs sin(2#phi) %s;sin(2#phi);M (GeV/c^{2})",centrname.Data()),100,-1.,1.,fNMassBins,fLowmasslimit,fUpmasslimit);
      fOutput->Add(hSin2PhiMass);

      // Histos using MC truth
      if (fReadMC){
	TH2F* hMc2deltaphiS=new TH2F(Form("hMc2deltaphiS_pt%d%s",i,centrname.Data()),Form("Mass vs cos2#Delta#phi (p_{t} bin %d %s);cos2#Delta#phi;M (GeV/c^{2})",i,centrname.Data()),100,-1.,1.,fNMassBins,fLowmasslimit,fUpmasslimit);
	fOutput->Add(hMc2deltaphiS);
	TH2F * hMdeltaphiS=new TH2F(Form("hMdeltaphiS_pt%d%s",i,centrname.Data()),Form("Mass vs #Delta#phi (p_{t} bin %d %s);#Delta#phi;M (GeV/c^{2})",i,centrname.Data()),96,0,2*TMath::Pi(),fNMassBins,fLowmasslimit,fUpmasslimit);
	fOutput->Add(hMdeltaphiS);
	TH2F* hMc2deltaphiB=new TH2F(Form("hMc2deltaphiB_pt%d%s",i,centrname.Data()),Form("Mass vs cos2#Delta#phi (p_{t} bin %d %s);cos2#Delta#phi;M (GeV/c^{2})",i,centrname.Data()),100,-1.,1.,fNMassBins,fLowmasslimit,fUpmasslimit);
	fOutput->Add(hMc2deltaphiB);
	TH2F * hMdeltaphiB=new TH2F(Form("hMdeltaphiB_pt%d%s",i,centrname.Data()),Form("Mass vs #Delta#phi (p_{t} bin %d %s);#Delta#phi;M (GeV/c^{2})",i,centrname.Data()),96,0,2*TMath::Pi(),fNMassBins,fLowmasslimit,fUpmasslimit);
	fOutput->Add(hMdeltaphiB);
	if((fDecChannel != AliAnalysisTaskSEHFv2::kDplustoKpipi) &&(fDecChannel != AliAnalysisTaskSEHFv2::kDstartoKpipi)){
	  TH2F* hMc2deltaphiR=new TH2F(Form("hMc2deltaphiR_pt%d%s",i,centrname.Data()),Form("Mass vs cos2#Delta#phi (p_{t} bin %d %s);cos2#Delta#phi;M (GeV/c^{2})",i,centrname.Data()),100,-1.,1.,fNMassBins,fLowmasslimit,fUpmasslimit);
	  fOutput->Add(hMc2deltaphiR);
	  TH2F* hMdeltaphiR=new TH2F(Form("hMdeltaphiR_pt%d%s",i,centrname.Data()),Form("Mass vs #Delta#phi (p_{t} bin %d %s);#Delta#phi;M (GeV/c^{2})",i,centrname.Data()),96,0,2*TMath::Pi(),fNMassBins,fLowmasslimit,fUpmasslimit);
	  fOutput->Add(hMdeltaphiR);
	}
      }
    }


    // Event Plane
    TH2F* hEvPlane=new TH2F(Form("hEvPlane%s",centrname.Data()),Form("VZERO/TPC Event plane angle %s;#phi Ev Plane (TPC);#phi Ev Plane (VZERO);Entries",centrname.Data()),200,0.,TMath::Pi(),200,0.,TMath::Pi());
    fOutput->Add(hEvPlane);
    TH1F* hEvPlaneA=new TH1F(Form("hEvPlaneA%s",centrname.Data()),Form("Event plane angle %s;#phi Ev Plane;Entries",centrname.Data()),200,0.,TMath::Pi());
    fOutput->Add(hEvPlaneA);
    TH1F* hEvPlaneB=new TH1F(Form("hEvPlaneB%s",centrname.Data()),Form("Event plane angle %s;#phi Ev Plane;Entries",centrname.Data()),200,0.,TMath::Pi());
    fOutput->Add(hEvPlaneB);
    TH1F* hEvPlaneCand=new TH1F(Form("hEvPlaneCand%s",centrname.Data()),Form("Event plane angle - Event plane angle per candidate %s;#phi(Ev Plane Candidate);Entries",centrname.Data()),200,-TMath::Pi(),TMath::Pi());
    fOutput->Add(hEvPlaneCand);

    // histos for EP resolution
    TH1F* hEvPlaneReso=new TH1F(Form("hEvPlaneReso%s",centrname.Data()),Form("Event plane angle Resolution %s;cos2(#psi_{A}-#psi_{B});Entries",centrname.Data()),220,-1.1,1.1);
    fOutput->Add(hEvPlaneReso);
    if(fEventPlaneMeth>=kTPCVZERO){
      TH1F* hEvPlaneReso2=new TH1F(Form("hEvPlaneReso2%s",centrname.Data()),Form("Event plane angle Resolution %s;cos2(#psi_{A}-#psi_{C});Entries",centrname.Data()),220,-1.1,1.1);
      fOutput->Add(hEvPlaneReso2);
      TH1F* hEvPlaneReso3=new TH1F(Form("hEvPlaneReso3%s",centrname.Data()),Form("Event plane angle Resolution %s;cos2(#psi_{B}-#psi_{C});Entries",centrname.Data()),220,-1.1,1.1);
      fOutput->Add(hEvPlaneReso3);
    }

    // histos for EPsystematics    
    TH1F *hCos2EP=new TH1F(Form("hCos2EP%s",centrname.Data()),Form("cos(2PsiEP) %s;cos2(#psi_{EP});Entries",centrname.Data()),100,-1.,1.);
    fOutput->Add(hCos2EP);
    TH1F *hSin2EP=new TH1F(Form("hSin2EP%s",centrname.Data()),Form("sin(2PsiEP) %s;sin2(#psi_{EP});Entries",centrname.Data()),100,-1.,1.);
    fOutput->Add(hSin2EP);
   }
  
  PostData(1,fhEventsInfo);
  PostData(2,fOutput);

  return;
}

//________________________________________________________________________
void AliAnalysisTaskSEHFv2::UserExec(Option_t */*option*/)
{
  // Execute analysis for current event:
  // heavy flavor candidates association to MC truth
  AliAODEvent *aod = dynamic_cast<AliAODEvent*> (InputEvent());
  if(fDebug>2) printf("Analysing decay %d\n",fDecChannel);
  // Post the data already here
  PostData(1,fhEventsInfo);
  PostData(2,fOutput);

  TClonesArray *arrayProng =0;
  Int_t absPdgMom=0;
  if(!aod && 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.    
    aod = 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();
   
      
      if(fDecChannel==0){
	absPdgMom=411;
	arrayProng=(TClonesArray*)aodFromExt->GetList()->FindObject("Charm3Prong");
      }
      if(fDecChannel==1){
	absPdgMom=421;
	arrayProng=(TClonesArray*)aodFromExt->GetList()->FindObject("D0toKpi");
      }
      if(fDecChannel==2){
	absPdgMom=413;
	arrayProng=(TClonesArray*)aodFromExt->GetList()->FindObject("Dstar");
      }
    }
  } else if(aod){
    if(fDecChannel==0){
      absPdgMom=411;
      arrayProng=(TClonesArray*)aod->GetList()->FindObject("Charm3Prong");
    }
    if(fDecChannel==1){
      absPdgMom=421;
      arrayProng=(TClonesArray*)aod->GetList()->FindObject("D0toKpi");
    }
    if(fDecChannel==2){
      absPdgMom=413;
      arrayProng=(TClonesArray*)aod->GetList()->FindObject("Dstar");
    }
  }

  if(!aod || !arrayProng) {
    AliError("AliAnalysisTaskSEHFv2::UserExec:Branch not found!\n");
    return;
  }
  
  // fix for temporary bug in ESDfilter 
  // the AODs with null vertex pointer didn't pass the PhysSel
  if(!aod->GetPrimaryVertex() || TMath::Abs(aod->GetMagneticField())<0.001) return;

  TClonesArray *arrayMC=0;
  AliAODMCHeader *mcHeader=0;
  
  // load MC particles
  if(fReadMC){
    
    arrayMC =  (TClonesArray*)aod->GetList()->FindObject(AliAODMCParticle::StdBranchName());
    if(!arrayMC) {
      AliWarning("AliAnalysisTaskSEHFv2::UserExec:MC particles branch not found!\n");
      return;
    }
    
    // load MC header
    mcHeader =  (AliAODMCHeader*)aod->GetList()->FindObject(AliAODMCHeader::StdBranchName());
    if(!mcHeader) {
      AliError("AliAnalysisTaskSEHFv2::UserExec:MC header branch not found!\n");
      return;
    }
  }

  fhEventsInfo->Fill(0); // count event

  AliAODRecoDecayHF *d=0;

  Int_t nCand = arrayProng->GetEntriesFast();
  if(fDebug>2) printf("Number of D2H: %d\n",nCand);

  Bool_t isEvSel=fRDCuts->IsEventSelected(aod);
  if(!isEvSel){
    if(!fRDCuts->IsEventRejectedDueToCentrality())fhEventsInfo->Fill(4);
    return;
  }

  fhEventsInfo->Fill(1);
  fhEventsInfo->Fill(4);
 
  AliEventplane *pl=aod->GetEventplane();
  if(!pl){
    AliError("AliAnalysisTaskSEHFv2::UserExec:no eventplane! v2 analysis without eventplane not possible!\n");
    fhEventsInfo->Fill(6);
    return;
  }
  
  //Event plane
  Double_t eventplane=0;
  Double_t rpangleTPC=0;
  Double_t rpangleVZERO=0;
  Double_t planereso=0;
  Double_t deltaPsi=0;
  Double_t rpangleeventC=0;
  Double_t rpangleeventB=0;
  Double_t rpangleeventA=0;

  //For candidate removal from TPC EP
  TVector2* q=0x0;
  TVector2 *qsub1=0x0;
  TVector2 *qsub2=0x0;
  
  //determine centrality bin
  Float_t centr=fRDCuts->GetCentrality(aod);
  Float_t centrPerMil=centr*10.;
  Int_t icentr=-1;
  for(Int_t ic=fMinCentr*10+fCentBinSizePerMil;ic<=fMaxCentr*10;ic=ic+fCentBinSizePerMil){
    if(ic>centrPerMil){
      icentr=ic;
      break;
    }
  }
  if(icentr==-1) return;

  TString centrbinname=Form("centr%d_%d",icentr-fCentBinSizePerMil,icentr);

  if(fReadMC){
    TRandom3 *g = new TRandom3(0);
    eventplane=g->Rndm()*TMath::Pi();
    delete g;g=0x0;
    if(fUseAfterBurner)fAfterBurner->SetEventPlane((Double_t)eventplane);
  }else{
   // TPC event plane
    rpangleTPC = pl->GetEventplane("Q");
    if(rpangleTPC<0){
      fhEventsInfo->Fill(6);
      return;
    }
    rpangleeventA = rpangleTPC;
    if(fSubEvents==2||fEventPlaneMeth==kVZERO){
      qsub1 = pl->GetQsub1();
      qsub2 = pl->GetQsub2();
      if(!qsub1 || !qsub2){
	fhEventsInfo->Fill(6);
	return;
      }
      rpangleeventA = qsub1->Phi()/2.;
      rpangleeventB = qsub2->Phi()/2.;
    }
    if(fEventPlaneMeth!=kTPC){
      //VZERO EP and resolution
      rpangleVZERO=GetPhi0Pi(pl->GetEventplane("V0",aod,fV0EPorder));
      rpangleeventC=rpangleVZERO;
      if(fEventPlaneMeth==kVZEROA||fEventPlaneMeth==kVZEROC||(fEventPlaneMeth==kTPCVZERO&&fSubEvents==3)){
	rpangleeventB=GetPhi0Pi(pl->GetEventplane("V0A",aod,fV0EPorder));
	rpangleeventC=GetPhi0Pi(pl->GetEventplane("V0C",aod,fV0EPorder));
	if(fEventPlaneMeth==kVZEROA)rpangleVZERO=rpangleeventB;
	else if(fEventPlaneMeth==kVZEROC)rpangleVZERO=rpangleeventC;
      }
    }


    if(fEventPlaneMeth>kTPCVZERO)eventplane=rpangleVZERO;
    else{
      q = pl->GetQVector();
      eventplane=rpangleTPC;
    }
    deltaPsi =rpangleeventA-rpangleeventB;
  }

  if(TMath::Abs(deltaPsi)>TMath::Pi()/2.){
    if(deltaPsi>0.) deltaPsi-=TMath::Pi();
    else deltaPsi +=TMath::Pi();
  } // difference of subevents reaction plane angle cannot be bigger than phi/2
  planereso = TMath::Cos(2.*deltaPsi); // reaction plane resolution
  if(TMath::Abs(rpangleTPC-rpangleVZERO)>fEventPlanesComp)return;

  if(fDebug>2)printf("Filling EP-related histograms\n");
  //Filling EP-related histograms
  ((TH2F*)fOutput->FindObject(Form("hEvPlane%s",centrbinname.Data())))->Fill(rpangleTPC,rpangleVZERO); // reaction plane angle without autocorrelations removal
  ((TH1F*)fOutput->FindObject(Form("hEvPlaneReso%s",centrbinname.Data())))->Fill(planereso); //RP resolution   
  ((TH1F*)fOutput->FindObject(Form("hCos2EP%s",centrbinname.Data())))->Fill(TMath::Cos(2*eventplane)); // syst check
  ((TH1F*)fOutput->FindObject(Form("hSin2EP%s",centrbinname.Data())))->Fill(TMath::Sin(2*eventplane)); // syst check
    
  if(fEventPlaneMeth>kTPCVZERO||fEtaGap){
    ((TH1F*)fOutput->FindObject(Form("hEvPlaneA%s",centrbinname.Data())))->Fill(rpangleeventA); //Angle of first subevent
    ((TH1F*)fOutput->FindObject(Form("hEvPlaneB%s",centrbinname.Data())))->Fill(rpangleeventB); //Angle of second subevent
  }
  if(fEventPlaneMeth>kTPCVZERO||fSubEvents==3){
    Double_t deltaSub=rpangleeventA-rpangleeventC;
    if(TMath::Abs(deltaSub)>TMath::Pi()/2.){// difference of subevents reaction plane angle cannot be bigger than phi/2
      if(deltaSub>0.) deltaSub-=TMath::Pi();
      else deltaSub +=TMath::Pi();
    } 
    TH1F* htmp1=(TH1F*)fOutput->FindObject(Form("hEvPlaneReso2%s",centrbinname.Data()));
    if(htmp1) htmp1->Fill(TMath::Cos(2.*deltaSub)); //RP resolution   
    deltaSub =rpangleeventB-rpangleeventC;
    if(TMath::Abs(deltaSub)>TMath::Pi()/2.){// difference of subevents reaction plane angle cannot be bigger than phi/2
      if(deltaSub>0.) deltaSub-=TMath::Pi();
      else deltaSub +=TMath::Pi();
    } 
    TH1F* htmp2=(TH1F*)fOutput->FindObject(Form("hEvPlaneReso3%s",centrbinname.Data()));
    if(htmp2) htmp2->Fill(TMath::Cos(2.*deltaSub)); //RP resolution   
  }

  if(fDebug>2)printf("Loop on D candidates\n");
  //Loop on D candidates
  for (Int_t iCand = 0; iCand < nCand; iCand++) {
    d=(AliAODRecoDecayHF*)arrayProng->UncheckedAt(iCand);
    Bool_t isSelBit=kTRUE;
    if(fDecChannel==0) isSelBit=d->HasSelectionBit(AliRDHFCuts::kDplusCuts);
    if(fDecChannel==1) isSelBit=d->HasSelectionBit(AliRDHFCuts::kD0toKpiCuts);
    if(fDecChannel==2) isSelBit=kTRUE;
    if(!isSelBit)continue;
    Int_t ptbin=fRDCuts->PtBin(d->Pt());
    if(ptbin<0) {
      fhEventsInfo->Fill(3);
      continue;
    }
    Bool_t isFidAcc = fRDCuts->IsInFiducialAcceptance(d->Pt(),d->Y(absPdgMom));
    if(!isFidAcc)continue;    
    Int_t isSelected= fRDCuts->IsSelected(d,AliRDHFCuts::kAll,aod);
    if(!isSelected)continue;

    fhEventsInfo->Fill(2); // candidate selected
    if(fDebug>3) printf("+++++++Is Selected\n");
      
    Float_t* invMass=0x0;
    Int_t nmasses;
    CalculateInvMasses(d,invMass,nmasses);

    if(fEventPlaneMeth<=kTPCVZERO){
      eventplane = GetEventPlaneForCandidate(d,q,pl,qsub1,qsub2); // remove autocorrelations
      ((TH1F*)fOutput->FindObject(Form("hEvPlaneCand%s",centrbinname.Data())))->Fill(rpangleTPC-eventplane);
    }

    Double_t phi=d->Phi(); 
    if(fReadMC&&fUseAfterBurner)phi=fAfterBurner->GetNewAngle(d,arrayMC);
    Float_t deltaphi=GetPhi0Pi(phi-eventplane);
    
    //fill the histograms with the appropriate method
    if(fDecChannel==0)FillDplus(d,arrayMC,ptbin,deltaphi,invMass,isSelected,icentr,phi);
    else if(fDecChannel==1)FillD02p(d,arrayMC,ptbin,deltaphi,invMass,isSelected,icentr,phi);
    else if(fDecChannel==2)FillDstar(d,arrayMC,ptbin,deltaphi,invMass,isSelected,icentr,phi);
    
    delete [] invMass;
  }
  
  PostData(1,fhEventsInfo);
  PostData(2,fOutput);

  return;
}

//***************************************************************************

// Methods used in the UserExec

void AliAnalysisTaskSEHFv2::CalculateInvMasses(AliAODRecoDecayHF* d,Float_t*& masses,Int_t& nmasses){
  //Calculates all the possible invariant masses for each candidate
  //NB: the implementation for each candidate is responsibility of the corresponding developer

  if(fDecChannel==0){
    //D+ -- Giacomo
    nmasses=1;
    masses=new Float_t[nmasses];
    Int_t pdgdaughters[3] = {211,321,211};
    masses[0]=d->InvMass(3,(UInt_t*)pdgdaughters);
  }
  if(fDecChannel==1){
    //D0 (Kpi)  -- Chiara
    const Int_t ndght=2;
    nmasses=2;
    masses=new Float_t[nmasses];
    Int_t pdgdaughtersD0[ndght]={211,321};//pi,K 
    masses[0]=d->InvMass(ndght,(UInt_t*)pdgdaughtersD0); //D0
    Int_t pdgdaughtersD0bar[ndght]={321,211};//K,pi 
    masses[1]=d->InvMass(ndght,(UInt_t*)pdgdaughtersD0bar); //D0bar
  }
  if(fDecChannel==2){
    //D* -- Robert,Yifei, Alessandro
    nmasses=1;
    masses=new Float_t[nmasses];
    masses[0]=((AliAODRecoCascadeHF*)d)->DeltaInvMass();
  } 
}

//******************************************************************************

//Methods to fill the histograms, one for each channel
//NB: the implementation for each candidate is responsibility of the corresponding developer

//******************************************************************************
void AliAnalysisTaskSEHFv2::FillDplus(AliAODRecoDecayHF* d,TClonesArray *arrayMC,Int_t ptbin,Float_t deltaphi, const Float_t* masses,Int_t isSel,Int_t icentr, Double_t phiD){
  //D+ channel
  if(!isSel){
    if(fDebug>3)AliWarning("Candidate not selected\n");
    return;
  }
  if(!masses){
    if(fDebug>3)AliWarning("Masses not calculated\n");
    return;
  }
  Int_t icentrmin=icentr-fCentBinSizePerMil;
  ((TH2F*)fOutput->FindObject(Form("hMc2deltaphi_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Cos(2*deltaphi),masses[0]);
  ((TH2F*)fOutput->FindObject(Form("hMs2deltaphi_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Sin(2*deltaphi),masses[0]);
  ((TH2F*)fOutput->FindObject(Form("hMdeltaphi_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(deltaphi,masses[0]);
  ((TH2F*)fOutput->FindObject(Form("hMPtCandcentr%d_%d",icentrmin,icentr)))->Fill(d->Pt(),masses[0]);
  ((TH2F*)fOutput->FindObject(Form("hCos2phiMass_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Cos(2*phiD),masses[0]);
  ((TH2F*)fOutput->FindObject(Form("hSin2phiMass_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Sin(2*phiD),masses[0]);


  Int_t pdgdaughters[3] = {211,321,211};

  if(fReadMC){
    Int_t lab=-1;
    if(fUseAfterBurner){
      Bool_t isSignal=fAfterBurner->GetIsSignal();
      if(isSignal)lab=10;
    }else {
      lab = d->MatchToMC(411,arrayMC,3,pdgdaughters);
    }
    if(lab>=0){ //signal
      ((TH2F*)fOutput->FindObject(Form("hMc2deltaphiS_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Cos(2*deltaphi),masses[0]);
      ((TH2F*)fOutput->FindObject(Form("hMdeltaphiS_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(deltaphi,masses[0]);
    } else{ //background
      ((TH2F*)fOutput->FindObject(Form("hMc2deltaphiB_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Cos(2*deltaphi),masses[0]);
      ((TH2F*)fOutput->FindObject(Form("hMdeltaphiB_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(deltaphi,masses[0]);
    } 
  }   
}

//******************************************************************************
void AliAnalysisTaskSEHFv2::FillD02p(AliAODRecoDecayHF* d,TClonesArray *arrayMC,Int_t ptbin,Float_t deltaphi, const Float_t* masses,Int_t isSel,Int_t icentr,Double_t phiD){

  //D0->Kpi channel

  //mass histograms
  if(!masses){
    if(fDebug>3)AliWarning("Masses not calculated\n");
    return;
  }
  Int_t icentrmin=icentr-fCentBinSizePerMil;
  if(isSel==1 || isSel==3) {
    ((TH2F*)fOutput->FindObject(Form("hMc2deltaphi_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Cos(2*deltaphi),masses[0]);
    ((TH2F*)fOutput->FindObject(Form("hMs2deltaphi_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Sin(2*deltaphi),masses[0]);
    ((TH2F*)fOutput->FindObject(Form("hMdeltaphi_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(deltaphi,masses[0]);
    ((TH2F*)fOutput->FindObject(Form("hMPtCandcentr%d_%d",icentrmin,icentr)))->Fill(d->Pt(),masses[0]);
    ((TH2F*)fOutput->FindObject(Form("hCos2phiMass_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Cos(2*phiD),masses[0]);
    ((TH2F*)fOutput->FindObject(Form("hSin2phiMass_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Sin(2*phiD),masses[0]);
  }
  if(isSel>=2) {
    ((TH2F*)fOutput->FindObject(Form("hMc2deltaphi_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Cos(2*deltaphi),masses[1]);
    ((TH2F*)fOutput->FindObject(Form("hMs2deltaphi_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Sin(2*deltaphi),masses[1]);
    ((TH2F*)fOutput->FindObject(Form("hMdeltaphi_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(deltaphi,masses[1]);
    ((TH2F*)fOutput->FindObject(Form("hMPtCandcentr%d_%d",icentrmin,icentr)))->Fill(d->Pt(),masses[1]);
    ((TH2F*)fOutput->FindObject(Form("hCos2phiMass_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Cos(2*phiD),masses[1]);
    ((TH2F*)fOutput->FindObject(Form("hSin2phiMass_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Sin(2*phiD),masses[1]);
  }

  //MC histograms
  if(fReadMC){

    Int_t matchtoMC=-1;

    //D0
    Int_t pdgdaughters[2];
    pdgdaughters[0]=211;//pi 
    pdgdaughters[1]=321;//K
    Int_t nprongs=2;
    Int_t absPdgMom=421;

    matchtoMC = d->MatchToMC(absPdgMom,arrayMC,nprongs,pdgdaughters);

    Int_t prongPdgPlus=421,prongPdgMinus=(-1)*421;
    if((isSel==1 || isSel==3)){ //D0
      if(matchtoMC>=0){
	AliAODMCParticle *dMC = (AliAODMCParticle*)arrayMC->At(matchtoMC);
	Int_t pdgMC = dMC->GetPdgCode();
	
	if(pdgMC==prongPdgPlus) {
	  ((TH2F*)fOutput->FindObject(Form("hMc2deltaphiS_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Cos(2*deltaphi),masses[0]);
	  ((TH2F*)fOutput->FindObject(Form("hMdeltaphiS_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(deltaphi,masses[0]);
	}
	else {
	  ((TH2F*)fOutput->FindObject(Form("hMc2deltaphiR_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Cos(2*deltaphi),masses[0]);
	  ((TH2F*)fOutput->FindObject(Form("hMdeltaphiR_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(deltaphi,masses[0]);
	}
      } else {
	((TH2F*)fOutput->FindObject(Form("hMc2deltaphiB_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Cos(2*deltaphi),masses[0]);
	((TH2F*)fOutput->FindObject(Form("hMdeltaphi_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(deltaphi,masses[0]);
      }
    }
    if(isSel>=2){ //D0bar
      if(matchtoMC>=0){
	AliAODMCParticle *dMC = (AliAODMCParticle*)arrayMC->At(matchtoMC);
	Int_t pdgMC = dMC->GetPdgCode();
	
	if(pdgMC==prongPdgMinus) {
	  ((TH2F*)fOutput->FindObject(Form("hMc2deltaphiS_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Cos(2*deltaphi),masses[1]);
	  ((TH2F*)fOutput->FindObject(Form("hMdeltaphiS_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(deltaphi,masses[1]);
	}
	else {
	  ((TH2F*)fOutput->FindObject(Form("hMc2deltaphiR_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Cos(2*deltaphi),masses[1]);
	  ((TH2F*)fOutput->FindObject(Form("hMdeltaphi_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(deltaphi,masses[1]);
	}
      } else {
	((TH2F*)fOutput->FindObject(Form("hMc2deltaphiB_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Cos(2*deltaphi),masses[1]);
	((TH2F*)fOutput->FindObject(Form("hMdeltaphiB_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(deltaphi,masses[1]);
      }
    }
  }
}
//******************************************************************************
void AliAnalysisTaskSEHFv2::FillDstar(AliAODRecoDecayHF* d,TClonesArray *arrayMC,Int_t ptbin,Float_t deltaphi, const Float_t* masses,Int_t isSel,Int_t icentr, Double_t phiD){
  //D* channel
  if(!isSel){
    if(fDebug>3)AliWarning("Candidate not selected\n");
    return;
  }
  if(!masses){
    if(fDebug>3)AliWarning("Masses not calculated\n");
    return;
  }

  Float_t deltaphi1 = deltaphi;
  if(deltaphi1 > TMath::PiOver2()) deltaphi1 = TMath::Pi() - deltaphi1; 
  Int_t icentrmin=icentr-fCentBinSizePerMil;
  ((TH2F*)fOutput->FindObject(Form("hMc2deltaphi_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Cos(2*deltaphi),masses[0]);
  ((TH2F*)fOutput->FindObject(Form("hMs2deltaphi_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Sin(2*deltaphi),masses[0]);
  ((TH2F*)fOutput->FindObject(Form("hMdeltaphi_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(deltaphi1,masses[0]);
  ((TH2F*)fOutput->FindObject(Form("hMPtCandcentr%d_%d",icentrmin,icentr)))->Fill(d->Pt(),masses[0]); 
  ((TH2F*)fOutput->FindObject(Form("hCos2phiMass_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Cos(2*phiD),masses[0]);
  ((TH2F*)fOutput->FindObject(Form("hSin2phiMass_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Sin(2*phiD),masses[0]);
  Int_t pdgDgDStartoD0pi[2]={421,211};
  Int_t pdgDgD0toKpi[2]={321,211};
  
  if(fReadMC){
    Int_t lab=-1;
    lab = ((AliAODRecoCascadeHF*)d)->MatchToMC(413,421,pdgDgDStartoD0pi,pdgDgD0toKpi,arrayMC);
    if(lab>=0){ //signal
      ((TH2F*)fOutput->FindObject(Form("hMc2deltaphiS_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Cos(2*deltaphi),masses[0]);
      ((TH2F*)fOutput->FindObject(Form("hMdeltaphiS_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(deltaphi,masses[0]);
    } else{ //background
      ((TH2F*)fOutput->FindObject(Form("hMc2deltaphiB_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(TMath::Cos(2*deltaphi),masses[0]);
      ((TH2F*)fOutput->FindObject(Form("hMdeltaphiB_pt%dcentr%d_%d",ptbin,icentrmin,icentr)))->Fill(deltaphi,masses[0]);
    } 
  }
}

//________________________________________________________________________
void AliAnalysisTaskSEHFv2::SetEventPlaneMethod(Int_t method){
  if(method>kVZEROC||method<0){
    AliWarning("No EP method associated to the selection, setting to TPC EP\n");
    method=kTPCVZERO;
  }
  fEventPlaneMeth=method;
}
//________________________________________________________________________
void AliAnalysisTaskSEHFv2::SetNTPCSubEvents(Int_t nsub){
  if(nsub>3||nsub<2){
    AliWarning("Only 2 or 3 subevents implemented. Setting 2 subevents\n");
    nsub=2;
  }
  if(fEventPlaneMeth==kTPC&&nsub==3){
    AliWarning("V0 must be enabled to run 3 TPC subevents. Enabling...\n");
    fEventPlaneMeth=kTPCVZERO;
  }
  fSubEvents=nsub;
}
//________________________________________________________________________
Float_t AliAnalysisTaskSEHFv2::GetPhi0Pi(Float_t phi){
  // Sets the phi angle in the range 0-pi
  Float_t result=phi;
  while(result<0){
    result=result+TMath::Pi();
  }
  while(result>TMath::Pi()){
    result=result-TMath::Pi();
  }
   return result;
}

//________________________________________________________________________
Float_t AliAnalysisTaskSEHFv2::GetEventPlaneForCandidate(AliAODRecoDecayHF* d, const TVector2* q,AliEventplane *pl, const TVector2* qsub1, const TVector2* qsub2){
  // remove autocorrelations 
 
  TArrayF* qx = 0x0;
  TArrayF* qy = 0x0;
  TVector2 qcopy; 
  if(!fEtaGap){
    qx = pl->GetQContributionXArray();
    qy = pl->GetQContributionYArray();
    qcopy = *q;
  }else {
    if(d->Eta()<0.){
      qx = pl->GetQContributionXArraysub1();
      qy = pl->GetQContributionYArraysub1();
      qcopy = *qsub1;
    }else{
      qx = pl->GetQContributionXArraysub2();
      qy = pl->GetQContributionYArraysub2();
      qcopy = *qsub2;
    }
  }
  
  if(fDecChannel==2){
    //D* -- Yifei, Alessandro,Robert
    AliAODRecoDecayHF2Prong* theD0particle = ((AliAODRecoCascadeHF*)d)->Get2Prong();
    AliAODTrack *track0 = (AliAODTrack*)theD0particle->GetDaughter(0);
    AliAODTrack *track1 = (AliAODTrack*)theD0particle->GetDaughter(1);  
    AliAODTrack *track2 = ((AliAODRecoCascadeHF*)d)->GetBachelor(); 
    // reduce global q vector

    TVector2 q0;
    if((track0->GetID()) < qx->fN){
      q0.Set(qx->At(track0->GetID()),qy->At(track0->GetID()));}
	
    TVector2 q1;
    if((track1->GetID()) < qx->fN){
      q1.Set(qx->At(track1->GetID()),qy->At(track1->GetID()));}
	
    TVector2 q2;
    if((track2->GetID()) < qx->fN){
      q2.Set(qx->At(track2->GetID()),qy->At(track2->GetID()));}
      
    qcopy = qcopy -(q0+q1+q2);
  
  }
  
  // reduce Q vector for D+ and D0
  
  if(fDecChannel==1){    
    //D0 -- Chiara
    AliAODTrack *track0 = (AliAODTrack*)d->GetDaughter(0);
    AliAODTrack *track1 = (AliAODTrack*)d->GetDaughter(1);  

    TVector2 q0;
    if((track0->GetID()) < qx->fN){
      q0.Set(qx->At(track0->GetID()),qy->At(track0->GetID()));}
	
    TVector2 q1;
    if((track1->GetID()) < qx->fN){
      q1.Set(qx->At(track1->GetID()),qy->At(track1->GetID()));}
	
    qcopy = qcopy -(q0+q1);
  }

  if(fDecChannel==0){
    //D+ -- Giacomo
    AliAODTrack *track0 = (AliAODTrack*)d->GetDaughter(0);
    AliAODTrack *track1 = (AliAODTrack*)d->GetDaughter(1);  
    AliAODTrack *track2 = (AliAODTrack*)d->GetDaughter(2);  
    
    TVector2 q0;
    if((track0->GetID()) < qx->fN){
      q0.Set(qx->At(track0->GetID()),qy->At(track0->GetID()));}
	
    TVector2 q1;
    if((track1->GetID()) < qx->fN){
      q1.Set(qx->At(track1->GetID()),qy->At(track1->GetID()));}
	
    TVector2 q2;
    if((track2->GetID()) < qx->fN){
      q2.Set(qx->At(track2->GetID()),qy->At(track2->GetID()));}
      
    qcopy = qcopy -(q0+q1+q2);
	
  }

  return qcopy.Phi()/2.;

}
// //________________________________________________________________________
// Float_t AliAnalysisTaskSEHFv2::GetEventPlaneFromV0(AliAODEvent *aodEvent){
//   // Compute event plane for VZERO - Obsolete, used for 2010 data

//   Int_t centr=fRDCuts->GetCentrality(aodEvent);
//   centr=centr-centr%10;
//   //temporary fix
//   if(centr<20)centr=20;
//   if(centr>70)centr=70;
//   //end temporary fix
//   Int_t binx=0;
//   Int_t iParHist=(centr-20)/10;

//   TString name;name.Form("parhist%d_%d",centr,centr+10);

//   if(fDebug>15)printf("EPfromV0 centr %d, iparhist %d (%p-%p)\n",centr,iParHist,fParHist->FindObject(name.Data()),fParHist->At(iParHist));

//   Int_t runnumber=aodEvent->GetRunNumber();
//   if(fParHist->At(iParHist)){
//     for(Int_t i=1;i<=((TH2D*)fParHist->At(iParHist))->GetNbinsX()&&binx<=0;i++){
//       Int_t run=atoi(((TH2D*)fParHist->At(iParHist))->GetXaxis()->GetBinLabel(i));
//       if(run>=runnumber)binx=i;
//     }
//   }else{
//     fhEventsInfo->Fill(7);
//   }

//   AliFlowTrackCuts* cutsRP = AliFlowTrackCuts::GetStandardVZEROOnlyTrackCuts();
//   cutsRP->SetEvent(aodEvent, MCEvent());//, 0x0);
//   cutsRP->SetName( Form("rp_cuts") );
//   AliFlowTrackCuts* dummy = new AliFlowTrackCuts("null_cuts");
//   dummy->SetParamType(AliFlowTrackCuts::kGlobal);
//   dummy->SetPtRange(+1,-1); // select nothing QUICK
//   dummy->SetEtaRange(+1,-1); // select nothing VZERO
//   dummy->SetEvent(aodEvent,MCEvent());

//   //////////////// construct the flow event container ////////////
//   AliFlowEvent flowEvent(cutsRP,dummy);
//   flowEvent.SetReferenceMultiplicity( 64 );
//   for(Int_t i=0;i<64&&binx>0;i++){
//     AliFlowTrack *flowTrack=flowEvent.GetTrack(i);
//     Double_t inte=((TH2D*)fParHist->At(iParHist))->Integral(binx,binx,i+1,i+1);
//     if(inte>0)flowTrack->SetWeight(flowTrack->Weight()/inte);
//   }
//   if(fDebug>15)printf("EPfromV0 flow tracks weights done\n");

//   AliFlowVector qvec=flowEvent.GetQ(fV0EPorder);
//   Double_t angleEP=(1./(Double_t)fV0EPorder)*qvec.Phi();
//   if(fDebug>15)printf("EPfromV0 phi %f\n",angleEP);
//   return angleEP;
// }
//________________________________________________________________________
void AliAnalysisTaskSEHFv2::Terminate(Option_t */*option*/)
{
  // Terminate analysis
  //
  if(fDebug > 1) printf("AnalysisTaskSEHFv2: Terminate() \n");
 
  return;
}

 AliAnalysisTaskSEHFv2.cxx:1
 AliAnalysisTaskSEHFv2.cxx:2
 AliAnalysisTaskSEHFv2.cxx:3
 AliAnalysisTaskSEHFv2.cxx:4
 AliAnalysisTaskSEHFv2.cxx:5
 AliAnalysisTaskSEHFv2.cxx:6
 AliAnalysisTaskSEHFv2.cxx:7
 AliAnalysisTaskSEHFv2.cxx:8
 AliAnalysisTaskSEHFv2.cxx:9
 AliAnalysisTaskSEHFv2.cxx:10
 AliAnalysisTaskSEHFv2.cxx:11
 AliAnalysisTaskSEHFv2.cxx:12
 AliAnalysisTaskSEHFv2.cxx:13
 AliAnalysisTaskSEHFv2.cxx:14
 AliAnalysisTaskSEHFv2.cxx:15
 AliAnalysisTaskSEHFv2.cxx:16
 AliAnalysisTaskSEHFv2.cxx:17
 AliAnalysisTaskSEHFv2.cxx:18
 AliAnalysisTaskSEHFv2.cxx:19
 AliAnalysisTaskSEHFv2.cxx:20
 AliAnalysisTaskSEHFv2.cxx:21
 AliAnalysisTaskSEHFv2.cxx:22
 AliAnalysisTaskSEHFv2.cxx:23
 AliAnalysisTaskSEHFv2.cxx:24
 AliAnalysisTaskSEHFv2.cxx:25
 AliAnalysisTaskSEHFv2.cxx:26
 AliAnalysisTaskSEHFv2.cxx:27
 AliAnalysisTaskSEHFv2.cxx:28
 AliAnalysisTaskSEHFv2.cxx:29
 AliAnalysisTaskSEHFv2.cxx:30
 AliAnalysisTaskSEHFv2.cxx:31
 AliAnalysisTaskSEHFv2.cxx:32
 AliAnalysisTaskSEHFv2.cxx:33
 AliAnalysisTaskSEHFv2.cxx:34
 AliAnalysisTaskSEHFv2.cxx:35
 AliAnalysisTaskSEHFv2.cxx:36
 AliAnalysisTaskSEHFv2.cxx:37
 AliAnalysisTaskSEHFv2.cxx:38
 AliAnalysisTaskSEHFv2.cxx:39
 AliAnalysisTaskSEHFv2.cxx:40
 AliAnalysisTaskSEHFv2.cxx:41
 AliAnalysisTaskSEHFv2.cxx:42
 AliAnalysisTaskSEHFv2.cxx:43
 AliAnalysisTaskSEHFv2.cxx:44
 AliAnalysisTaskSEHFv2.cxx:45
 AliAnalysisTaskSEHFv2.cxx:46
 AliAnalysisTaskSEHFv2.cxx:47
 AliAnalysisTaskSEHFv2.cxx:48
 AliAnalysisTaskSEHFv2.cxx:49
 AliAnalysisTaskSEHFv2.cxx:50
 AliAnalysisTaskSEHFv2.cxx:51
 AliAnalysisTaskSEHFv2.cxx:52
 AliAnalysisTaskSEHFv2.cxx:53
 AliAnalysisTaskSEHFv2.cxx:54
 AliAnalysisTaskSEHFv2.cxx:55
 AliAnalysisTaskSEHFv2.cxx:56
 AliAnalysisTaskSEHFv2.cxx:57
 AliAnalysisTaskSEHFv2.cxx:58
 AliAnalysisTaskSEHFv2.cxx:59
 AliAnalysisTaskSEHFv2.cxx:60
 AliAnalysisTaskSEHFv2.cxx:61
 AliAnalysisTaskSEHFv2.cxx:62
 AliAnalysisTaskSEHFv2.cxx:63
 AliAnalysisTaskSEHFv2.cxx:64
 AliAnalysisTaskSEHFv2.cxx:65
 AliAnalysisTaskSEHFv2.cxx:66
 AliAnalysisTaskSEHFv2.cxx:67
 AliAnalysisTaskSEHFv2.cxx:68
 AliAnalysisTaskSEHFv2.cxx:69
 AliAnalysisTaskSEHFv2.cxx:70
 AliAnalysisTaskSEHFv2.cxx:71
 AliAnalysisTaskSEHFv2.cxx:72
 AliAnalysisTaskSEHFv2.cxx:73
 AliAnalysisTaskSEHFv2.cxx:74
 AliAnalysisTaskSEHFv2.cxx:75
 AliAnalysisTaskSEHFv2.cxx:76
 AliAnalysisTaskSEHFv2.cxx:77
 AliAnalysisTaskSEHFv2.cxx:78
 AliAnalysisTaskSEHFv2.cxx:79
 AliAnalysisTaskSEHFv2.cxx:80
 AliAnalysisTaskSEHFv2.cxx:81
 AliAnalysisTaskSEHFv2.cxx:82
 AliAnalysisTaskSEHFv2.cxx:83
 AliAnalysisTaskSEHFv2.cxx:84
 AliAnalysisTaskSEHFv2.cxx:85
 AliAnalysisTaskSEHFv2.cxx:86
 AliAnalysisTaskSEHFv2.cxx:87
 AliAnalysisTaskSEHFv2.cxx:88
 AliAnalysisTaskSEHFv2.cxx:89
 AliAnalysisTaskSEHFv2.cxx:90
 AliAnalysisTaskSEHFv2.cxx:91
 AliAnalysisTaskSEHFv2.cxx:92
 AliAnalysisTaskSEHFv2.cxx:93
 AliAnalysisTaskSEHFv2.cxx:94
 AliAnalysisTaskSEHFv2.cxx:95
 AliAnalysisTaskSEHFv2.cxx:96
 AliAnalysisTaskSEHFv2.cxx:97
 AliAnalysisTaskSEHFv2.cxx:98
 AliAnalysisTaskSEHFv2.cxx:99
 AliAnalysisTaskSEHFv2.cxx:100
 AliAnalysisTaskSEHFv2.cxx:101
 AliAnalysisTaskSEHFv2.cxx:102
 AliAnalysisTaskSEHFv2.cxx:103
 AliAnalysisTaskSEHFv2.cxx:104
 AliAnalysisTaskSEHFv2.cxx:105
 AliAnalysisTaskSEHFv2.cxx:106
 AliAnalysisTaskSEHFv2.cxx:107
 AliAnalysisTaskSEHFv2.cxx:108
 AliAnalysisTaskSEHFv2.cxx:109
 AliAnalysisTaskSEHFv2.cxx:110
 AliAnalysisTaskSEHFv2.cxx:111
 AliAnalysisTaskSEHFv2.cxx:112
 AliAnalysisTaskSEHFv2.cxx:113
 AliAnalysisTaskSEHFv2.cxx:114
 AliAnalysisTaskSEHFv2.cxx:115
 AliAnalysisTaskSEHFv2.cxx:116
 AliAnalysisTaskSEHFv2.cxx:117
 AliAnalysisTaskSEHFv2.cxx:118
 AliAnalysisTaskSEHFv2.cxx:119
 AliAnalysisTaskSEHFv2.cxx:120
 AliAnalysisTaskSEHFv2.cxx:121
 AliAnalysisTaskSEHFv2.cxx:122
 AliAnalysisTaskSEHFv2.cxx:123
 AliAnalysisTaskSEHFv2.cxx:124
 AliAnalysisTaskSEHFv2.cxx:125
 AliAnalysisTaskSEHFv2.cxx:126
 AliAnalysisTaskSEHFv2.cxx:127
 AliAnalysisTaskSEHFv2.cxx:128
 AliAnalysisTaskSEHFv2.cxx:129
 AliAnalysisTaskSEHFv2.cxx:130
 AliAnalysisTaskSEHFv2.cxx:131
 AliAnalysisTaskSEHFv2.cxx:132
 AliAnalysisTaskSEHFv2.cxx:133
 AliAnalysisTaskSEHFv2.cxx:134
 AliAnalysisTaskSEHFv2.cxx:135
 AliAnalysisTaskSEHFv2.cxx:136
 AliAnalysisTaskSEHFv2.cxx:137
 AliAnalysisTaskSEHFv2.cxx:138
 AliAnalysisTaskSEHFv2.cxx:139
 AliAnalysisTaskSEHFv2.cxx:140
 AliAnalysisTaskSEHFv2.cxx:141
 AliAnalysisTaskSEHFv2.cxx:142
 AliAnalysisTaskSEHFv2.cxx:143
 AliAnalysisTaskSEHFv2.cxx:144
 AliAnalysisTaskSEHFv2.cxx:145
 AliAnalysisTaskSEHFv2.cxx:146
 AliAnalysisTaskSEHFv2.cxx:147
 AliAnalysisTaskSEHFv2.cxx:148
 AliAnalysisTaskSEHFv2.cxx:149
 AliAnalysisTaskSEHFv2.cxx:150
 AliAnalysisTaskSEHFv2.cxx:151
 AliAnalysisTaskSEHFv2.cxx:152
 AliAnalysisTaskSEHFv2.cxx:153
 AliAnalysisTaskSEHFv2.cxx:154
 AliAnalysisTaskSEHFv2.cxx:155
 AliAnalysisTaskSEHFv2.cxx:156
 AliAnalysisTaskSEHFv2.cxx:157
 AliAnalysisTaskSEHFv2.cxx:158
 AliAnalysisTaskSEHFv2.cxx:159
 AliAnalysisTaskSEHFv2.cxx:160
 AliAnalysisTaskSEHFv2.cxx:161
 AliAnalysisTaskSEHFv2.cxx:162
 AliAnalysisTaskSEHFv2.cxx:163
 AliAnalysisTaskSEHFv2.cxx:164
 AliAnalysisTaskSEHFv2.cxx:165
 AliAnalysisTaskSEHFv2.cxx:166
 AliAnalysisTaskSEHFv2.cxx:167
 AliAnalysisTaskSEHFv2.cxx:168
 AliAnalysisTaskSEHFv2.cxx:169
 AliAnalysisTaskSEHFv2.cxx:170
 AliAnalysisTaskSEHFv2.cxx:171
 AliAnalysisTaskSEHFv2.cxx:172
 AliAnalysisTaskSEHFv2.cxx:173
 AliAnalysisTaskSEHFv2.cxx:174
 AliAnalysisTaskSEHFv2.cxx:175
 AliAnalysisTaskSEHFv2.cxx:176
 AliAnalysisTaskSEHFv2.cxx:177
 AliAnalysisTaskSEHFv2.cxx:178
 AliAnalysisTaskSEHFv2.cxx:179
 AliAnalysisTaskSEHFv2.cxx:180
 AliAnalysisTaskSEHFv2.cxx:181
 AliAnalysisTaskSEHFv2.cxx:182
 AliAnalysisTaskSEHFv2.cxx:183
 AliAnalysisTaskSEHFv2.cxx:184
 AliAnalysisTaskSEHFv2.cxx:185
 AliAnalysisTaskSEHFv2.cxx:186
 AliAnalysisTaskSEHFv2.cxx:187
 AliAnalysisTaskSEHFv2.cxx:188
 AliAnalysisTaskSEHFv2.cxx:189
 AliAnalysisTaskSEHFv2.cxx:190
 AliAnalysisTaskSEHFv2.cxx:191
 AliAnalysisTaskSEHFv2.cxx:192
 AliAnalysisTaskSEHFv2.cxx:193
 AliAnalysisTaskSEHFv2.cxx:194
 AliAnalysisTaskSEHFv2.cxx:195
 AliAnalysisTaskSEHFv2.cxx:196
 AliAnalysisTaskSEHFv2.cxx:197
 AliAnalysisTaskSEHFv2.cxx:198
 AliAnalysisTaskSEHFv2.cxx:199
 AliAnalysisTaskSEHFv2.cxx:200
 AliAnalysisTaskSEHFv2.cxx:201
 AliAnalysisTaskSEHFv2.cxx:202
 AliAnalysisTaskSEHFv2.cxx:203
 AliAnalysisTaskSEHFv2.cxx:204
 AliAnalysisTaskSEHFv2.cxx:205
 AliAnalysisTaskSEHFv2.cxx:206
 AliAnalysisTaskSEHFv2.cxx:207
 AliAnalysisTaskSEHFv2.cxx:208
 AliAnalysisTaskSEHFv2.cxx:209
 AliAnalysisTaskSEHFv2.cxx:210
 AliAnalysisTaskSEHFv2.cxx:211
 AliAnalysisTaskSEHFv2.cxx:212
 AliAnalysisTaskSEHFv2.cxx:213
 AliAnalysisTaskSEHFv2.cxx:214
 AliAnalysisTaskSEHFv2.cxx:215
 AliAnalysisTaskSEHFv2.cxx:216
 AliAnalysisTaskSEHFv2.cxx:217
 AliAnalysisTaskSEHFv2.cxx:218
 AliAnalysisTaskSEHFv2.cxx:219
 AliAnalysisTaskSEHFv2.cxx:220
 AliAnalysisTaskSEHFv2.cxx:221
 AliAnalysisTaskSEHFv2.cxx:222
 AliAnalysisTaskSEHFv2.cxx:223
 AliAnalysisTaskSEHFv2.cxx:224
 AliAnalysisTaskSEHFv2.cxx:225
 AliAnalysisTaskSEHFv2.cxx:226
 AliAnalysisTaskSEHFv2.cxx:227
 AliAnalysisTaskSEHFv2.cxx:228
 AliAnalysisTaskSEHFv2.cxx:229
 AliAnalysisTaskSEHFv2.cxx:230
 AliAnalysisTaskSEHFv2.cxx:231
 AliAnalysisTaskSEHFv2.cxx:232
 AliAnalysisTaskSEHFv2.cxx:233
 AliAnalysisTaskSEHFv2.cxx:234
 AliAnalysisTaskSEHFv2.cxx:235
 AliAnalysisTaskSEHFv2.cxx:236
 AliAnalysisTaskSEHFv2.cxx:237
 AliAnalysisTaskSEHFv2.cxx:238
 AliAnalysisTaskSEHFv2.cxx:239
 AliAnalysisTaskSEHFv2.cxx:240
 AliAnalysisTaskSEHFv2.cxx:241
 AliAnalysisTaskSEHFv2.cxx:242
 AliAnalysisTaskSEHFv2.cxx:243
 AliAnalysisTaskSEHFv2.cxx:244
 AliAnalysisTaskSEHFv2.cxx:245
 AliAnalysisTaskSEHFv2.cxx:246
 AliAnalysisTaskSEHFv2.cxx:247
 AliAnalysisTaskSEHFv2.cxx:248
 AliAnalysisTaskSEHFv2.cxx:249
 AliAnalysisTaskSEHFv2.cxx:250
 AliAnalysisTaskSEHFv2.cxx:251
 AliAnalysisTaskSEHFv2.cxx:252
 AliAnalysisTaskSEHFv2.cxx:253
 AliAnalysisTaskSEHFv2.cxx:254
 AliAnalysisTaskSEHFv2.cxx:255
 AliAnalysisTaskSEHFv2.cxx:256
 AliAnalysisTaskSEHFv2.cxx:257
 AliAnalysisTaskSEHFv2.cxx:258
 AliAnalysisTaskSEHFv2.cxx:259
 AliAnalysisTaskSEHFv2.cxx:260
 AliAnalysisTaskSEHFv2.cxx:261
 AliAnalysisTaskSEHFv2.cxx:262
 AliAnalysisTaskSEHFv2.cxx:263
 AliAnalysisTaskSEHFv2.cxx:264
 AliAnalysisTaskSEHFv2.cxx:265
 AliAnalysisTaskSEHFv2.cxx:266
 AliAnalysisTaskSEHFv2.cxx:267
 AliAnalysisTaskSEHFv2.cxx:268
 AliAnalysisTaskSEHFv2.cxx:269
 AliAnalysisTaskSEHFv2.cxx:270
 AliAnalysisTaskSEHFv2.cxx:271
 AliAnalysisTaskSEHFv2.cxx:272
 AliAnalysisTaskSEHFv2.cxx:273
 AliAnalysisTaskSEHFv2.cxx:274
 AliAnalysisTaskSEHFv2.cxx:275
 AliAnalysisTaskSEHFv2.cxx:276
 AliAnalysisTaskSEHFv2.cxx:277
 AliAnalysisTaskSEHFv2.cxx:278
 AliAnalysisTaskSEHFv2.cxx:279
 AliAnalysisTaskSEHFv2.cxx:280
 AliAnalysisTaskSEHFv2.cxx:281
 AliAnalysisTaskSEHFv2.cxx:282
 AliAnalysisTaskSEHFv2.cxx:283
 AliAnalysisTaskSEHFv2.cxx:284
 AliAnalysisTaskSEHFv2.cxx:285
 AliAnalysisTaskSEHFv2.cxx:286
 AliAnalysisTaskSEHFv2.cxx:287
 AliAnalysisTaskSEHFv2.cxx:288
 AliAnalysisTaskSEHFv2.cxx:289
 AliAnalysisTaskSEHFv2.cxx:290
 AliAnalysisTaskSEHFv2.cxx:291
 AliAnalysisTaskSEHFv2.cxx:292
 AliAnalysisTaskSEHFv2.cxx:293
 AliAnalysisTaskSEHFv2.cxx:294
 AliAnalysisTaskSEHFv2.cxx:295
 AliAnalysisTaskSEHFv2.cxx:296
 AliAnalysisTaskSEHFv2.cxx:297
 AliAnalysisTaskSEHFv2.cxx:298
 AliAnalysisTaskSEHFv2.cxx:299
 AliAnalysisTaskSEHFv2.cxx:300
 AliAnalysisTaskSEHFv2.cxx:301
 AliAnalysisTaskSEHFv2.cxx:302
 AliAnalysisTaskSEHFv2.cxx:303
 AliAnalysisTaskSEHFv2.cxx:304
 AliAnalysisTaskSEHFv2.cxx:305
 AliAnalysisTaskSEHFv2.cxx:306
 AliAnalysisTaskSEHFv2.cxx:307
 AliAnalysisTaskSEHFv2.cxx:308
 AliAnalysisTaskSEHFv2.cxx:309
 AliAnalysisTaskSEHFv2.cxx:310
 AliAnalysisTaskSEHFv2.cxx:311
 AliAnalysisTaskSEHFv2.cxx:312
 AliAnalysisTaskSEHFv2.cxx:313
 AliAnalysisTaskSEHFv2.cxx:314
 AliAnalysisTaskSEHFv2.cxx:315
 AliAnalysisTaskSEHFv2.cxx:316
 AliAnalysisTaskSEHFv2.cxx:317
 AliAnalysisTaskSEHFv2.cxx:318
 AliAnalysisTaskSEHFv2.cxx:319
 AliAnalysisTaskSEHFv2.cxx:320
 AliAnalysisTaskSEHFv2.cxx:321
 AliAnalysisTaskSEHFv2.cxx:322
 AliAnalysisTaskSEHFv2.cxx:323
 AliAnalysisTaskSEHFv2.cxx:324
 AliAnalysisTaskSEHFv2.cxx:325
 AliAnalysisTaskSEHFv2.cxx:326
 AliAnalysisTaskSEHFv2.cxx:327
 AliAnalysisTaskSEHFv2.cxx:328
 AliAnalysisTaskSEHFv2.cxx:329
 AliAnalysisTaskSEHFv2.cxx:330
 AliAnalysisTaskSEHFv2.cxx:331
 AliAnalysisTaskSEHFv2.cxx:332
 AliAnalysisTaskSEHFv2.cxx:333
 AliAnalysisTaskSEHFv2.cxx:334
 AliAnalysisTaskSEHFv2.cxx:335
 AliAnalysisTaskSEHFv2.cxx:336
 AliAnalysisTaskSEHFv2.cxx:337
 AliAnalysisTaskSEHFv2.cxx:338
 AliAnalysisTaskSEHFv2.cxx:339
 AliAnalysisTaskSEHFv2.cxx:340
 AliAnalysisTaskSEHFv2.cxx:341
 AliAnalysisTaskSEHFv2.cxx:342
 AliAnalysisTaskSEHFv2.cxx:343
 AliAnalysisTaskSEHFv2.cxx:344
 AliAnalysisTaskSEHFv2.cxx:345
 AliAnalysisTaskSEHFv2.cxx:346
 AliAnalysisTaskSEHFv2.cxx:347
 AliAnalysisTaskSEHFv2.cxx:348
 AliAnalysisTaskSEHFv2.cxx:349
 AliAnalysisTaskSEHFv2.cxx:350
 AliAnalysisTaskSEHFv2.cxx:351
 AliAnalysisTaskSEHFv2.cxx:352
 AliAnalysisTaskSEHFv2.cxx:353
 AliAnalysisTaskSEHFv2.cxx:354
 AliAnalysisTaskSEHFv2.cxx:355
 AliAnalysisTaskSEHFv2.cxx:356
 AliAnalysisTaskSEHFv2.cxx:357
 AliAnalysisTaskSEHFv2.cxx:358
 AliAnalysisTaskSEHFv2.cxx:359
 AliAnalysisTaskSEHFv2.cxx:360
 AliAnalysisTaskSEHFv2.cxx:361
 AliAnalysisTaskSEHFv2.cxx:362
 AliAnalysisTaskSEHFv2.cxx:363
 AliAnalysisTaskSEHFv2.cxx:364
 AliAnalysisTaskSEHFv2.cxx:365
 AliAnalysisTaskSEHFv2.cxx:366
 AliAnalysisTaskSEHFv2.cxx:367
 AliAnalysisTaskSEHFv2.cxx:368
 AliAnalysisTaskSEHFv2.cxx:369
 AliAnalysisTaskSEHFv2.cxx:370
 AliAnalysisTaskSEHFv2.cxx:371
 AliAnalysisTaskSEHFv2.cxx:372
 AliAnalysisTaskSEHFv2.cxx:373
 AliAnalysisTaskSEHFv2.cxx:374
 AliAnalysisTaskSEHFv2.cxx:375
 AliAnalysisTaskSEHFv2.cxx:376
 AliAnalysisTaskSEHFv2.cxx:377
 AliAnalysisTaskSEHFv2.cxx:378
 AliAnalysisTaskSEHFv2.cxx:379
 AliAnalysisTaskSEHFv2.cxx:380
 AliAnalysisTaskSEHFv2.cxx:381
 AliAnalysisTaskSEHFv2.cxx:382
 AliAnalysisTaskSEHFv2.cxx:383
 AliAnalysisTaskSEHFv2.cxx:384
 AliAnalysisTaskSEHFv2.cxx:385
 AliAnalysisTaskSEHFv2.cxx:386
 AliAnalysisTaskSEHFv2.cxx:387
 AliAnalysisTaskSEHFv2.cxx:388
 AliAnalysisTaskSEHFv2.cxx:389
 AliAnalysisTaskSEHFv2.cxx:390
 AliAnalysisTaskSEHFv2.cxx:391
 AliAnalysisTaskSEHFv2.cxx:392
 AliAnalysisTaskSEHFv2.cxx:393
 AliAnalysisTaskSEHFv2.cxx:394
 AliAnalysisTaskSEHFv2.cxx:395
 AliAnalysisTaskSEHFv2.cxx:396
 AliAnalysisTaskSEHFv2.cxx:397
 AliAnalysisTaskSEHFv2.cxx:398
 AliAnalysisTaskSEHFv2.cxx:399
 AliAnalysisTaskSEHFv2.cxx:400
 AliAnalysisTaskSEHFv2.cxx:401
 AliAnalysisTaskSEHFv2.cxx:402
 AliAnalysisTaskSEHFv2.cxx:403
 AliAnalysisTaskSEHFv2.cxx:404
 AliAnalysisTaskSEHFv2.cxx:405
 AliAnalysisTaskSEHFv2.cxx:406
 AliAnalysisTaskSEHFv2.cxx:407
 AliAnalysisTaskSEHFv2.cxx:408
 AliAnalysisTaskSEHFv2.cxx:409
 AliAnalysisTaskSEHFv2.cxx:410
 AliAnalysisTaskSEHFv2.cxx:411
 AliAnalysisTaskSEHFv2.cxx:412
 AliAnalysisTaskSEHFv2.cxx:413
 AliAnalysisTaskSEHFv2.cxx:414
 AliAnalysisTaskSEHFv2.cxx:415
 AliAnalysisTaskSEHFv2.cxx:416
 AliAnalysisTaskSEHFv2.cxx:417
 AliAnalysisTaskSEHFv2.cxx:418
 AliAnalysisTaskSEHFv2.cxx:419
 AliAnalysisTaskSEHFv2.cxx:420
 AliAnalysisTaskSEHFv2.cxx:421
 AliAnalysisTaskSEHFv2.cxx:422
 AliAnalysisTaskSEHFv2.cxx:423
 AliAnalysisTaskSEHFv2.cxx:424
 AliAnalysisTaskSEHFv2.cxx:425
 AliAnalysisTaskSEHFv2.cxx:426
 AliAnalysisTaskSEHFv2.cxx:427
 AliAnalysisTaskSEHFv2.cxx:428
 AliAnalysisTaskSEHFv2.cxx:429
 AliAnalysisTaskSEHFv2.cxx:430
 AliAnalysisTaskSEHFv2.cxx:431
 AliAnalysisTaskSEHFv2.cxx:432
 AliAnalysisTaskSEHFv2.cxx:433
 AliAnalysisTaskSEHFv2.cxx:434
 AliAnalysisTaskSEHFv2.cxx:435
 AliAnalysisTaskSEHFv2.cxx:436
 AliAnalysisTaskSEHFv2.cxx:437
 AliAnalysisTaskSEHFv2.cxx:438
 AliAnalysisTaskSEHFv2.cxx:439
 AliAnalysisTaskSEHFv2.cxx:440
 AliAnalysisTaskSEHFv2.cxx:441
 AliAnalysisTaskSEHFv2.cxx:442
 AliAnalysisTaskSEHFv2.cxx:443
 AliAnalysisTaskSEHFv2.cxx:444
 AliAnalysisTaskSEHFv2.cxx:445
 AliAnalysisTaskSEHFv2.cxx:446
 AliAnalysisTaskSEHFv2.cxx:447
 AliAnalysisTaskSEHFv2.cxx:448
 AliAnalysisTaskSEHFv2.cxx:449
 AliAnalysisTaskSEHFv2.cxx:450
 AliAnalysisTaskSEHFv2.cxx:451
 AliAnalysisTaskSEHFv2.cxx:452
 AliAnalysisTaskSEHFv2.cxx:453
 AliAnalysisTaskSEHFv2.cxx:454
 AliAnalysisTaskSEHFv2.cxx:455
 AliAnalysisTaskSEHFv2.cxx:456
 AliAnalysisTaskSEHFv2.cxx:457
 AliAnalysisTaskSEHFv2.cxx:458
 AliAnalysisTaskSEHFv2.cxx:459
 AliAnalysisTaskSEHFv2.cxx:460
 AliAnalysisTaskSEHFv2.cxx:461
 AliAnalysisTaskSEHFv2.cxx:462
 AliAnalysisTaskSEHFv2.cxx:463
 AliAnalysisTaskSEHFv2.cxx:464
 AliAnalysisTaskSEHFv2.cxx:465
 AliAnalysisTaskSEHFv2.cxx:466
 AliAnalysisTaskSEHFv2.cxx:467
 AliAnalysisTaskSEHFv2.cxx:468
 AliAnalysisTaskSEHFv2.cxx:469
 AliAnalysisTaskSEHFv2.cxx:470
 AliAnalysisTaskSEHFv2.cxx:471
 AliAnalysisTaskSEHFv2.cxx:472
 AliAnalysisTaskSEHFv2.cxx:473
 AliAnalysisTaskSEHFv2.cxx:474
 AliAnalysisTaskSEHFv2.cxx:475
 AliAnalysisTaskSEHFv2.cxx:476
 AliAnalysisTaskSEHFv2.cxx:477
 AliAnalysisTaskSEHFv2.cxx:478
 AliAnalysisTaskSEHFv2.cxx:479
 AliAnalysisTaskSEHFv2.cxx:480
 AliAnalysisTaskSEHFv2.cxx:481
 AliAnalysisTaskSEHFv2.cxx:482
 AliAnalysisTaskSEHFv2.cxx:483
 AliAnalysisTaskSEHFv2.cxx:484
 AliAnalysisTaskSEHFv2.cxx:485
 AliAnalysisTaskSEHFv2.cxx:486
 AliAnalysisTaskSEHFv2.cxx:487
 AliAnalysisTaskSEHFv2.cxx:488
 AliAnalysisTaskSEHFv2.cxx:489
 AliAnalysisTaskSEHFv2.cxx:490
 AliAnalysisTaskSEHFv2.cxx:491
 AliAnalysisTaskSEHFv2.cxx:492
 AliAnalysisTaskSEHFv2.cxx:493
 AliAnalysisTaskSEHFv2.cxx:494
 AliAnalysisTaskSEHFv2.cxx:495
 AliAnalysisTaskSEHFv2.cxx:496
 AliAnalysisTaskSEHFv2.cxx:497
 AliAnalysisTaskSEHFv2.cxx:498
 AliAnalysisTaskSEHFv2.cxx:499
 AliAnalysisTaskSEHFv2.cxx:500
 AliAnalysisTaskSEHFv2.cxx:501
 AliAnalysisTaskSEHFv2.cxx:502
 AliAnalysisTaskSEHFv2.cxx:503
 AliAnalysisTaskSEHFv2.cxx:504
 AliAnalysisTaskSEHFv2.cxx:505
 AliAnalysisTaskSEHFv2.cxx:506
 AliAnalysisTaskSEHFv2.cxx:507
 AliAnalysisTaskSEHFv2.cxx:508
 AliAnalysisTaskSEHFv2.cxx:509
 AliAnalysisTaskSEHFv2.cxx:510
 AliAnalysisTaskSEHFv2.cxx:511
 AliAnalysisTaskSEHFv2.cxx:512
 AliAnalysisTaskSEHFv2.cxx:513
 AliAnalysisTaskSEHFv2.cxx:514
 AliAnalysisTaskSEHFv2.cxx:515
 AliAnalysisTaskSEHFv2.cxx:516
 AliAnalysisTaskSEHFv2.cxx:517
 AliAnalysisTaskSEHFv2.cxx:518
 AliAnalysisTaskSEHFv2.cxx:519
 AliAnalysisTaskSEHFv2.cxx:520
 AliAnalysisTaskSEHFv2.cxx:521
 AliAnalysisTaskSEHFv2.cxx:522
 AliAnalysisTaskSEHFv2.cxx:523
 AliAnalysisTaskSEHFv2.cxx:524
 AliAnalysisTaskSEHFv2.cxx:525
 AliAnalysisTaskSEHFv2.cxx:526
 AliAnalysisTaskSEHFv2.cxx:527
 AliAnalysisTaskSEHFv2.cxx:528
 AliAnalysisTaskSEHFv2.cxx:529
 AliAnalysisTaskSEHFv2.cxx:530
 AliAnalysisTaskSEHFv2.cxx:531
 AliAnalysisTaskSEHFv2.cxx:532
 AliAnalysisTaskSEHFv2.cxx:533
 AliAnalysisTaskSEHFv2.cxx:534
 AliAnalysisTaskSEHFv2.cxx:535
 AliAnalysisTaskSEHFv2.cxx:536
 AliAnalysisTaskSEHFv2.cxx:537
 AliAnalysisTaskSEHFv2.cxx:538
 AliAnalysisTaskSEHFv2.cxx:539
 AliAnalysisTaskSEHFv2.cxx:540
 AliAnalysisTaskSEHFv2.cxx:541
 AliAnalysisTaskSEHFv2.cxx:542
 AliAnalysisTaskSEHFv2.cxx:543
 AliAnalysisTaskSEHFv2.cxx:544
 AliAnalysisTaskSEHFv2.cxx:545
 AliAnalysisTaskSEHFv2.cxx:546
 AliAnalysisTaskSEHFv2.cxx:547
 AliAnalysisTaskSEHFv2.cxx:548
 AliAnalysisTaskSEHFv2.cxx:549
 AliAnalysisTaskSEHFv2.cxx:550
 AliAnalysisTaskSEHFv2.cxx:551
 AliAnalysisTaskSEHFv2.cxx:552
 AliAnalysisTaskSEHFv2.cxx:553
 AliAnalysisTaskSEHFv2.cxx:554
 AliAnalysisTaskSEHFv2.cxx:555
 AliAnalysisTaskSEHFv2.cxx:556
 AliAnalysisTaskSEHFv2.cxx:557
 AliAnalysisTaskSEHFv2.cxx:558
 AliAnalysisTaskSEHFv2.cxx:559
 AliAnalysisTaskSEHFv2.cxx:560
 AliAnalysisTaskSEHFv2.cxx:561
 AliAnalysisTaskSEHFv2.cxx:562
 AliAnalysisTaskSEHFv2.cxx:563
 AliAnalysisTaskSEHFv2.cxx:564
 AliAnalysisTaskSEHFv2.cxx:565
 AliAnalysisTaskSEHFv2.cxx:566
 AliAnalysisTaskSEHFv2.cxx:567
 AliAnalysisTaskSEHFv2.cxx:568
 AliAnalysisTaskSEHFv2.cxx:569
 AliAnalysisTaskSEHFv2.cxx:570
 AliAnalysisTaskSEHFv2.cxx:571
 AliAnalysisTaskSEHFv2.cxx:572
 AliAnalysisTaskSEHFv2.cxx:573
 AliAnalysisTaskSEHFv2.cxx:574
 AliAnalysisTaskSEHFv2.cxx:575
 AliAnalysisTaskSEHFv2.cxx:576
 AliAnalysisTaskSEHFv2.cxx:577
 AliAnalysisTaskSEHFv2.cxx:578
 AliAnalysisTaskSEHFv2.cxx:579
 AliAnalysisTaskSEHFv2.cxx:580
 AliAnalysisTaskSEHFv2.cxx:581
 AliAnalysisTaskSEHFv2.cxx:582
 AliAnalysisTaskSEHFv2.cxx:583
 AliAnalysisTaskSEHFv2.cxx:584
 AliAnalysisTaskSEHFv2.cxx:585
 AliAnalysisTaskSEHFv2.cxx:586
 AliAnalysisTaskSEHFv2.cxx:587
 AliAnalysisTaskSEHFv2.cxx:588
 AliAnalysisTaskSEHFv2.cxx:589
 AliAnalysisTaskSEHFv2.cxx:590
 AliAnalysisTaskSEHFv2.cxx:591
 AliAnalysisTaskSEHFv2.cxx:592
 AliAnalysisTaskSEHFv2.cxx:593
 AliAnalysisTaskSEHFv2.cxx:594
 AliAnalysisTaskSEHFv2.cxx:595
 AliAnalysisTaskSEHFv2.cxx:596
 AliAnalysisTaskSEHFv2.cxx:597
 AliAnalysisTaskSEHFv2.cxx:598
 AliAnalysisTaskSEHFv2.cxx:599
 AliAnalysisTaskSEHFv2.cxx:600
 AliAnalysisTaskSEHFv2.cxx:601
 AliAnalysisTaskSEHFv2.cxx:602
 AliAnalysisTaskSEHFv2.cxx:603
 AliAnalysisTaskSEHFv2.cxx:604
 AliAnalysisTaskSEHFv2.cxx:605
 AliAnalysisTaskSEHFv2.cxx:606
 AliAnalysisTaskSEHFv2.cxx:607
 AliAnalysisTaskSEHFv2.cxx:608
 AliAnalysisTaskSEHFv2.cxx:609
 AliAnalysisTaskSEHFv2.cxx:610
 AliAnalysisTaskSEHFv2.cxx:611
 AliAnalysisTaskSEHFv2.cxx:612
 AliAnalysisTaskSEHFv2.cxx:613
 AliAnalysisTaskSEHFv2.cxx:614
 AliAnalysisTaskSEHFv2.cxx:615
 AliAnalysisTaskSEHFv2.cxx:616
 AliAnalysisTaskSEHFv2.cxx:617
 AliAnalysisTaskSEHFv2.cxx:618
 AliAnalysisTaskSEHFv2.cxx:619
 AliAnalysisTaskSEHFv2.cxx:620
 AliAnalysisTaskSEHFv2.cxx:621
 AliAnalysisTaskSEHFv2.cxx:622
 AliAnalysisTaskSEHFv2.cxx:623
 AliAnalysisTaskSEHFv2.cxx:624
 AliAnalysisTaskSEHFv2.cxx:625
 AliAnalysisTaskSEHFv2.cxx:626
 AliAnalysisTaskSEHFv2.cxx:627
 AliAnalysisTaskSEHFv2.cxx:628
 AliAnalysisTaskSEHFv2.cxx:629
 AliAnalysisTaskSEHFv2.cxx:630
 AliAnalysisTaskSEHFv2.cxx:631
 AliAnalysisTaskSEHFv2.cxx:632
 AliAnalysisTaskSEHFv2.cxx:633
 AliAnalysisTaskSEHFv2.cxx:634
 AliAnalysisTaskSEHFv2.cxx:635
 AliAnalysisTaskSEHFv2.cxx:636
 AliAnalysisTaskSEHFv2.cxx:637
 AliAnalysisTaskSEHFv2.cxx:638
 AliAnalysisTaskSEHFv2.cxx:639
 AliAnalysisTaskSEHFv2.cxx:640
 AliAnalysisTaskSEHFv2.cxx:641
 AliAnalysisTaskSEHFv2.cxx:642
 AliAnalysisTaskSEHFv2.cxx:643
 AliAnalysisTaskSEHFv2.cxx:644
 AliAnalysisTaskSEHFv2.cxx:645
 AliAnalysisTaskSEHFv2.cxx:646
 AliAnalysisTaskSEHFv2.cxx:647
 AliAnalysisTaskSEHFv2.cxx:648
 AliAnalysisTaskSEHFv2.cxx:649
 AliAnalysisTaskSEHFv2.cxx:650
 AliAnalysisTaskSEHFv2.cxx:651
 AliAnalysisTaskSEHFv2.cxx:652
 AliAnalysisTaskSEHFv2.cxx:653
 AliAnalysisTaskSEHFv2.cxx:654
 AliAnalysisTaskSEHFv2.cxx:655
 AliAnalysisTaskSEHFv2.cxx:656
 AliAnalysisTaskSEHFv2.cxx:657
 AliAnalysisTaskSEHFv2.cxx:658
 AliAnalysisTaskSEHFv2.cxx:659
 AliAnalysisTaskSEHFv2.cxx:660
 AliAnalysisTaskSEHFv2.cxx:661
 AliAnalysisTaskSEHFv2.cxx:662
 AliAnalysisTaskSEHFv2.cxx:663
 AliAnalysisTaskSEHFv2.cxx:664
 AliAnalysisTaskSEHFv2.cxx:665
 AliAnalysisTaskSEHFv2.cxx:666
 AliAnalysisTaskSEHFv2.cxx:667
 AliAnalysisTaskSEHFv2.cxx:668
 AliAnalysisTaskSEHFv2.cxx:669
 AliAnalysisTaskSEHFv2.cxx:670
 AliAnalysisTaskSEHFv2.cxx:671
 AliAnalysisTaskSEHFv2.cxx:672
 AliAnalysisTaskSEHFv2.cxx:673
 AliAnalysisTaskSEHFv2.cxx:674
 AliAnalysisTaskSEHFv2.cxx:675
 AliAnalysisTaskSEHFv2.cxx:676
 AliAnalysisTaskSEHFv2.cxx:677
 AliAnalysisTaskSEHFv2.cxx:678
 AliAnalysisTaskSEHFv2.cxx:679
 AliAnalysisTaskSEHFv2.cxx:680
 AliAnalysisTaskSEHFv2.cxx:681
 AliAnalysisTaskSEHFv2.cxx:682
 AliAnalysisTaskSEHFv2.cxx:683
 AliAnalysisTaskSEHFv2.cxx:684
 AliAnalysisTaskSEHFv2.cxx:685
 AliAnalysisTaskSEHFv2.cxx:686
 AliAnalysisTaskSEHFv2.cxx:687
 AliAnalysisTaskSEHFv2.cxx:688
 AliAnalysisTaskSEHFv2.cxx:689
 AliAnalysisTaskSEHFv2.cxx:690
 AliAnalysisTaskSEHFv2.cxx:691
 AliAnalysisTaskSEHFv2.cxx:692
 AliAnalysisTaskSEHFv2.cxx:693
 AliAnalysisTaskSEHFv2.cxx:694
 AliAnalysisTaskSEHFv2.cxx:695
 AliAnalysisTaskSEHFv2.cxx:696
 AliAnalysisTaskSEHFv2.cxx:697
 AliAnalysisTaskSEHFv2.cxx:698
 AliAnalysisTaskSEHFv2.cxx:699
 AliAnalysisTaskSEHFv2.cxx:700
 AliAnalysisTaskSEHFv2.cxx:701
 AliAnalysisTaskSEHFv2.cxx:702
 AliAnalysisTaskSEHFv2.cxx:703
 AliAnalysisTaskSEHFv2.cxx:704
 AliAnalysisTaskSEHFv2.cxx:705
 AliAnalysisTaskSEHFv2.cxx:706
 AliAnalysisTaskSEHFv2.cxx:707
 AliAnalysisTaskSEHFv2.cxx:708
 AliAnalysisTaskSEHFv2.cxx:709
 AliAnalysisTaskSEHFv2.cxx:710
 AliAnalysisTaskSEHFv2.cxx:711
 AliAnalysisTaskSEHFv2.cxx:712
 AliAnalysisTaskSEHFv2.cxx:713
 AliAnalysisTaskSEHFv2.cxx:714
 AliAnalysisTaskSEHFv2.cxx:715
 AliAnalysisTaskSEHFv2.cxx:716
 AliAnalysisTaskSEHFv2.cxx:717
 AliAnalysisTaskSEHFv2.cxx:718
 AliAnalysisTaskSEHFv2.cxx:719
 AliAnalysisTaskSEHFv2.cxx:720
 AliAnalysisTaskSEHFv2.cxx:721
 AliAnalysisTaskSEHFv2.cxx:722
 AliAnalysisTaskSEHFv2.cxx:723
 AliAnalysisTaskSEHFv2.cxx:724
 AliAnalysisTaskSEHFv2.cxx:725
 AliAnalysisTaskSEHFv2.cxx:726
 AliAnalysisTaskSEHFv2.cxx:727
 AliAnalysisTaskSEHFv2.cxx:728
 AliAnalysisTaskSEHFv2.cxx:729
 AliAnalysisTaskSEHFv2.cxx:730
 AliAnalysisTaskSEHFv2.cxx:731
 AliAnalysisTaskSEHFv2.cxx:732
 AliAnalysisTaskSEHFv2.cxx:733
 AliAnalysisTaskSEHFv2.cxx:734
 AliAnalysisTaskSEHFv2.cxx:735
 AliAnalysisTaskSEHFv2.cxx:736
 AliAnalysisTaskSEHFv2.cxx:737
 AliAnalysisTaskSEHFv2.cxx:738
 AliAnalysisTaskSEHFv2.cxx:739
 AliAnalysisTaskSEHFv2.cxx:740
 AliAnalysisTaskSEHFv2.cxx:741
 AliAnalysisTaskSEHFv2.cxx:742
 AliAnalysisTaskSEHFv2.cxx:743
 AliAnalysisTaskSEHFv2.cxx:744
 AliAnalysisTaskSEHFv2.cxx:745
 AliAnalysisTaskSEHFv2.cxx:746
 AliAnalysisTaskSEHFv2.cxx:747
 AliAnalysisTaskSEHFv2.cxx:748
 AliAnalysisTaskSEHFv2.cxx:749
 AliAnalysisTaskSEHFv2.cxx:750
 AliAnalysisTaskSEHFv2.cxx:751
 AliAnalysisTaskSEHFv2.cxx:752
 AliAnalysisTaskSEHFv2.cxx:753
 AliAnalysisTaskSEHFv2.cxx:754
 AliAnalysisTaskSEHFv2.cxx:755
 AliAnalysisTaskSEHFv2.cxx:756
 AliAnalysisTaskSEHFv2.cxx:757
 AliAnalysisTaskSEHFv2.cxx:758
 AliAnalysisTaskSEHFv2.cxx:759
 AliAnalysisTaskSEHFv2.cxx:760
 AliAnalysisTaskSEHFv2.cxx:761
 AliAnalysisTaskSEHFv2.cxx:762
 AliAnalysisTaskSEHFv2.cxx:763
 AliAnalysisTaskSEHFv2.cxx:764
 AliAnalysisTaskSEHFv2.cxx:765
 AliAnalysisTaskSEHFv2.cxx:766
 AliAnalysisTaskSEHFv2.cxx:767
 AliAnalysisTaskSEHFv2.cxx:768
 AliAnalysisTaskSEHFv2.cxx:769
 AliAnalysisTaskSEHFv2.cxx:770
 AliAnalysisTaskSEHFv2.cxx:771
 AliAnalysisTaskSEHFv2.cxx:772
 AliAnalysisTaskSEHFv2.cxx:773
 AliAnalysisTaskSEHFv2.cxx:774
 AliAnalysisTaskSEHFv2.cxx:775
 AliAnalysisTaskSEHFv2.cxx:776
 AliAnalysisTaskSEHFv2.cxx:777
 AliAnalysisTaskSEHFv2.cxx:778
 AliAnalysisTaskSEHFv2.cxx:779
 AliAnalysisTaskSEHFv2.cxx:780
 AliAnalysisTaskSEHFv2.cxx:781
 AliAnalysisTaskSEHFv2.cxx:782
 AliAnalysisTaskSEHFv2.cxx:783
 AliAnalysisTaskSEHFv2.cxx:784
 AliAnalysisTaskSEHFv2.cxx:785
 AliAnalysisTaskSEHFv2.cxx:786
 AliAnalysisTaskSEHFv2.cxx:787
 AliAnalysisTaskSEHFv2.cxx:788
 AliAnalysisTaskSEHFv2.cxx:789
 AliAnalysisTaskSEHFv2.cxx:790
 AliAnalysisTaskSEHFv2.cxx:791
 AliAnalysisTaskSEHFv2.cxx:792
 AliAnalysisTaskSEHFv2.cxx:793
 AliAnalysisTaskSEHFv2.cxx:794
 AliAnalysisTaskSEHFv2.cxx:795
 AliAnalysisTaskSEHFv2.cxx:796
 AliAnalysisTaskSEHFv2.cxx:797
 AliAnalysisTaskSEHFv2.cxx:798
 AliAnalysisTaskSEHFv2.cxx:799
 AliAnalysisTaskSEHFv2.cxx:800
 AliAnalysisTaskSEHFv2.cxx:801
 AliAnalysisTaskSEHFv2.cxx:802
 AliAnalysisTaskSEHFv2.cxx:803
 AliAnalysisTaskSEHFv2.cxx:804
 AliAnalysisTaskSEHFv2.cxx:805
 AliAnalysisTaskSEHFv2.cxx:806
 AliAnalysisTaskSEHFv2.cxx:807
 AliAnalysisTaskSEHFv2.cxx:808
 AliAnalysisTaskSEHFv2.cxx:809
 AliAnalysisTaskSEHFv2.cxx:810
 AliAnalysisTaskSEHFv2.cxx:811
 AliAnalysisTaskSEHFv2.cxx:812
 AliAnalysisTaskSEHFv2.cxx:813
 AliAnalysisTaskSEHFv2.cxx:814
 AliAnalysisTaskSEHFv2.cxx:815
 AliAnalysisTaskSEHFv2.cxx:816
 AliAnalysisTaskSEHFv2.cxx:817
 AliAnalysisTaskSEHFv2.cxx:818
 AliAnalysisTaskSEHFv2.cxx:819
 AliAnalysisTaskSEHFv2.cxx:820
 AliAnalysisTaskSEHFv2.cxx:821
 AliAnalysisTaskSEHFv2.cxx:822
 AliAnalysisTaskSEHFv2.cxx:823
 AliAnalysisTaskSEHFv2.cxx:824
 AliAnalysisTaskSEHFv2.cxx:825
 AliAnalysisTaskSEHFv2.cxx:826
 AliAnalysisTaskSEHFv2.cxx:827
 AliAnalysisTaskSEHFv2.cxx:828
 AliAnalysisTaskSEHFv2.cxx:829
 AliAnalysisTaskSEHFv2.cxx:830
 AliAnalysisTaskSEHFv2.cxx:831
 AliAnalysisTaskSEHFv2.cxx:832
 AliAnalysisTaskSEHFv2.cxx:833
 AliAnalysisTaskSEHFv2.cxx:834
 AliAnalysisTaskSEHFv2.cxx:835
 AliAnalysisTaskSEHFv2.cxx:836
 AliAnalysisTaskSEHFv2.cxx:837
 AliAnalysisTaskSEHFv2.cxx:838
 AliAnalysisTaskSEHFv2.cxx:839
 AliAnalysisTaskSEHFv2.cxx:840
 AliAnalysisTaskSEHFv2.cxx:841
 AliAnalysisTaskSEHFv2.cxx:842
 AliAnalysisTaskSEHFv2.cxx:843
 AliAnalysisTaskSEHFv2.cxx:844
 AliAnalysisTaskSEHFv2.cxx:845
 AliAnalysisTaskSEHFv2.cxx:846
 AliAnalysisTaskSEHFv2.cxx:847
 AliAnalysisTaskSEHFv2.cxx:848
 AliAnalysisTaskSEHFv2.cxx:849
 AliAnalysisTaskSEHFv2.cxx:850
 AliAnalysisTaskSEHFv2.cxx:851
 AliAnalysisTaskSEHFv2.cxx:852
 AliAnalysisTaskSEHFv2.cxx:853
 AliAnalysisTaskSEHFv2.cxx:854
 AliAnalysisTaskSEHFv2.cxx:855
 AliAnalysisTaskSEHFv2.cxx:856
 AliAnalysisTaskSEHFv2.cxx:857
 AliAnalysisTaskSEHFv2.cxx:858
 AliAnalysisTaskSEHFv2.cxx:859
 AliAnalysisTaskSEHFv2.cxx:860
 AliAnalysisTaskSEHFv2.cxx:861
 AliAnalysisTaskSEHFv2.cxx:862
 AliAnalysisTaskSEHFv2.cxx:863
 AliAnalysisTaskSEHFv2.cxx:864
 AliAnalysisTaskSEHFv2.cxx:865
 AliAnalysisTaskSEHFv2.cxx:866
 AliAnalysisTaskSEHFv2.cxx:867
 AliAnalysisTaskSEHFv2.cxx:868
 AliAnalysisTaskSEHFv2.cxx:869
 AliAnalysisTaskSEHFv2.cxx:870
 AliAnalysisTaskSEHFv2.cxx:871
 AliAnalysisTaskSEHFv2.cxx:872
 AliAnalysisTaskSEHFv2.cxx:873
 AliAnalysisTaskSEHFv2.cxx:874
 AliAnalysisTaskSEHFv2.cxx:875
 AliAnalysisTaskSEHFv2.cxx:876
 AliAnalysisTaskSEHFv2.cxx:877
 AliAnalysisTaskSEHFv2.cxx:878
 AliAnalysisTaskSEHFv2.cxx:879
 AliAnalysisTaskSEHFv2.cxx:880
 AliAnalysisTaskSEHFv2.cxx:881
 AliAnalysisTaskSEHFv2.cxx:882
 AliAnalysisTaskSEHFv2.cxx:883
 AliAnalysisTaskSEHFv2.cxx:884
 AliAnalysisTaskSEHFv2.cxx:885
 AliAnalysisTaskSEHFv2.cxx:886
 AliAnalysisTaskSEHFv2.cxx:887
 AliAnalysisTaskSEHFv2.cxx:888
 AliAnalysisTaskSEHFv2.cxx:889
 AliAnalysisTaskSEHFv2.cxx:890
 AliAnalysisTaskSEHFv2.cxx:891
 AliAnalysisTaskSEHFv2.cxx:892
 AliAnalysisTaskSEHFv2.cxx:893
 AliAnalysisTaskSEHFv2.cxx:894
 AliAnalysisTaskSEHFv2.cxx:895
 AliAnalysisTaskSEHFv2.cxx:896
 AliAnalysisTaskSEHFv2.cxx:897
 AliAnalysisTaskSEHFv2.cxx:898
 AliAnalysisTaskSEHFv2.cxx:899
 AliAnalysisTaskSEHFv2.cxx:900
 AliAnalysisTaskSEHFv2.cxx:901
 AliAnalysisTaskSEHFv2.cxx:902
 AliAnalysisTaskSEHFv2.cxx:903
 AliAnalysisTaskSEHFv2.cxx:904
 AliAnalysisTaskSEHFv2.cxx:905
 AliAnalysisTaskSEHFv2.cxx:906
 AliAnalysisTaskSEHFv2.cxx:907
 AliAnalysisTaskSEHFv2.cxx:908
 AliAnalysisTaskSEHFv2.cxx:909
 AliAnalysisTaskSEHFv2.cxx:910
 AliAnalysisTaskSEHFv2.cxx:911
 AliAnalysisTaskSEHFv2.cxx:912
 AliAnalysisTaskSEHFv2.cxx:913
 AliAnalysisTaskSEHFv2.cxx:914
 AliAnalysisTaskSEHFv2.cxx:915
 AliAnalysisTaskSEHFv2.cxx:916
 AliAnalysisTaskSEHFv2.cxx:917
 AliAnalysisTaskSEHFv2.cxx:918
 AliAnalysisTaskSEHFv2.cxx:919
 AliAnalysisTaskSEHFv2.cxx:920
 AliAnalysisTaskSEHFv2.cxx:921
 AliAnalysisTaskSEHFv2.cxx:922
 AliAnalysisTaskSEHFv2.cxx:923
 AliAnalysisTaskSEHFv2.cxx:924
 AliAnalysisTaskSEHFv2.cxx:925
 AliAnalysisTaskSEHFv2.cxx:926
 AliAnalysisTaskSEHFv2.cxx:927
 AliAnalysisTaskSEHFv2.cxx:928
 AliAnalysisTaskSEHFv2.cxx:929
 AliAnalysisTaskSEHFv2.cxx:930
 AliAnalysisTaskSEHFv2.cxx:931
 AliAnalysisTaskSEHFv2.cxx:932
 AliAnalysisTaskSEHFv2.cxx:933
 AliAnalysisTaskSEHFv2.cxx:934
 AliAnalysisTaskSEHFv2.cxx:935
 AliAnalysisTaskSEHFv2.cxx:936
 AliAnalysisTaskSEHFv2.cxx:937
 AliAnalysisTaskSEHFv2.cxx:938
 AliAnalysisTaskSEHFv2.cxx:939
 AliAnalysisTaskSEHFv2.cxx:940
 AliAnalysisTaskSEHFv2.cxx:941
 AliAnalysisTaskSEHFv2.cxx:942
 AliAnalysisTaskSEHFv2.cxx:943
 AliAnalysisTaskSEHFv2.cxx:944
 AliAnalysisTaskSEHFv2.cxx:945
 AliAnalysisTaskSEHFv2.cxx:946
 AliAnalysisTaskSEHFv2.cxx:947
 AliAnalysisTaskSEHFv2.cxx:948
 AliAnalysisTaskSEHFv2.cxx:949
 AliAnalysisTaskSEHFv2.cxx:950
 AliAnalysisTaskSEHFv2.cxx:951
 AliAnalysisTaskSEHFv2.cxx:952
 AliAnalysisTaskSEHFv2.cxx:953
 AliAnalysisTaskSEHFv2.cxx:954
 AliAnalysisTaskSEHFv2.cxx:955
 AliAnalysisTaskSEHFv2.cxx:956
 AliAnalysisTaskSEHFv2.cxx:957
 AliAnalysisTaskSEHFv2.cxx:958
 AliAnalysisTaskSEHFv2.cxx:959
 AliAnalysisTaskSEHFv2.cxx:960
 AliAnalysisTaskSEHFv2.cxx:961
 AliAnalysisTaskSEHFv2.cxx:962
 AliAnalysisTaskSEHFv2.cxx:963
 AliAnalysisTaskSEHFv2.cxx:964
 AliAnalysisTaskSEHFv2.cxx:965
 AliAnalysisTaskSEHFv2.cxx:966
 AliAnalysisTaskSEHFv2.cxx:967
 AliAnalysisTaskSEHFv2.cxx:968
 AliAnalysisTaskSEHFv2.cxx:969
 AliAnalysisTaskSEHFv2.cxx:970
 AliAnalysisTaskSEHFv2.cxx:971
 AliAnalysisTaskSEHFv2.cxx:972
 AliAnalysisTaskSEHFv2.cxx:973
 AliAnalysisTaskSEHFv2.cxx:974
 AliAnalysisTaskSEHFv2.cxx:975
 AliAnalysisTaskSEHFv2.cxx:976
 AliAnalysisTaskSEHFv2.cxx:977
 AliAnalysisTaskSEHFv2.cxx:978
 AliAnalysisTaskSEHFv2.cxx:979
 AliAnalysisTaskSEHFv2.cxx:980
 AliAnalysisTaskSEHFv2.cxx:981
 AliAnalysisTaskSEHFv2.cxx:982
 AliAnalysisTaskSEHFv2.cxx:983
 AliAnalysisTaskSEHFv2.cxx:984
 AliAnalysisTaskSEHFv2.cxx:985
 AliAnalysisTaskSEHFv2.cxx:986
 AliAnalysisTaskSEHFv2.cxx:987
 AliAnalysisTaskSEHFv2.cxx:988
 AliAnalysisTaskSEHFv2.cxx:989