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

/*****************************************************************
  AliFlowEventSimple: A simple event 
  for flow analysis                  
                                     
  origin: Naomi van der Kolk (kolk@nikhef.nl)           
          Ante Bilandzic     (anteb@nikhef.nl)         
          Raimond Snellings  (Raimond.Snellings@nikhef.nl)    
  mods:   Mikolaj Krzewicki  (mikolaj.krzewicki@cern.ch)
*****************************************************************/

#include "Riostream.h"
#include "TObjArray.h"
#include "TFile.h"
#include "TList.h"
#include "TTree.h"
#include "TParticle.h"
#include "TMath.h"
#include "TH1F.h"
#include "TH1D.h"
#include "TF1.h"
#include "TProfile.h"
#include "TParameter.h"
#include "TBrowser.h"
#include "AliFlowVector.h"
#include "AliFlowTrackSimple.h"
#include "AliFlowTrackSimpleCuts.h"
#include "AliFlowEventSimple.h"
#include "TRandom.h"

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

//-----------------------------------------------------------------------
AliFlowEventSimple::AliFlowEventSimple():
  fTrackCollection(NULL),
  fReferenceMultiplicity(0),
  fNumberOfTracks(0),
  fUseGlauberMCSymmetryPlanes(kFALSE),
  fUseExternalSymmetryPlanes(kFALSE),
  fPsi1(0.),
  fPsi2(0.),
  fPsi3(0.),
  fPsi4(0.),
  fPsi5(0.),
  fPsi1Psi3(0x0),
  fPsi2Psi4(0x0),
  fPsi3Psi5(0x0),
  fMCReactionPlaneAngle(0.),
  fMCReactionPlaneAngleIsSet(kFALSE),
  fAfterBurnerPrecision(0.001),
  fUserModified(kFALSE),
  fNumberOfTracksWrap(NULL),
  fNumberOfRPsWrap(NULL),
  fNumberOfPOIsWrap(NULL),
  fMCReactionPlaneAngleWrap(NULL),
  fShuffledIndexes(NULL),
  fShuffleTracks(kFALSE),
  fMothersCollection(NULL),
  fCentrality(-1.),
  fNumberOfPOItypes(2),
  fNumberOfPOIs(NULL)
{
  cout << "AliFlowEventSimple: Default constructor to be used only by root for io" << endl;
}

//-----------------------------------------------------------------------
AliFlowEventSimple::AliFlowEventSimple( Int_t n,
                                        ConstructionMethod method,
                                        TF1* ptDist,
                                        Double_t phiMin,
                                        Double_t phiMax,
                                        Double_t etaMin,
                                        Double_t etaMax):
  fTrackCollection(new TObjArray(n)),
  fReferenceMultiplicity(0),
  fNumberOfTracks(0),
  fUseGlauberMCSymmetryPlanes(kFALSE),
  fUseExternalSymmetryPlanes(kFALSE),
  fPsi1(0.),
  fPsi2(0.),
  fPsi3(0.),
  fPsi4(0.),
  fPsi5(0.),
  fPsi1Psi3(0x0),
  fPsi2Psi4(0x0),
  fPsi3Psi5(0x0),
  fMCReactionPlaneAngle(0.),
  fMCReactionPlaneAngleIsSet(kFALSE),
  fAfterBurnerPrecision(0.001),
  fUserModified(kFALSE),
  fNumberOfTracksWrap(NULL),
  fNumberOfRPsWrap(NULL),
  fNumberOfPOIsWrap(NULL),
  fMCReactionPlaneAngleWrap(NULL),
  fShuffledIndexes(NULL),
  fShuffleTracks(kFALSE),
  fMothersCollection(new TObjArray()),
  fCentrality(-1.),
  fNumberOfPOItypes(2),
  fNumberOfPOIs(new Int_t[fNumberOfPOItypes])
{
  //ctor
  // if second argument is set to AliFlowEventSimple::kGenerate
  // it generates n random tracks with given Pt distribution
  // (a sane default is provided), phi and eta are uniform

  if (method==kGenerate)
    Generate(n,ptDist,phiMin,phiMax,etaMin,etaMax);
}

//-----------------------------------------------------------------------
AliFlowEventSimple::AliFlowEventSimple(const AliFlowEventSimple& anEvent):
  TObject(anEvent),
  fTrackCollection((TObjArray*)(anEvent.fTrackCollection)->Clone()),
  fReferenceMultiplicity(anEvent.fReferenceMultiplicity),
  fNumberOfTracks(anEvent.fNumberOfTracks),
  fUseGlauberMCSymmetryPlanes(anEvent.fUseGlauberMCSymmetryPlanes),
  fUseExternalSymmetryPlanes(anEvent.fUseExternalSymmetryPlanes),
  fPsi1(anEvent.fPsi1),
  fPsi2(anEvent.fPsi2),
  fPsi3(anEvent.fPsi3),
  fPsi4(anEvent.fPsi4),
  fPsi5(anEvent.fPsi5),
  fPsi1Psi3(anEvent.fPsi1Psi3),
  fPsi2Psi4(anEvent.fPsi2Psi4),
  fPsi3Psi5(anEvent.fPsi3Psi5),
  fMCReactionPlaneAngle(anEvent.fMCReactionPlaneAngle),
  fMCReactionPlaneAngleIsSet(anEvent.fMCReactionPlaneAngleIsSet),
  fAfterBurnerPrecision(anEvent.fAfterBurnerPrecision),
  fUserModified(anEvent.fUserModified),
  fNumberOfTracksWrap(anEvent.fNumberOfTracksWrap),
  fNumberOfRPsWrap(anEvent.fNumberOfRPsWrap),
  fNumberOfPOIsWrap(anEvent.fNumberOfPOIsWrap),
  fMCReactionPlaneAngleWrap(anEvent.fMCReactionPlaneAngleWrap),
  fShuffledIndexes(NULL),
  fShuffleTracks(anEvent.fShuffleTracks),
  fMothersCollection(new TObjArray()),
  fCentrality(anEvent.fCentrality),
  fNumberOfPOItypes(anEvent.fNumberOfPOItypes),
  fNumberOfPOIs(new Int_t[fNumberOfPOItypes])
{
  //copy constructor
  memcpy(fNumberOfPOIs,anEvent.fNumberOfPOIs,fNumberOfPOItypes*sizeof(Int_t));
}

//-----------------------------------------------------------------------
void AliFlowEventSimple::SetNumberOfPOIs( Int_t numberOfPOIs, Int_t poiType)
{
  //set the number of poi classes, resize the array if larger is needed
  //never shrink the array
  //never decrease the stored number
  if (poiType>=fNumberOfPOItypes)
  {
    Int_t n = poiType+1;
    Int_t* tmp = new Int_t[n];
    for (Int_t j=0; j<n; j++) { tmp[j]=0; }       
    memcpy(tmp,fNumberOfPOIs,fNumberOfPOItypes*sizeof(Int_t));
    delete [] fNumberOfPOIs;
    fNumberOfPOIs = tmp;
    fNumberOfPOItypes = n;
  }
  
  fNumberOfPOIs[poiType] = numberOfPOIs;
}

//-----------------------------------------------------------------------
void AliFlowEventSimple::IncrementNumberOfPOIs(Int_t poiType)
{

  if (poiType>=fNumberOfPOItypes) SetNumberOfPOIs(0,poiType);
  fNumberOfPOIs[poiType]++;
}

//-----------------------------------------------------------------------
AliFlowEventSimple& AliFlowEventSimple::operator=(const AliFlowEventSimple& anEvent)
{
  //assignment operator
  if (&anEvent==this) return *this; //check self-assignment
  if (fTrackCollection) fTrackCollection->Delete();
  delete fTrackCollection;
  fTrackCollection = (TObjArray*)(anEvent.fTrackCollection)->Clone(); //deep copy
  fReferenceMultiplicity = anEvent.fReferenceMultiplicity;
  fNumberOfTracks = anEvent.fNumberOfTracks;
  fNumberOfPOItypes = anEvent.fNumberOfPOItypes;
  delete [] fNumberOfPOIs;
  fNumberOfPOIs=new Int_t[fNumberOfPOItypes];
  memcpy(fNumberOfPOIs,anEvent.fNumberOfPOIs,fNumberOfPOItypes*sizeof(Int_t));
  fUseGlauberMCSymmetryPlanes = anEvent.fUseGlauberMCSymmetryPlanes;
  fUseExternalSymmetryPlanes = anEvent.fUseExternalSymmetryPlanes;
  fPsi1 = anEvent.fPsi1;
  fPsi2 = anEvent.fPsi2;
  fPsi3 = anEvent.fPsi3;
  fPsi4 = anEvent.fPsi4;
  fPsi5 = anEvent.fPsi5;
  fPsi1Psi3 = anEvent.fPsi1Psi3;
  fPsi2Psi4 = anEvent.fPsi2Psi4;
  fPsi3Psi5 = anEvent.fPsi3Psi5;
  fMCReactionPlaneAngle = anEvent.fMCReactionPlaneAngle;
  fMCReactionPlaneAngleIsSet = anEvent.fMCReactionPlaneAngleIsSet;
  fAfterBurnerPrecision = anEvent.fAfterBurnerPrecision;
  fUserModified=anEvent.fUserModified;
  fNumberOfTracksWrap = anEvent.fNumberOfTracksWrap;
  fNumberOfRPsWrap = anEvent.fNumberOfRPsWrap;
  fNumberOfPOIsWrap = anEvent.fNumberOfPOIsWrap;
  fMCReactionPlaneAngleWrap=anEvent.fMCReactionPlaneAngleWrap;
  fShuffleTracks=anEvent.fShuffleTracks;
  delete [] fShuffledIndexes;
  return *this;
}

//-----------------------------------------------------------------------
AliFlowEventSimple::~AliFlowEventSimple()
{
  //destructor
  if (fTrackCollection) fTrackCollection->Delete();
  delete fTrackCollection;
  delete fNumberOfTracksWrap;
  delete fNumberOfRPsWrap;
  delete fNumberOfPOIsWrap;
  delete fMCReactionPlaneAngleWrap;
  delete fShuffledIndexes;
  delete fMothersCollection;
  delete [] fNumberOfPOIs;
}

//-----------------------------------------------------------------------
void AliFlowEventSimple::SetUseExternalSymmetryPlanes(TF1 *gPsi1Psi3,
						      TF1 *gPsi2Psi4,
						      TF1 *gPsi3Psi5) {
  //Use symmetry planes, setup correlations between different Psi_n
  fUseExternalSymmetryPlanes = kTRUE; 
    
  //Correlations between Psi_1 and Psi_3
  if(gPsi1Psi3) fPsi1Psi3 = gPsi1Psi3;
  else {
    fPsi1Psi3 = new TF1("fPsi1Psi3","[0]*x+[1]",0.,2.*TMath::Pi());
    fPsi1Psi3->SetParameter(0,1.);
    fPsi1Psi3->SetParameter(1,0.);
  }

  //Correlations between Psi_2 and Psi_4
  if(gPsi2Psi4) fPsi2Psi4 = gPsi2Psi4;
  else {
    fPsi2Psi4 = new TF1("fPsi2Psi4","[0]*x+[1]",0.,2.*TMath::Pi());
    fPsi2Psi4->SetParameter(0,1.);
    fPsi2Psi4->SetParameter(1,0.);
  }

  //Correlations between Psi_3 and Psi_5
  if(gPsi3Psi5) fPsi3Psi5 = gPsi3Psi5;
  else {
    fPsi3Psi5 = new TF1("fPsi3Psi5","[0]*x+[1]",0.,2.*TMath::Pi());
    fPsi3Psi5->SetParameter(0,1.);
    fPsi3Psi5->SetParameter(1,0.);
  }
}

//-----------------------------------------------------------------------
void AliFlowEventSimple::Generate(Int_t nParticles,
                                  TF1* ptDist,
                                  Double_t phiMin,
                                  Double_t phiMax,
                                  Double_t etaMin,
                                  Double_t etaMax)
{
  //generate nParticles random tracks uniform in phi and eta
  //according to the specified pt distribution
  if (!ptDist)
  {
    static TF1 ptdistribution("ptSpectra","x*TMath::Exp(-pow(0.13957*0.13957+x*x,0.5)/0.4)",0.1,10.);
    ptDist=&ptdistribution;
  }

  for (Int_t i=0; i<nParticles; i++)
  {
    AliFlowTrackSimple* track = new AliFlowTrackSimple();
    track->SetPhi( gRandom->Uniform(phiMin,phiMax) );
    track->SetEta( gRandom->Uniform(etaMin,etaMax) );
    track->SetPt( ptDist->GetRandom() );
    track->SetCharge( (gRandom->Uniform()-0.5<0)?-1:1 );
    AddTrack(track);
  }
  if(fUseExternalSymmetryPlanes) {
    Double_t betaParameter = gRandom->Gaus(0.,1.3);
    fPsi1Psi3->SetParameter(1,betaParameter);
    
    betaParameter = gRandom->Gaus(0.,0.9);
    fPsi2Psi4->SetParameter(1,betaParameter);

    betaParameter = gRandom->Gaus(0.,1.5);
    fPsi3Psi5->SetParameter(1,betaParameter);

    fPsi1 = gRandom->Uniform(2.*TMath::Pi());
    fPsi2 = gRandom->Uniform(2.*TMath::Pi());
    fPsi3 = fPsi1Psi3->Eval(fPsi1);
    if(fPsi3 < 0) fPsi3 += 2.*TMath::Pi();
    else if(fPsi3 > 2.*TMath::Pi()) fPsi3 -= 2.*TMath::Pi();
    fPsi4 = fPsi2Psi4->Eval(fPsi2);
    if(fPsi4 < 0) fPsi4 += 2.*TMath::Pi();
    else if(fPsi4 > 2.*TMath::Pi()) fPsi4 -= 2.*TMath::Pi();
    fPsi5 = fPsi3Psi5->Eval(fPsi3);
    if(fPsi5 < 0) fPsi5 += 2.*TMath::Pi();
    else if(fPsi5 > 2.*TMath::Pi()) fPsi5 -= 2.*TMath::Pi();

    fMCReactionPlaneAngle=fPsi2;
    fMCReactionPlaneAngleIsSet=kTRUE;
  }
  else {
    fMCReactionPlaneAngle=gRandom->Uniform(0.0,TMath::TwoPi());
    fMCReactionPlaneAngleIsSet=kTRUE;
  }
  SetUserModified();
}

//-----------------------------------------------------------------------
AliFlowTrackSimple* AliFlowEventSimple::GetTrack(Int_t i)
{
  //get track i from collection
  if (i>=fNumberOfTracks) return NULL;
  Int_t trackIndex=i;
  //if asked use the shuffled index
  if (fShuffleTracks)
  {
    if (!fShuffledIndexes) ShuffleTracks();
    trackIndex=fShuffledIndexes[i];
  }
  AliFlowTrackSimple* pTrack = static_cast<AliFlowTrackSimple*>(fTrackCollection->At(trackIndex)) ;
  return pTrack;
}

//-----------------------------------------------------------------------
void AliFlowEventSimple::ShuffleTracks()
{
  //shuffle track indexes
  if (!fShuffledIndexes) 
  {
    //initialize the table with shuffled indexes
    fShuffledIndexes = new Int_t[fNumberOfTracks];
    for (Int_t j=0; j<fNumberOfTracks; j++) { fShuffledIndexes[j]=j; }
  }
  //shuffle
  std::random_shuffle(&fShuffledIndexes[0], &fShuffledIndexes[fNumberOfTracks]);
  Printf("Tracks shuffled! tracks: %i",fNumberOfTracks);
}

//-----------------------------------------------------------------------
void AliFlowEventSimple::AddTrack( AliFlowTrackSimple* track )
{
  //add a track, delete the old one if necessary
  if (fNumberOfTracks < fTrackCollection->GetEntriesFast())
  {
    TObject* o = fTrackCollection->At(fNumberOfTracks);
    delete o;
  }
  fTrackCollection->AddAtAndExpand(track,fNumberOfTracks);
  if (track->GetNDaughters()>0)
  {
    //if there track has daughters cache in the collection of mothers
    fMothersCollection->Add(track);
  }
  TrackAdded();
}

//-----------------------------------------------------------------------
void AliFlowEventSimple::TrackAdded()
{
  //book keeping after a new track has been added
  fNumberOfTracks++;
  if (fShuffledIndexes)
  {
    delete [] fShuffledIndexes;
    fShuffledIndexes=NULL;  
  }
}

//-----------------------------------------------------------------------
AliFlowTrackSimple* AliFlowEventSimple::MakeNewTrack()
{
   AliFlowTrackSimple *t=dynamic_cast<AliFlowTrackSimple *>(fTrackCollection->RemoveAt(fNumberOfTracks));
   if( !t ) {  // If there was no track at the end of the list then create a new track
      t=new AliFlowTrackSimple();
   }

   return t;
}

//-----------------------------------------------------------------------
AliFlowVector AliFlowEventSimple::GetQ( Int_t n, 
                                        TList *weightsList, 
                                        Bool_t usePhiWeights, 
                                        Bool_t usePtWeights, 
                                        Bool_t useEtaWeights )
{
  // calculate Q-vector in harmonic n without weights (default harmonic n=2)
  Double_t dQX = 0.;
  Double_t dQY = 0.;
  AliFlowVector vQ;
  vQ.Set(0.,0.);

  Int_t iOrder = n;
  Double_t sumOfWeights = 0.;
  Double_t dPhi = 0.;
  Double_t dPt = 0.;
  Double_t dEta = 0.;
  Double_t dWeight = 1.;

  AliFlowTrackSimple* pTrack = NULL;

  Int_t nBinsPhi = 0;
  Double_t dBinWidthPt = 0.;
  Double_t dPtMin = 0.;
  Double_t dBinWidthEta = 0.;
  Double_t dEtaMin = 0.;

  Double_t wPhi = 1.; // weight Phi
  Double_t wPt = 1.;  // weight Pt
  Double_t wEta = 1.; // weight Eta

  TH1F *phiWeights = NULL;
  TH1D *ptWeights  = NULL;
  TH1D *etaWeights = NULL;

  if(weightsList)
  {
    if(usePhiWeights)
    {
      phiWeights = dynamic_cast<TH1F *>(weightsList->FindObject("phi_weights"));
      if(phiWeights) nBinsPhi = phiWeights->GetNbinsX();
    }
    if(usePtWeights)
    {
      ptWeights = dynamic_cast<TH1D *>(weightsList->FindObject("pt_weights"));
      if(ptWeights)
      {
        dBinWidthPt = ptWeights->GetBinWidth(1); // assuming that all bins have the same width
        dPtMin = (ptWeights->GetXaxis())->GetXmin();
      }
    }
    if(useEtaWeights)
    {
      etaWeights = dynamic_cast<TH1D *>(weightsList->FindObject("eta_weights"));
      if(etaWeights)
      {
        dBinWidthEta = etaWeights->GetBinWidth(1); // assuming that all bins have the same width
        dEtaMin = (etaWeights->GetXaxis())->GetXmin();
      }
    }
  } // end of if(weightsList)

  // loop over tracks
  for(Int_t i=0; i<fNumberOfTracks; i++)
  {
    pTrack = (AliFlowTrackSimple*)fTrackCollection->At(i);
    if(pTrack)
    {
      if(pTrack->InRPSelection())
      {
        dPhi = pTrack->Phi();
        dPt  = pTrack->Pt();
        dEta = pTrack->Eta();
	      dWeight = pTrack->Weight();

        // determine Phi weight: (to be improved, I should here only access it + the treatment of gaps in the if statement)
        if(phiWeights && nBinsPhi)
        {
          wPhi = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(dPhi*nBinsPhi/TMath::TwoPi())));
        }
        // determine v'(pt) weight:
        if(ptWeights && dBinWidthPt)
        {
          wPt=ptWeights->GetBinContent(1+(Int_t)(TMath::Floor((dPt-dPtMin)/dBinWidthPt)));
        }
        // determine v'(eta) weight:
        if(etaWeights && dBinWidthEta)
        {
          wEta=etaWeights->GetBinContent(1+(Int_t)(TMath::Floor((dEta-dEtaMin)/dBinWidthEta)));
        }

        // building up the weighted Q-vector:
        dQX += dWeight*wPhi*wPt*wEta*TMath::Cos(iOrder*dPhi);
        dQY += dWeight*wPhi*wPt*wEta*TMath::Sin(iOrder*dPhi);

        // weighted multiplicity:
        sumOfWeights += dWeight*wPhi*wPt*wEta;

      } // end of if (pTrack->InRPSelection())
    } // end of if (pTrack)
    else
    {
      cerr << "no particle!!!"<<endl;
    }
  } // loop over particles

  vQ.Set(dQX,dQY);
  vQ.SetMult(sumOfWeights);
  vQ.SetHarmonic(iOrder);
  vQ.SetPOItype(AliFlowTrackSimple::kRP);
  vQ.SetSubeventNumber(-1);

  return vQ;

}

//-----------------------------------------------------------------------
void AliFlowEventSimple::Get2Qsub( AliFlowVector* Qarray, 
                                   Int_t n, 
                                   TList *weightsList, 
                                   Bool_t usePhiWeights, 
                                   Bool_t usePtWeights, 
                                   Bool_t useEtaWeights )
{

  // calculate Q-vector in harmonic n without weights (default harmonic n=2)
  Double_t dQX = 0.;
  Double_t dQY = 0.;

  Int_t iOrder = n;
  Double_t sumOfWeights = 0.;
  Double_t dPhi = 0.;
  Double_t dPt  = 0.;
  Double_t dEta = 0.;
  Double_t dWeight = 1.;

  AliFlowTrackSimple* pTrack = NULL;

  Int_t    iNbinsPhiSub0 = 0;
  Int_t    iNbinsPhiSub1 = 0;
  Double_t dBinWidthPt = 0.;
  Double_t dPtMin      = 0.;
  Double_t dBinWidthEta= 0.;
  Double_t dEtaMin     = 0.;

  Double_t dWphi = 1.;  // weight Phi
  Double_t dWpt  = 1.;  // weight Pt
  Double_t dWeta = 1.;  // weight Eta

  TH1F* phiWeightsSub0 = NULL;
  TH1F* phiWeightsSub1 = NULL;
  TH1D* ptWeights  = NULL;
  TH1D* etaWeights = NULL;

  if(weightsList)
  {
    if(usePhiWeights)
    {
      phiWeightsSub0 = dynamic_cast<TH1F *>(weightsList->FindObject("phi_weights_sub0"));
      if(phiWeightsSub0) {
	iNbinsPhiSub0 = phiWeightsSub0->GetNbinsX();
      }
      phiWeightsSub1 = dynamic_cast<TH1F *>(weightsList->FindObject("phi_weights_sub1"));
      if(phiWeightsSub1) {
	iNbinsPhiSub1 = phiWeightsSub1->GetNbinsX();
      }
    }
    if(usePtWeights)
    {
      ptWeights = dynamic_cast<TH1D *>(weightsList->FindObject("pt_weights"));
      if(ptWeights)
      {
        dBinWidthPt = ptWeights->GetBinWidth(1); // assuming that all bins have the same width
        dPtMin = (ptWeights->GetXaxis())->GetXmin();
      }
    }
    if(useEtaWeights)
    {
      etaWeights = dynamic_cast<TH1D *>(weightsList->FindObject("eta_weights"));
      if(etaWeights)
      {
        dBinWidthEta = etaWeights->GetBinWidth(1); // assuming that all bins have the same width
        dEtaMin = (etaWeights->GetXaxis())->GetXmin();
      }
    }
  } // end of if(weightsList)

  //loop over the two subevents
  for (Int_t s=0; s<2; s++)
  {
    // loop over tracks
    for(Int_t i=0; i<fNumberOfTracks; i++)
    {
      pTrack = (AliFlowTrackSimple*)fTrackCollection->At(i);
      if(!pTrack)
      {
        cerr << "no particle!!!"<<endl;
        continue;
      }
      if(pTrack->InRPSelection() && (pTrack->InSubevent(s)))
      {
        dPhi    = pTrack->Phi();
        dPt     = pTrack->Pt();
        dEta    = pTrack->Eta();
        dWeight = pTrack->Weight();

        // determine Phi weight: (to be improved, I should here only access it + the treatment of gaps in the if statement)
        //subevent 0
        if(s == 0)  { 
          if(phiWeightsSub0 && iNbinsPhiSub0)  {
            Int_t phiBin = 1+(Int_t)(TMath::Floor(dPhi*iNbinsPhiSub0/TMath::TwoPi()));
            //use the phi value at the center of the bin
            dPhi  = phiWeightsSub0->GetBinCenter(phiBin);
            dWphi = phiWeightsSub0->GetBinContent(phiBin);
          }
        } 
        //subevent 1
        else if (s == 1) { 
          if(phiWeightsSub1 && iNbinsPhiSub1) {
            Int_t phiBin = 1+(Int_t)(TMath::Floor(dPhi*iNbinsPhiSub1/TMath::TwoPi()));
            //use the phi value at the center of the bin
            dPhi  = phiWeightsSub1->GetBinCenter(phiBin);
            dWphi = phiWeightsSub1->GetBinContent(phiBin);
          } 
        }

        // determine v'(pt) weight:
        if(ptWeights && dBinWidthPt)
        {
          dWpt=ptWeights->GetBinContent(1+(Int_t)(TMath::Floor((dPt-dPtMin)/dBinWidthPt)));
        }

        // determine v'(eta) weight:
        if(etaWeights && dBinWidthEta)
        {
          dWeta=etaWeights->GetBinContent(1+(Int_t)(TMath::Floor((dEta-dEtaMin)/dBinWidthEta)));
        }

        // building up the weighted Q-vector:
        dQX += dWeight*dWphi*dWpt*dWeta*TMath::Cos(iOrder*dPhi);
        dQY += dWeight*dWphi*dWpt*dWeta*TMath::Sin(iOrder*dPhi);

        // weighted multiplicity:
        sumOfWeights+=dWeight*dWphi*dWpt*dWeta;

      } // end of if (pTrack->InRPSelection())
    } // loop over particles
    
    Qarray[s].Set(dQX,dQY);
    Qarray[s].SetMult(sumOfWeights);
    Qarray[s].SetHarmonic(iOrder);
    Qarray[s].SetPOItype(AliFlowTrackSimple::kRP);
    Qarray[s].SetSubeventNumber(s);

    //reset
    sumOfWeights = 0.;
    dQX = 0.;
    dQY = 0.;
  }

}


//-----------------------------------------------------------------------
void AliFlowEventSimple::Print(Option_t *option) const
{
  //   -*-*-*-*-*Print some global quantities for this histogram collection class *-*-*-*-*-*-*-*
  //             ===============================================
  //   printf( "TH1.Print Name  = %s, Entries= %d, Total sum= %g\n",GetName(),Int_t(fEntries),GetSumOfWeights());
  printf( "Class.Print Name = %s, #tracks= %d, Number of RPs= %d, Number of POIs = %d, MC EventPlaneAngle= %f\n",
          GetName(),fNumberOfTracks, fNumberOfPOIs[0], fNumberOfPOIs[1], fMCReactionPlaneAngle );

  TString optionstr(option);
  if (!optionstr.Contains("all")) return;
  if (fTrackCollection)
  {
    fTrackCollection->Print(option);
  }
  else
  {
    printf( "Empty track collection \n");
  }
}

//-----------------------------------------------------------------------
void AliFlowEventSimple::Browse(TBrowser *b)
{
  //browse in TBrowser
  if (!b) return;
  if (!fNumberOfTracksWrap)
  {
    fNumberOfTracksWrap = new TParameter<int>("fNumberOfTracks", fNumberOfTracks);
    b->Add(fNumberOfTracksWrap);
  }
  if (!fNumberOfRPsWrap)
  {
    fNumberOfRPsWrap = new TParameter<int>("fNumberOfRPs", GetNumberOfRPs());
    b->Add(fNumberOfRPsWrap);
  }
  if (!fNumberOfPOIsWrap)
  {
    fNumberOfPOIsWrap = new TParameter<int>("fNumberOfPOIs", GetNumberOfPOIs());
    b->Add(fNumberOfPOIsWrap);
  }
  if (!fMCReactionPlaneAngleWrap)
  {
    fMCReactionPlaneAngleWrap = new TParameter<double>(" fMCReactionPlaneAngle",  fMCReactionPlaneAngle);
    b->Add( fMCReactionPlaneAngleWrap);
  }
  if (fTrackCollection) b->Add(fTrackCollection,"AliFlowTracksSimple");
}

//-----------------------------------------------------------------------
AliFlowEventSimple::AliFlowEventSimple( TTree* inputTree,
                                        const AliFlowTrackSimpleCuts* rpCuts,
                                        const AliFlowTrackSimpleCuts* poiCuts):
  fTrackCollection(NULL),
  fReferenceMultiplicity(0),
  fNumberOfTracks(0),
  fUseGlauberMCSymmetryPlanes(kFALSE),
  fUseExternalSymmetryPlanes(kFALSE),
  fPsi1(0.),
  fPsi2(0.),
  fPsi3(0.),
  fPsi4(0.),
  fPsi5(0.),
  fPsi1Psi3(0x0),
  fPsi2Psi4(0x0),
  fPsi3Psi5(0x0),
  fMCReactionPlaneAngle(0.),
  fMCReactionPlaneAngleIsSet(kFALSE),
  fAfterBurnerPrecision(0.001),
  fUserModified(kFALSE),
  fNumberOfTracksWrap(NULL),
  fNumberOfRPsWrap(NULL),
  fNumberOfPOIsWrap(NULL),
  fMCReactionPlaneAngleWrap(NULL),
  fShuffledIndexes(NULL),
  fShuffleTracks(kFALSE),
  fMothersCollection(new TObjArray()),
  fCentrality(-1.),
  fNumberOfPOItypes(2),
  fNumberOfPOIs(new Int_t[fNumberOfPOItypes])
{
  //constructor, fills the event from a TTree of kinematic.root files
  //applies RP and POI cuts, tags the tracks

  Int_t numberOfInputTracks = inputTree->GetEntries() ;
  fTrackCollection = new TObjArray(numberOfInputTracks/2);

  TParticle* pParticle = new TParticle();
  inputTree->SetBranchAddress("Particles",&pParticle);

  for (Int_t i=0; i<numberOfInputTracks; i++)
  {
    inputTree->GetEntry(i);   //get input particle
    
    if (!pParticle) continue; //no particle
    if (!pParticle->IsPrimary()) continue;

    Bool_t rpOK = (rpCuts->PassesCuts(pParticle)>0);
    Bool_t poiOK = poiCuts->PassesCuts(pParticle);
    Int_t poiType = poiCuts->GetPOItype();
    
    if (rpOK || poiOK)
    {
      AliFlowTrackSimple* pTrack = new AliFlowTrackSimple(pParticle);

      //marking the particles used for int. flow:
      if(rpOK)
      {
        pTrack->TagRP(kTRUE);
        IncrementNumberOfPOIs(0);
        cout<<"numberOfRPs = "<<fNumberOfPOIs[0]<<endl;
      }
      //marking the particles used for diff. flow:
      if(poiOK)
      {
        pTrack->Tag(poiType);
        IncrementNumberOfPOIs(poiType);
        printf("fNumberOfPOIs[%i] = %i",poiType,fNumberOfPOIs[poiType]);
      }
      //adding a particles which were used either for int. or diff. flow to the list
      AddTrack(pTrack);
    }
  }//for i
  delete pParticle;
}

//_____________________________________________________________________________
void AliFlowEventSimple::CloneTracks(Int_t n)
{
  //clone every track n times to add non-flow
  if (n<=0) return; //no use to clone stuff zero or less times
  Int_t ntracks = fNumberOfTracks;
  fTrackCollection->Expand((n+1)*fNumberOfTracks);
  for (Int_t i=0; i<n; i++)
  {
    for (Int_t itrack=0; itrack<ntracks; itrack++)
    {
      AliFlowTrackSimple* track = dynamic_cast<AliFlowTrackSimple*>(fTrackCollection->At(itrack));
      if (!track) continue;
      AddTrack(static_cast<AliFlowTrackSimple*>(track->Clone()));
    }
  }
  SetUserModified();
}

//_____________________________________________________________________________
void AliFlowEventSimple::ResolutionPt(Double_t res)
{
  //smear pt of all tracks by gaussian with sigma=res
  for (Int_t i=0; i<fNumberOfTracks; i++)
  {
    AliFlowTrackSimple* track = static_cast<AliFlowTrackSimple*>(fTrackCollection->At(i));
    if (track) track->ResolutionPt(res);
  }
  SetUserModified();
}

//_____________________________________________________________________________
void AliFlowEventSimple::TagSubeventsInEta( Double_t etaMinA,
                                            Double_t etaMaxA,
                                            Double_t etaMinB,
                                            Double_t etaMaxB )
{
  //Flag two subevents in given eta ranges
  for (Int_t i=0; i<fNumberOfTracks; i++)
  {
    AliFlowTrackSimple* track = static_cast<AliFlowTrackSimple*>(fTrackCollection->At(i));
    if (!track) continue;
    track->ResetSubEventTags();
    Double_t eta=track->Eta();
    if (eta >= etaMinA && eta <= etaMaxA) track->SetForSubevent(0);
    if (eta >= etaMinB && eta <= etaMaxB) track->SetForSubevent(1);
  }
}

//_____________________________________________________________________________
void AliFlowEventSimple::TagSubeventsByCharge()
{
  //Flag two subevents in given eta ranges
  for (Int_t i=0; i<fNumberOfTracks; i++)
  {
    AliFlowTrackSimple* track = static_cast<AliFlowTrackSimple*>(fTrackCollection->At(i));
    if (!track) continue;
    track->ResetSubEventTags();
    Int_t charge=track->Charge();
    if (charge<0) track->SetForSubevent(0);
    if (charge>0) track->SetForSubevent(1);
  }
}

//_____________________________________________________________________________
void AliFlowEventSimple::AddV1( Double_t v1 )
{
  //add v2 to all tracks wrt the reaction plane angle
  for (Int_t i=0; i<fNumberOfTracks; i++)
  {
    AliFlowTrackSimple* track = static_cast<AliFlowTrackSimple*>(fTrackCollection->At(i));
    if (track) {
      if((fUseExternalSymmetryPlanes)||(fUseGlauberMCSymmetryPlanes))
	track->AddV1(v1, fPsi1, fAfterBurnerPrecision);
      else
	track->AddV1(v1, fMCReactionPlaneAngle, fAfterBurnerPrecision);
    }
  }
  SetUserModified();
}

//_____________________________________________________________________________
void AliFlowEventSimple::AddV2( Double_t v2 )
{
  //add v2 to all tracks wrt the reaction plane angle
  for (Int_t i=0; i<fNumberOfTracks; i++)
  {
    AliFlowTrackSimple* track = static_cast<AliFlowTrackSimple*>(fTrackCollection->At(i));
    if (track) {
      if((fUseExternalSymmetryPlanes)||(fUseGlauberMCSymmetryPlanes))
	track->AddV2(v2, fPsi2, fAfterBurnerPrecision);
      else
	track->AddV2(v2, fMCReactionPlaneAngle, fAfterBurnerPrecision);
    }
  }
  SetUserModified();
}

//_____________________________________________________________________________
void AliFlowEventSimple::AddV3( Double_t v3 )
{
  //add v3 to all tracks wrt the reaction plane angle
  for (Int_t i=0; i<fNumberOfTracks; i++)
  {
    AliFlowTrackSimple* track = static_cast<AliFlowTrackSimple*>(fTrackCollection->At(i));
    if(track) {
      if((fUseExternalSymmetryPlanes)||(fUseGlauberMCSymmetryPlanes))
	track->AddV3(v3, fPsi3, fAfterBurnerPrecision);
      else
	track->AddV3(v3, fMCReactionPlaneAngle, fAfterBurnerPrecision);
    }
  }
  SetUserModified();
}

//_____________________________________________________________________________
void AliFlowEventSimple::AddV4( Double_t v4 )
{
  //add v4 to all tracks wrt the reaction plane angle
  for (Int_t i=0; i<fNumberOfTracks; i++)
  {
    AliFlowTrackSimple* track = static_cast<AliFlowTrackSimple*>(fTrackCollection->At(i));
    if(track) {
      if((fUseExternalSymmetryPlanes)||(fUseGlauberMCSymmetryPlanes))
	track->AddV4(v4, fPsi4, fAfterBurnerPrecision);
      else
	track->AddV4(v4, fMCReactionPlaneAngle, fAfterBurnerPrecision);
    }
  }
  SetUserModified();
}

//_____________________________________________________________________________
void AliFlowEventSimple::AddV5( Double_t v5 )
{
  //add v4 to all tracks wrt the reaction plane angle
  for (Int_t i=0; i<fNumberOfTracks; i++)
  {
    AliFlowTrackSimple* track = static_cast<AliFlowTrackSimple*>(fTrackCollection->At(i));
    if(track) {
      if((fUseExternalSymmetryPlanes)||(fUseGlauberMCSymmetryPlanes))
	track->AddV5(v5, fPsi5, fAfterBurnerPrecision);
      else
	track->AddV5(v5, fMCReactionPlaneAngle, fAfterBurnerPrecision);
    }  
  }
  SetUserModified();
}

//_____________________________________________________________________________
void AliFlowEventSimple::AddFlow( Double_t v1, Double_t v2, Double_t v3, Double_t v4, Double_t v5,
                                  Double_t rp1, Double_t rp2, Double_t rp3, Double_t rp4, Double_t rp5 )
{
  //add flow to all tracks wrt the reaction plane angle, for all harmonic separate angle
  for (Int_t i=0; i<fNumberOfTracks; i++)
  {
    AliFlowTrackSimple* track = static_cast<AliFlowTrackSimple*>(fTrackCollection->At(i));
    if (track) track->AddFlow(v1,v2,v3,v4,v5,rp1,rp2,rp3,rp4,rp5,fAfterBurnerPrecision);
  }
  SetUserModified();
}

//_____________________________________________________________________________
void AliFlowEventSimple::AddFlow( Double_t v1, Double_t v2, Double_t v3, Double_t v4, Double_t v5 )
{
  //add flow to all tracks wrt the reaction plane angle
  for (Int_t i=0; i<fNumberOfTracks; i++)
  {
    AliFlowTrackSimple* track = static_cast<AliFlowTrackSimple*>(fTrackCollection->At(i));
    if (track) track->AddFlow(v1,v2,v3,v4,v5,fMCReactionPlaneAngle, fAfterBurnerPrecision);
  }
  SetUserModified();
}

//_____________________________________________________________________________
void AliFlowEventSimple::AddV2( TF1* ptDepV2 )
{
  //add v2 to all tracks wrt the reaction plane angle
  for (Int_t i=0; i<fNumberOfTracks; i++)
  {
    AliFlowTrackSimple* track = static_cast<AliFlowTrackSimple*>(fTrackCollection->At(i));
    if (!track) continue;
    Double_t v2 = ptDepV2->Eval(track->Pt());
    track->AddV2(v2, fMCReactionPlaneAngle, fAfterBurnerPrecision);
  }
  SetUserModified();
}

//_____________________________________________________________________________
void AliFlowEventSimple::TagRP( const AliFlowTrackSimpleCuts* cuts )
{
  //tag tracks as reference particles (RPs)
  for (Int_t i=0; i<fNumberOfTracks; i++)
  {
    AliFlowTrackSimple* track = static_cast<AliFlowTrackSimple*>(fTrackCollection->At(i));
    if (!track) continue;
    Bool_t pass=cuts->PassesCuts(track);
    Bool_t rpTrack=track->InRPSelection();
    if (pass) 
    {
      if (!rpTrack) fNumberOfPOIs[0]++; //only increase if not already tagged
    }
    else
    {
      if (rpTrack) fNumberOfPOIs[0]--; //only decrease if detagging
    }
    track->SetForRPSelection(pass);
  }
}

//_____________________________________________________________________________
void AliFlowEventSimple::TagPOI( const AliFlowTrackSimpleCuts* cuts, Int_t poiType )
{
  //tag tracks as particles of interest (POIs)
  for (Int_t i=0; i<fNumberOfTracks; i++)
  {
    AliFlowTrackSimple* track = static_cast<AliFlowTrackSimple*>(fTrackCollection->At(i));
    if (!track) continue;
    Bool_t pass=cuts->PassesCuts(track);
    Bool_t poiTrack=track->InPOISelection();
    if (pass) 
    {
      if (!poiTrack) fNumberOfPOIs[poiType]++; //only increase if not already tagged
    }
    else
    {
      if (poiTrack) fNumberOfPOIs[poiType]--; //only decrease if detagging
    }
    track->Tag(poiType,pass);
  }
}

//_____________________________________________________________________________
void AliFlowEventSimple::TagTracks( const AliFlowTrackSimpleCuts* cutsRP, const AliFlowTrackSimpleCuts* cutsPOI)
{
    // simple interface to tagging poi's and rp's
    TagPOI(cutsRP, 0);
    TagPOI(cutsPOI, 1);
}
//_____________________________________________________________________________
void AliFlowEventSimple::DefineDeadZone( Double_t etaMin,
                                         Double_t etaMax,
                                         Double_t phiMin,
                                         Double_t phiMax )
{
  //mark tracks in given eta-phi region as dead
  //by resetting the flow bits
  for (Int_t i=0; i<fNumberOfTracks; i++)
  {
    AliFlowTrackSimple* track = static_cast<AliFlowTrackSimple*>(fTrackCollection->At(i));
    Double_t eta = track->Eta();
    Double_t phi = track->Phi();
    if (eta>etaMin && eta<etaMax && phi>phiMin && phi<phiMax)
    {
      if (track->InRPSelection()) {fNumberOfPOIs[0]--;}
      for (Int_t j=1; j<fNumberOfPOItypes; j++)
      {
        if (track->CheckTag(j)) {fNumberOfPOIs[j]--;}
      }
      track->ResetPOItype();
    }
  }
}

//_____________________________________________________________________________
Int_t AliFlowEventSimple::CleanUpDeadTracks()
{
  //remove tracks that have no flow tags set and cleanup the container
  //returns number of cleaned tracks
  Int_t ncleaned=0;
  for (Int_t i=0; i<fNumberOfTracks; i++)
  {
    AliFlowTrackSimple* track = static_cast<AliFlowTrackSimple*>(fTrackCollection->At(i));
    if (!track) continue;
    if (track->IsDead()) {delete track;track=NULL;ncleaned++;}
  }
  fTrackCollection->Compress(); //clean up empty slots
  fNumberOfTracks-=ncleaned; //update number of tracks
  delete [] fShuffledIndexes; fShuffledIndexes=NULL;
  return ncleaned;
}

//_____________________________________________________________________________
TF1* AliFlowEventSimple::SimplePtDepV2()
{
  //return a standard pt dependent v2 formula, user has to clean up!
  return new TF1("StandardPtDepV2","((x<1.0)*(0.05/1.0)*x+(x>=1.0)*0.05)");
}

//_____________________________________________________________________________
TF1* AliFlowEventSimple::SimplePtSpectrum()
{
  //return a standard pt spectrum, user has to clean up!
  return new TF1("StandardPtSpectrum","x*TMath::Exp(-pow(0.13957*0.13957+x*x,0.5)/0.4)",0.1,10.);
}

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