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

// AliFlowAnalysisWithLYZEventPlane:
//
// Class to do flow analysis with the event plane from the LYZ method
//
// author: N. van der Kolk (kolk@nikhef.nl)

/*
$Log$
*/ 

//#define AliFlowAnalysisWithLYZEventPlane_cxx
 
#include "Riostream.h"  //needed as include
#include "TMath.h"   //needed as include
#include "TProfile.h"   //needed as include
#include "TH1F.h"
#include "TFile.h"
#include "TList.h"
#include "TVector2.h"

#include "AliFlowLYZConstants.h"    //needed as include
#include "AliFlowCommonConstants.h" //needed as include
#include "AliFlowEventSimple.h"
#include "AliFlowTrackSimple.h"
#include "AliFlowCommonHist.h"
#include "AliFlowCommonHistResults.h"
#include "AliFlowLYZEventPlane.h"
#include "AliFlowAnalysisWithLYZEventPlane.h"
#include "AliFlowVector.h"

using std::endl;
using std::cout;
using std::cerr;
ClassImp(AliFlowAnalysisWithLYZEventPlane)

  //-----------------------------------------------------------------------
 
 AliFlowAnalysisWithLYZEventPlane::AliFlowAnalysisWithLYZEventPlane():
   fHistList(NULL),
   fSecondRunList(NULL),
   fSecondReDtheta(NULL),
   fSecondImDtheta(NULL),
   fFirstr0theta(NULL),
   fHistProVetaRP(NULL),
   fHistProVetaPOI(NULL),
   fHistProVPtRP(NULL),
   fHistProVPtPOI(NULL),
   fHistProWr(NULL),
   fHistProWrCorr(NULL),
   fHistQsumforChi(NULL),
   fHistDeltaPhi(NULL),
   fHistDeltaPhi2(NULL),
   fHistDeltaPhihere(NULL),
   fHistPhiEP(NULL),
   fHistPhiEPhere(NULL),
   fHistPhiLYZ(NULL),
   fHistPhiLYZ2(NULL),
   fCommonHists(NULL),
   fCommonHistsRes(NULL),
   fEventNumber(0),
   fQsum(NULL),
   fQ2sum(0)
{

  // Constructor.
  fQsum = new TVector2();        // flow vector sum

  fHistList = new TList();
  fSecondRunList = new TList();
}

 

 //-----------------------------------------------------------------------


 AliFlowAnalysisWithLYZEventPlane::~AliFlowAnalysisWithLYZEventPlane() 
 {
   //destructor
   delete fQsum;
   delete fHistList;
   delete fSecondRunList;
 }
 

//-----------------------------------------------------------------------

void AliFlowAnalysisWithLYZEventPlane::WriteHistograms(TString* outputFileName)
{
 //store the final results in output .root file

  TFile *output = new TFile(outputFileName->Data(),"RECREATE");
  //output->WriteObject(fHistList, "cobjLYZEP","SingleKey");
  fHistList->SetName("cobjLYZEP");
  fHistList->SetOwner(kTRUE);
  fHistList->Write(fHistList->GetName(), TObject::kSingleKey);
  delete output;
}

//-----------------------------------------------------------------------

void AliFlowAnalysisWithLYZEventPlane::WriteHistograms(TString outputFileName)
{
 //store the final results in output .root file

  TFile *output = new TFile(outputFileName.Data(),"RECREATE");
  //output->WriteObject(fHistList, "cobjLYZEP","SingleKey");
  fHistList->SetName("cobjLYZEP");
  fHistList->SetOwner(kTRUE);
  fHistList->Write(fHistList->GetName(), TObject::kSingleKey);
  delete output;
}

//-----------------------------------------------------------------------

void AliFlowAnalysisWithLYZEventPlane::WriteHistograms(TDirectoryFile *outputFileName)
{
 //store the final results in output .root file
 fHistList->SetName("cobjLYZEP");
 fHistList->SetOwner(kTRUE);
 outputFileName->Add(fHistList);
 outputFileName->Write(outputFileName->GetName(), TObject::kSingleKey);
}

//-----------------------------------------------------------------------

void AliFlowAnalysisWithLYZEventPlane::Init() {

  //Initialise all histograms
  cout<<"---Analysis with Lee Yang Zeros Event Plane Method---"<<endl;

  //save old value and prevent histograms from being added to directory
  //to avoid name clashes in case multiple analaysis objects are used
  //in an analysis
  Bool_t oldHistAddStatus = TH1::AddDirectoryStatus();
  TH1::AddDirectory(kFALSE);
 
  //input histograms
  if (fSecondRunList) {
    fSecondReDtheta = (TProfile*)fSecondRunList->FindObject("Second_FlowPro_ReDtheta_LYZSUM");
    fHistList->Add(fSecondReDtheta);

    fSecondImDtheta = (TProfile*)fSecondRunList->FindObject("Second_FlowPro_ImDtheta_LYZSUM");
    fHistList->Add(fSecondImDtheta);
    
    fFirstr0theta = (TProfile*)fSecondRunList->FindObject("First_FlowPro_r0theta_LYZSUM");
    fHistList->Add(fFirstr0theta);

    //warnings
    if (!fSecondReDtheta) {cout<<"fSecondReDtheta is NULL!"<<endl; }
    if (!fSecondImDtheta) {cout<<"fSecondImDtheta is NULL!"<<endl; }
    if (!fFirstr0theta)   {cout<<"fFirstr0theta is NULL!"<<endl; }

  }

  fCommonHists = new AliFlowCommonHist("AliFlowCommonHistLYZEP");
  fHistList->Add(fCommonHists);
  
  fCommonHistsRes = new AliFlowCommonHistResults("AliFlowCommonHistResultsLYZEP"); 
  fHistList->Add(fCommonHistsRes); 
    
  Int_t iNbinsPt = AliFlowCommonConstants::GetMaster()->GetNbinsPt();
  Int_t iNbinsEta = AliFlowCommonConstants::GetMaster()->GetNbinsEta();
  Double_t  dPtMin  = AliFlowCommonConstants::GetMaster()->GetPtMin();	     
  Double_t  dPtMax  = AliFlowCommonConstants::GetMaster()->GetPtMax();
  Double_t  dEtaMin = AliFlowCommonConstants::GetMaster()->GetEtaMin();	     
  Double_t  dEtaMax = AliFlowCommonConstants::GetMaster()->GetEtaMax();

  fHistProVetaRP = new TProfile("FlowPro_VetaRP_LYZEP","FlowPro_VetaRP_LYZEP",iNbinsEta,dEtaMin,dEtaMax);
  fHistProVetaRP->SetXTitle("rapidity");
  fHistProVetaRP->SetYTitle("v_{2}(#eta) for RP selection");
  fHistList->Add(fHistProVetaRP);

  fHistProVetaPOI = new TProfile("FlowPro_VetaPOI_LYZEP","FlowPro_VetaPOI_LYZEP",iNbinsEta,dEtaMin,dEtaMax);
  fHistProVetaPOI->SetXTitle("rapidity");
  fHistProVetaPOI->SetYTitle("v_{2}(#eta) for POI selection");
  fHistList->Add(fHistProVetaPOI);

  fHistProVPtRP = new TProfile("FlowPro_VPtRP_LYZEP","FlowPro_VPtRP_LYZEP",iNbinsPt,dPtMin,dPtMax);
  fHistProVPtRP->SetXTitle("Pt");
  fHistProVPtRP->SetYTitle("v_{2}(p_{T}) for RP selection");
  fHistList->Add(fHistProVPtRP);

  fHistProVPtPOI = new TProfile("FlowPro_VPtPOI_LYZEP","FlowPro_VPtPOI_LYZEP",iNbinsPt,dPtMin,dPtMax);
  fHistProVPtPOI->SetXTitle("p_{T}");
  fHistProVPtPOI->SetYTitle("v_{2}(p_{T}) for POI selection");
  fHistList->Add(fHistProVPtPOI);

  fHistProWr = new TProfile("FlowPro_Wr_LYZEP","FlowPro_Wr_LYZEP",100,0.,0.25);
  fHistProWr->SetXTitle("Q");
  fHistProWr->SetYTitle("Wr");
  fHistList->Add(fHistProWr);

  fHistQsumforChi = new TH1F("Flow_QsumforChi_LYZEP","Flow_QsumforChi_LYZEP",3,-1.,2.);
  fHistQsumforChi->SetXTitle("Qsum.X , Qsum.Y, Q2sum");
  fHistQsumforChi->SetYTitle("value");
  fHistList->Add(fHistQsumforChi);

  fHistDeltaPhi = new TH1F("Flow_DeltaPhi_LYZEP","Flow_DeltaPhi_LYZEP",100,0.,3.14);
  fHistDeltaPhi->SetXTitle("DeltaPhi");
  fHistDeltaPhi->SetYTitle("Counts");
  fHistList->Add(fHistDeltaPhi);

  fHistPhiLYZ = new TH1F("Flow_PhiLYZ_LYZEP","Flow_PhiLYZ_LYZEP",100,0.,3.14);
  fHistPhiLYZ->SetXTitle("Phi from LYZ");
  fHistPhiLYZ->SetYTitle("Counts");
  fHistList->Add(fHistPhiLYZ);

  fHistPhiEP = new TH1F("Flow_PhiEP_LYZEP","Flow_PhiEP_LYZEP",100,0.,3.14);
  fHistPhiEP->SetXTitle("Phi from EP");
  fHistPhiEP->SetYTitle("Counts");
  fHistList->Add(fHistPhiEP);

  fEventNumber = 0;  //set number of events to zero
      
  //restore old status
  TH1::AddDirectory(oldHistAddStatus);
} 
 
//-----------------------------------------------------------------------
 
void AliFlowAnalysisWithLYZEventPlane::Make(AliFlowEventSimple* anEvent, AliFlowLYZEventPlane* aLYZEP) {
  
  //Get the event plane and weight for each event
  if (anEvent) {
         
    //fill control histograms     
    fCommonHists->FillControlHistograms(anEvent);

    //get the Q vector from the FlowEvent
    AliFlowVector vQ = anEvent->GetQ(); 
    //if (vQ.X()== 0. && vQ.Y()== 0. ) { cout<<"Q vector is NULL!"<<endl; } //coding violation
    //Weight with the multiplicity
    Double_t dQX = 0.;
    Double_t dQY = 0.;
    if (TMath::AreEqualAbs(vQ.GetMult(),0.0,1e-10)) {
      dQX = vQ.X()/vQ.GetMult();
      dQY = vQ.Y()/vQ.GetMult();
    } else {cerr<<"vQ.GetMult() is zero!"<<endl; }
    vQ.Set(dQX,dQY);
    //cout<<"vQ("<<dQX<<","<<dQY<<")"<<endl;

    //for chi calculation:
    *fQsum += vQ;
    fHistQsumforChi->SetBinContent(1,fQsum->X());
    fHistQsumforChi->SetBinContent(2,fQsum->Y());
    fQ2sum += vQ.Mod2();
    fHistQsumforChi->SetBinContent(3,fQ2sum);
    //cout<<"fQ2sum = "<<fQ2sum<<endl;

    //call AliFlowLYZEventPlane::CalculateRPandW() here!
    aLYZEP->CalculateRPandW(vQ);

    Double_t dWR = aLYZEP->GetWR();     
    Double_t dRP = aLYZEP->GetPsi();

    //fHistProWr->Fill(vQ.Mod(),dWR); //this weight is always positive
    fHistPhiLYZ->Fill(dRP);   
    
    //plot difference between event plane from EP-method and LYZ-method
    Double_t dRPEP = vQ.Phi()/2;                              //gives distribution from (0 to pi)
    //Double_t dRPEP = 0.5*TMath::ATan2(vQ.Y(),vQ.X());       //gives distribution from (-pi/2 to pi/2)
    //cout<<"dRPEP = "<< dRPEP <<endl;
    fHistPhiEP->Fill(dRPEP);

    Double_t dDeltaPhi = dRPEP - dRP;
    if (dDeltaPhi < 0.) { dDeltaPhi += TMath::Pi(); }        //to shift distribution from (-pi/2 to pi/2) to (0 to pi)
    //cout<<"dDeltaPhi = "<<dDeltaPhi<<endl;
    fHistDeltaPhi->Fill(dDeltaPhi); 

    //Flip sign of WR
    Double_t dLow = TMath::Pi()/4.;
    Double_t dHigh = 3.*(TMath::Pi()/4.);
    if ((dDeltaPhi > dLow) && (dDeltaPhi < dHigh)){
      dRP -= (TMath::Pi()/2);
      dWR = -dWR;
      cerr<<"*** dRP modified ***"<<endl;
    }
    fHistProWr->Fill(vQ.Mod(),dWR); //corrected weight
       
    //calculate flow for RP and POI selections
    //loop over the tracks of the event
    Int_t iNumberOfTracks = anEvent->NumberOfTracks(); 
    for (Int_t i=0;i<iNumberOfTracks;i++) 
      {
	AliFlowTrackSimple* pTrack = anEvent->GetTrack(i) ; 
	if (pTrack){
	  Double_t dPhi = pTrack->Phi();
	  //if (dPhi<0.) fPhi+=2*TMath::Pi();
	  Double_t dPt  = pTrack->Pt();
	  Double_t dEta = pTrack->Eta();
	  //calculate flow v2:
	  Double_t dv2 = dWR * TMath::Cos(2*(dPhi-dRP));
	  if (pTrack->InRPSelection()) {
	    //fill histograms for RP selection
	    fHistProVetaRP -> Fill(dEta,dv2); 
	    fHistProVPtRP  -> Fill(dPt,dv2); 
	  }
	  if (pTrack->InPOISelection()) {
	    //fill histograms for POI selection
	    fHistProVetaPOI -> Fill(dEta,dv2); 
	    fHistProVPtPOI  -> Fill(dPt,dv2); 
	  }  
	}//track 
      }//loop over tracks
	  
    fEventNumber++;
    //    cout<<"@@@@@ "<<fEventNumber<<" events processed"<<endl;
  }
}

  //--------------------------------------------------------------------    
void AliFlowAnalysisWithLYZEventPlane::GetOutputHistograms(TList *outputListHistos){
 //get pointers to all output histograms (called before Finish()) 
 if (outputListHistos) {
    //Get the common histograms from the output list
    AliFlowCommonHist *pCommonHist = dynamic_cast<AliFlowCommonHist*> 
      (outputListHistos->FindObject("AliFlowCommonHistLYZEP"));
    AliFlowCommonHistResults *pCommonHistResults = dynamic_cast<AliFlowCommonHistResults*> 
      (outputListHistos->FindObject("AliFlowCommonHistResultsLYZEP"));

    TProfile* pHistProR0theta = dynamic_cast<TProfile*> 
      (outputListHistos->FindObject("First_FlowPro_r0theta_LYZSUM"));

    TProfile* pHistProVetaRP = dynamic_cast<TProfile*> 
      (outputListHistos->FindObject("FlowPro_VetaRP_LYZEP"));
    TProfile* pHistProVetaPOI = dynamic_cast<TProfile*> 
      (outputListHistos->FindObject("FlowPro_VetaPOI_LYZEP"));
    TProfile* pHistProVPtRP = dynamic_cast<TProfile*> 
      (outputListHistos->FindObject("FlowPro_VPtRP_LYZEP"));
    TProfile* pHistProVPtPOI = dynamic_cast<TProfile*> 
      (outputListHistos->FindObject("FlowPro_VPtPOI_LYZEP"));

    TH1F* pHistQsumforChi = dynamic_cast<TH1F*> 
      (outputListHistos->FindObject("Flow_QsumforChi_LYZEP"));

    if (pCommonHist && pCommonHistResults && pHistProR0theta &&
	pHistProVetaRP && pHistProVetaPOI && pHistProVPtRP && 
	pHistProVPtPOI && pHistQsumforChi ) {
      this -> SetCommonHists(pCommonHist);
      this -> SetCommonHistsRes(pCommonHistResults);
      this -> SetFirstr0theta(pHistProR0theta);
      this -> SetHistProVetaRP(pHistProVetaRP);
      this -> SetHistProVetaPOI(pHistProVetaPOI);
      this -> SetHistProVPtRP(pHistProVPtRP);
      this -> SetHistProVPtPOI(pHistProVPtPOI);
      this -> SetHistQsumforChi(pHistQsumforChi);
     }  
  } else { 
      cout<<"WARNING: Histograms needed to run Finish() are not accessable!"<<endl; 
    }    
}

  //--------------------------------------------------------------------    
void AliFlowAnalysisWithLYZEventPlane::Finish() {
   
  //plot histograms etc. 
  cout<<"AliFlowAnalysisWithLYZEventPlane::Finish()"<<endl;
  
  //constants:
  Double_t  dJ01 = 2.405; 
  Int_t iNtheta   = AliFlowLYZConstants::GetMaster()->GetNtheta();
  Int_t iNbinsPt  = AliFlowCommonConstants::GetMaster()->GetNbinsPt();
  Int_t iNbinsEta = AliFlowCommonConstants::GetMaster()->GetNbinsEta();
  //set the event number
  if (fCommonHists) {
    SetEventNumber((int)fCommonHists->GetHistQ()->GetEntries());
    //cout<<"number of events processed is "<<fEventNumber<<endl;
  } else {
    cout<<"Commonhist pointer is NULL."<<endl;
    cout<<"Leaving LYZ Event plane analysis!"<<endl;
    return;
  }

  //set the sum of Q vectors
  fQsum->Set(fHistQsumforChi->GetBinContent(1),fHistQsumforChi->GetBinContent(2));
  SetQ2sum(fHistQsumforChi->GetBinContent(3));  

  //calculate dV the mean of dVtheta
  Double_t  dVtheta = 0; 
  Double_t  dV = 0; 
  for (Int_t theta=0;theta<iNtheta;theta++)	{
    Double_t dR0 = fFirstr0theta->GetBinContent(theta+1); 
    if (TMath::AreEqualAbs(dR0,0.0,1e-10)) { dVtheta = dJ01/dR0 ;}
    dV += dVtheta;
  }
  dV /= iNtheta;

  //calculate dChi 
  Double_t  dSigma2 = 0;
  Double_t  dChi= 0;
  if (fEventNumber!=0) {
    *fQsum /= fEventNumber;
    //cerr<<"fQsum->X() = "<<fQsum->X()<<endl;
    //cerr<<"fQsum->Y() = "<<fQsum->Y()<<endl;
    fQ2sum /= fEventNumber;
    //cerr<<"fEventNumber = "<<fEventNumber<<endl;
    //cerr<<"fQ2sum = "<<fQ2sum<<endl;
    dSigma2 = fQ2sum - TMath::Power(fQsum->X(),2.) - TMath::Power(fQsum->Y(),2.) - TMath::Power(dV,2.);  //BP eq. 62
    //cerr<<"dSigma2"<<dSigma2<<endl;
    if (dSigma2>0) dChi = dV/TMath::Sqrt(dSigma2);
    else dChi = -1.;
    fCommonHistsRes->FillChi(dChi);

    // recalculate statistical errors on integrated flow
    //combining 5 theta angles to 1 relative error BP eq. 89
    Double_t dRelErr2comb = 0.;
    Int_t iEvts = fEventNumber; 
    if (iEvts!=0) {
      for (Int_t theta=0;theta<iNtheta;theta++){
	Double_t dTheta = ((double)theta/iNtheta)*TMath::Pi(); 
	Double_t dApluscomb = TMath::Exp((dJ01*dJ01)/(2*dChi*dChi)*
				       TMath::Cos(dTheta));
	Double_t dAmincomb = TMath::Exp(-(dJ01*dJ01)/(2*dChi*dChi)*
				      TMath::Cos(dTheta));
	dRelErr2comb += (1/(2*iEvts*(dJ01*dJ01)*TMath::BesselJ1(dJ01)*
			  TMath::BesselJ1(dJ01)))*
	  (dApluscomb*TMath::BesselJ0(2*dJ01*TMath::Sin(dTheta/2)) + 
	   dAmincomb*TMath::BesselJ0(2*dJ01*TMath::Cos(dTheta/2)));
      }
      dRelErr2comb /= iNtheta;
    }
    Double_t dRelErrcomb = TMath::Sqrt(dRelErr2comb);
    Double_t dVErr = dV*dRelErrcomb ; 
    fCommonHistsRes->FillIntegratedFlow(dV, dVErr); 

    cout<<"*************************************"<<endl;
    cout<<"*************************************"<<endl;
    cout<<"      Integrated flow from           "<<endl;
    cout<<"  Lee-Yang Zeroes Event Plane        "<<endl;
    cout<<endl;
    cout<<"dChi = "<<dChi<<endl;
    cout<<"dV = "<<dV<<" +- "<<dVErr<<endl;
    cout<<endl;
        
  }
  
  //copy content of profile into TH1D, add error and fill the AliFlowCommonHistResults

  //v as a function of eta for RP selection
  for(Int_t b=0;b<iNbinsEta;b++) {
    Double_t dv2pro  = fHistProVetaRP->GetBinContent(b);
    Double_t dNprime = fCommonHists->GetEntriesInEtaBinRP(b);  
    Double_t dErrdifcomb = 0.;  //set error to zero
    Double_t dErr2difcomb = 0.; //set error to zero
    //calculate error
    if (TMath::AreEqualAbs(dNprime,0.0,1e-10)) { 
      for (Int_t theta=0;theta<iNtheta;theta++) {
	Double_t dTheta = ((double)theta/iNtheta)*TMath::Pi(); 
	Double_t dApluscomb = TMath::Exp((dJ01*dJ01)/(2*dChi*dChi)*
					   TMath::Cos(dTheta));
	Double_t dAmincomb = TMath::Exp(-(dJ01*dJ01)/(2*dChi*dChi)*
					  TMath::Cos(dTheta));
	dErr2difcomb += (TMath::Cos(dTheta)/(4*dNprime*TMath::BesselJ1(dJ01)*
						 TMath::BesselJ1(dJ01)))*
	  ((dApluscomb*TMath::BesselJ0(2*dJ01*TMath::Sin(dTheta/2))) - 
	   (dAmincomb*TMath::BesselJ0(2*dJ01*TMath::Cos(dTheta/2))));
      } //loop over theta
    } 
      
    if (TMath::AreEqualAbs(dErr2difcomb, 0.0, 1e-10)) {
      dErr2difcomb /= iNtheta;
      dErrdifcomb = TMath::Sqrt(dErr2difcomb);
    }
    else {dErrdifcomb = 0.;}
    //fill TH1D
    fCommonHistsRes->FillDifferentialFlowEtaRP(b, dv2pro, dErrdifcomb); 
  } //loop over bins b
  
  
  //v as a function of eta for POI selection
  for(Int_t b=0;b<iNbinsEta;b++) {
    Double_t dv2pro  = fHistProVetaPOI->GetBinContent(b);
    Double_t dNprime = fCommonHists->GetEntriesInEtaBinPOI(b);   
    Double_t dErrdifcomb = 0.;  //set error to zero
    Double_t dErr2difcomb = 0.; //set error to zero
    //calculate error
    if (dNprime!=0.) { 
      for (Int_t theta=0;theta<iNtheta;theta++) {
	Double_t dTheta = ((double)theta/iNtheta)*TMath::Pi(); 
	Double_t dApluscomb = TMath::Exp((dJ01*dJ01)/(2*dChi*dChi)*
					 TMath::Cos(dTheta));
	Double_t dAmincomb = TMath::Exp(-(dJ01*dJ01)/(2*dChi*dChi)*
					TMath::Cos(dTheta));
	dErr2difcomb += (TMath::Cos(dTheta)/(4*dNprime*TMath::BesselJ1(dJ01)*
					     TMath::BesselJ1(dJ01)))*
	  ((dApluscomb*TMath::BesselJ0(2*dJ01*TMath::Sin(dTheta/2))) - 
	   (dAmincomb*TMath::BesselJ0(2*dJ01*TMath::Cos(dTheta/2))));
      } //loop over theta
    } 
      
    if (dErr2difcomb!=0.) {
      dErr2difcomb /= iNtheta;
      dErrdifcomb = TMath::Sqrt(dErr2difcomb);
    }
    else {dErrdifcomb = 0.;}
    //fill TH1D
    fCommonHistsRes->FillDifferentialFlowEtaPOI(b, dv2pro, dErrdifcomb); 
  } //loop over bins b
    
  //v as a function of Pt for RP selection
  TH1F* fHistPtRP = fCommonHists->GetHistPtRP(); //for calculating integrated flow
  Double_t dVRP = 0.;
  Double_t dSum = 0.;
  Double_t dErrV =0.;

  for(Int_t b=0;b<iNbinsPt;b++) {
    Double_t dv2pro  = fHistProVPtRP->GetBinContent(b);
    Double_t dNprime = fCommonHists->GetEntriesInPtBinRP(b);   
    Double_t dErrdifcomb = 0.;  //set error to zero
    Double_t dErr2difcomb = 0.; //set error to zero
    //calculate error
    if (dNprime!=0.) { 
      for (Int_t theta=0;theta<iNtheta;theta++) {
	Double_t dTheta = ((double)theta/iNtheta)*TMath::Pi(); 
	Double_t dApluscomb = TMath::Exp((dJ01*dJ01)/(2*dChi*dChi)*
					   TMath::Cos(dTheta));
	Double_t dAmincomb = TMath::Exp(-(dJ01*dJ01)/(2*dChi*dChi)*
					  TMath::Cos(dTheta));
	dErr2difcomb += (TMath::Cos(dTheta)/(4*dNprime*TMath::BesselJ1(dJ01)*
					       TMath::BesselJ1(dJ01)))*
	  ((dApluscomb*TMath::BesselJ0(2*dJ01*TMath::Sin(dTheta/2))) - 
	   (dAmincomb*TMath::BesselJ0(2*dJ01*TMath::Cos(dTheta/2))));
      } //loop over theta
    } 
      
    if (dErr2difcomb!=0.) {
      dErr2difcomb /= iNtheta;
      dErrdifcomb = TMath::Sqrt(dErr2difcomb);
      //cerr<<"dErrdifcomb = "<<dErrdifcomb<<endl;
    }
    else {dErrdifcomb = 0.;}
      
    //fill TH1D
    fCommonHistsRes->FillDifferentialFlowPtRP(b, dv2pro, dErrdifcomb);
    //calculate integrated flow for RP selection
    if (fHistPtRP){
      Double_t dYieldPt = fHistPtRP->GetBinContent(b);
      dVRP += dv2pro*dYieldPt;
      dSum +=dYieldPt;
      dErrV += dYieldPt*dYieldPt*dErrdifcomb*dErrdifcomb;
    } else { cout<<"fHistPtRP is NULL"<<endl; }
 
  } //loop over bins b

  if (TMath::AreEqualAbs(dSum, 0.0, 1e-10)) {
    dVRP /= dSum; //the pt distribution should be normalised
    dErrV /= (dSum*dSum);
    dErrV = TMath::Sqrt(dErrV);
  }
  fCommonHistsRes->FillIntegratedFlowRP(dVRP,dErrV);

  cout<<"dV(RP) = "<<dVRP<<" +- "<<dErrV<<endl;
  //cout<<endl;

       
  //v as a function of Pt for POI selection 
  TH1F* fHistPtPOI = fCommonHists->GetHistPtPOI(); //for calculating integrated flow
  Double_t dVPOI = 0.;
  dSum = 0.;
  dErrV =0.;
  
  for(Int_t b=0;b<iNbinsPt;b++) {
    Double_t dv2pro = fHistProVPtPOI->GetBinContent(b);
    Double_t dNprime = fCommonHists->GetEntriesInPtBinPOI(b);    
    
    //cerr<<"dNprime = "<<dNprime<<endl;
    //Int_t iNprime = TMath::Nint(fHistProVPtPOI->GetBinEntries(b));
    //cerr<<"iNprime = "<<iNprime<<endl;

    Double_t dErrdifcomb = 0.;  //set error to zero
    Double_t dErr2difcomb = 0.; //set error to zero
    //calculate error
    if (dNprime!=0.) { 
      for (Int_t theta=0;theta<iNtheta;theta++) {
	Double_t dTheta = ((double)theta/iNtheta)*TMath::Pi(); 
	Double_t dApluscomb = TMath::Exp((dJ01*dJ01)/(2*dChi*dChi)*
					   TMath::Cos(dTheta));
	Double_t dAmincomb = TMath::Exp(-(dJ01*dJ01)/(2*dChi*dChi)*
					  TMath::Cos(dTheta));
	dErr2difcomb += (TMath::Cos(dTheta)/(4*dNprime*TMath::BesselJ1(dJ01)*
						 TMath::BesselJ1(dJ01)))*
	  ((dApluscomb*TMath::BesselJ0(2*dJ01*TMath::Sin(dTheta/2))) - 
	   (dAmincomb*TMath::BesselJ0(2*dJ01*TMath::Cos(dTheta/2))));
      } //loop over theta
    } 
      
    if (dErr2difcomb!=0.) {
      dErr2difcomb /= iNtheta;
      dErrdifcomb = TMath::Sqrt(dErr2difcomb);
      //cerr<<"dErrdifcomb = "<<dErrdifcomb<<endl;
    }
    else {dErrdifcomb = 0.;}
	  
    //fill TH1D
    fCommonHistsRes->FillDifferentialFlowPtPOI(b, dv2pro, dErrdifcomb); 

    //calculate integrated flow for POI selection
    if (fHistPtPOI){
      Double_t dYieldPt = fHistPtPOI->GetBinContent(b);
      dVPOI += dv2pro*dYieldPt;
      dSum +=dYieldPt;
      dErrV += dYieldPt*dYieldPt*dErrdifcomb*dErrdifcomb;
    } else { cout<<"fHistPtPOI is NULL"<<endl; }
  } //loop over bins b

  if (dSum != 0.) {
    dVPOI /= dSum; //the pt distribution should be normalised
    dErrV /= (dSum*dSum);
    dErrV = TMath::Sqrt(dErrV);
  }
  fCommonHistsRes->FillIntegratedFlowPOI(dVPOI,dErrV);

  cout<<"dV(POI) = "<<dVPOI<<" +- "<<dErrV<<endl;
  cout<<endl;
  cout<<"*************************************"<<endl;
  cout<<"*************************************"<<endl;
    
  //cout<<".....finished"<<endl;
 }

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