ROOT logo
//-*- Mode: C++ -*-

#include "TMath.h"
#include "TAxis.h"
#include "TSystem.h" 
#include "TFile.h" 
#include "TPRegexp.h"

#include "AliStack.h"
#include "AliMCEvent.h"
#include "AliMCParticle.h"
#include "AliESDtrackCuts.h"
#include "AliESDInputHandler.h"
#include "AliESDpid.h"
#include "AliAODInputHandler.h"
#include "AliAODEvent.h"
#include "AliAODMCParticle.h"
#include "AliCentrality.h"
#include "AliTracker.h"

#include "AliAnalysisNetParticleHelper.h"

using namespace std;

/**
 * Class for NetParticle Distributions
 * -- Helper class for net particle istributions
 * Authors: Jochen Thaeder <jochen@thaeder.de>
 *          Michael Weber <m.weber@cern.ch>
 */

ClassImp(AliAnalysisNetParticleHelper)

/*
 * ---------------------------------------------------------------------------------
 *                            particle names 
 * ---------------------------------------------------------------------------------
 */

  // MW make fgk ... static const
  const Char_t* aPartNames[AliPID::kSPECIES][2]             = {
    {"ele",     "posi"},
    {"mubar",   "mu"},
    {"pibar",   "pi"},
    {"kbar",    "k"},
    {"pbar",    "p"}
  };

  const Char_t* aPartTitles[AliPID::kSPECIES][2]            = {
    {"Electron",    "Positron"},
    {"Anti-Muon",   "Muon"},
    {"Anti-Pion",   "Proton"},
    {"Anti-Kaon",   "Kaon"},
    {"Anti-Proton", "Proton"}
  };

  const Char_t* aPartTitlesLatex[AliPID::kSPECIES][2]        = {
    {"e^{-}",   "e^{+}" },
    {"#mu^{-}", "#mu^{+}" },
    {"#pi^{-}", "#pi^{+}" },
    {"K^{-}",   "K^{+}" },
    {"#bar{p}", "p"}
  };

/*
 * ---------------------------------------------------------------------------------
 *                            Constructor / Destructor
 * ---------------------------------------------------------------------------------
 */

//________________________________________________________________________
AliAnalysisNetParticleHelper::AliAnalysisNetParticleHelper() :
  fModeDistCreation(0),

  fInputEventHandler(NULL),
  fPIDResponse(NULL),
  fESD(NULL),
  fESDTrackCuts(NULL),
  fAOD(NULL),
  fAODtrackCutBit(1024),
  fIsMC(kFALSE),
  fMCEvent(NULL),
  fStack(NULL),

  fCentralityBin(-1),
  fCentralityPercentile(-1.),

  fCentralityBinMax(7),
  fVertexZMax(10.),
  fRapidityMax(0.5),
  fPhiMin(0.),
  fPhiMax(TMath::TwoPi()),
  fMinTrackLengthMC(70.),
  fNSigmaMaxCdd(3.),
  fNSigmaMaxCzz(3.),

  fParticleSpecies(AliPID::kProton),

  fUsePID(kTRUE),
  fPIDStrategy(0),
  fNSigmaMaxITS(4.),
  fNSigmaMaxTPC(4.),
  fNSigmaMaxTPClow(3.),
  fNSigmaMaxTOF(4.),
  fMinPtForTOFRequired(0.69),
  fMaxPtForTPClow(0.69),

  fHEventStat0(NULL),
  fHEventStat1(NULL),
  fHEventStatMax(6),

  fHTriggerStat(NULL),
  fNTriggers(5),

  fHCentralityStat(NULL),
  fNCentralityBins(10),

  fNSubSamples(20),
  fSubSampleIdx(0),
  fRandom(NULL) {
  // Constructor   
  
  AliLog::SetClassDebugLevel("AliAnalysisNetParticleHelper",10);
}

const Float_t AliAnalysisNetParticleHelper::fgkfHistBinWitdthRap = 0.075;
const Float_t AliAnalysisNetParticleHelper::fgkfHistBinWitdthPt  = 0.3; // 0.08 // 300 MeV  // was 80 MeV

const Float_t AliAnalysisNetParticleHelper::fgkfHistRangeCent[]  = {-0.5, 8.5};
const Int_t   AliAnalysisNetParticleHelper::fgkfHistNBinsCent    = 9 ;

const Float_t AliAnalysisNetParticleHelper::fgkfHistRangeEta[]   = {-0.9, 0.9};
const Int_t   AliAnalysisNetParticleHelper::fgkfHistNBinsEta     = Int_t((AliAnalysisNetParticleHelper::fgkfHistRangeEta[1] -
									  AliAnalysisNetParticleHelper::fgkfHistRangeEta[0]) / 
									 AliAnalysisNetParticleHelper::fgkfHistBinWitdthRap) +1;

const Float_t AliAnalysisNetParticleHelper::fgkfHistRangeRap[]   = {-0.5, 0.5};
const Int_t   AliAnalysisNetParticleHelper::fgkfHistNBinsRap     = Int_t((AliAnalysisNetParticleHelper::fgkfHistRangeRap[1] -
									  AliAnalysisNetParticleHelper::fgkfHistRangeRap[0]) / 
									 AliAnalysisNetParticleHelper::fgkfHistBinWitdthRap) +1;

const Float_t AliAnalysisNetParticleHelper::fgkfHistRangePhi[]   = {0.0, static_cast<Float_t>(TMath::TwoPi())};
const Int_t   AliAnalysisNetParticleHelper::fgkfHistNBinsPhi     = 42 ;

const Float_t AliAnalysisNetParticleHelper::fgkfHistRangePt[]    = {0.2, 2.9}; // {0.2, 5.}; // was {0.3, 2.22}
const Int_t   AliAnalysisNetParticleHelper::fgkfHistNBinsPt      = Int_t((AliAnalysisNetParticleHelper::fgkfHistRangePt[1] -
									  AliAnalysisNetParticleHelper::fgkfHistRangePt[0]) / 
									 AliAnalysisNetParticleHelper::fgkfHistBinWitdthPt); 

const Float_t AliAnalysisNetParticleHelper::fgkfHistRangeSign[]  = {-1.5, 1.5};
const Int_t   AliAnalysisNetParticleHelper::fgkfHistNBinsSign    =  3;

const Char_t* AliAnalysisNetParticleHelper::fgkEventNames[]         = {"All", "IsTriggered", "HasVertex", "Vz<Vz_{Max}", "Centrality [0,90]%"};
const Char_t* AliAnalysisNetParticleHelper::fgkCentralityMaxNames[] = {"5", "10", "20", "30", "40", "50", "60", "70", "80", "90", "100"};
const Char_t* AliAnalysisNetParticleHelper::fgkTriggerNames[]       = {"kMB", "kCentral", "kSemiCentral", "kEMCEJE", "kEMCEGA" }; 
const Char_t* AliAnalysisNetParticleHelper::fgkCentralityNames[]    = {"0-5%", "5-10%", "10-20%", "20-30%", "30-40%", "40-50%", 
								       "50-60%", "60-70%", "70-80%", "80-90%", "90-100%"};

//________________________________________________________________________
AliAnalysisNetParticleHelper::~AliAnalysisNetParticleHelper() {
  // Destructor

  if (fRandom)
    delete fRandom;

  return;
}

/*
 * ---------------------------------------------------------------------------------
 *                                    Setter
 * ---------------------------------------------------------------------------------
 */

//________________________________________________________________________
void AliAnalysisNetParticleHelper::SetPhiRange(Float_t f1, Float_t f2) {
  // -- Set phi range and adopt to phi-histogram
  
  fPhiMin = f1; 
  fPhiMax = (f1 < f2) ? f2 : f2+TMath::TwoPi();

  Float_t phiMin = fPhiMin;
  Float_t phiMax = fPhiMax;
  
  // -- Update Ranges
  Float_t binWidth = (AliAnalysisNetParticleHelper::fgkfHistRangePhi[1] - AliAnalysisNetParticleHelper::fgkfHistRangePhi[0]) / 
    Float_t(AliAnalysisNetParticleHelper::fgkfHistNBinsPhi);

  Float_t lowEdge  = AliAnalysisNetParticleHelper::fgkfHistRangePhi[0] - binWidth;
  Float_t highEdge = AliAnalysisNetParticleHelper::fgkfHistRangePhi[0];

  for (Int_t ii = 1; ii <= AliAnalysisNetParticleHelper::fgkfHistNBinsPhi; ++ii) {
    lowEdge += binWidth;
    highEdge += binWidth;

    if (phiMin >= lowEdge && phiMin < highEdge ) 
      phiMin = lowEdge;
    if (phiMax > lowEdge && phiMax <= highEdge ) 
      phiMax = highEdge;
  }
  
  printf(">>>> Update Phi Range : [%f,%f] -> [%f,%f]\n", fPhiMin, fPhiMax, phiMin, phiMax);
  fPhiMin = phiMin;
  fPhiMax = phiMax;
}


//________________________________________________________________________
void AliAnalysisNetParticleHelper::SetParticleSpecies(AliPID::EParticleType pid) {
  // -- Set particle species (ID, Name, Title, Title LATEX)

  if ( Int_t(pid) < 0 || Int_t(pid) >= AliPID::kSPECIES) {  
    AliWarning("Particle ID not in AliPID::kSPECIES --> Set to protons");
    pid = AliPID::kProton;
  }  
  
  fParticleSpecies = pid;
  
  for (Int_t idxPart = 0; idxPart < 2; ++idxPart) {
    fPartName[idxPart]       = aPartNames[fParticleSpecies][idxPart];
    fPartTitle[idxPart]      = aPartTitles[fParticleSpecies][idxPart];
    fPartTitleLatex[idxPart] = aPartTitlesLatex[fParticleSpecies][idxPart];
  }
}

//________________________________________________________________________
void AliAnalysisNetParticleHelper::SetUsePID(Bool_t usePID) {
  // -- Set usage of PID
  //    > if turn off, set charge types (ID, Name, Title, Title LATEX)
  
  fUsePID = usePID;
  
  if (!usePID) {
    fParticleSpecies   = AliPID::kUnknown;

    fPartName[0]       = "neg";
    fPartName[1]       = "pos";
    fPartTitle[0]      = "Negative";
    fPartTitle[1]      = "Positive";
    fPartTitleLatex[0] = "Negative";
    fPartTitleLatex[1] = "Positive";
  }
}

/*
 * ---------------------------------------------------------------------------------
 *                                    Getter
 * ---------------------------------------------------------------------------------
 */

//________________________________________________________________________
TString AliAnalysisNetParticleHelper::GetParticleName(Int_t idxPart) {
  // -- Get particle Name

  if( idxPart != 0 && idxPart != 1){
    AliWarning("Particle type not known --> Set to antiparticles");
    idxPart = 0;
  }

  return fPartName[idxPart];
}

//________________________________________________________________________
TString AliAnalysisNetParticleHelper::GetParticleTitle(Int_t idxPart) {
  // -- Get particle Title

  if( idxPart != 0 && idxPart != 1){
    AliWarning("Particle type not known --> Set to antiparticles");
    idxPart = 0;
  }

  return fPartTitle[idxPart];
}

//________________________________________________________________________
TString AliAnalysisNetParticleHelper::GetParticleTitleLatex(Int_t idxPart) {
  // -- Get particle Title LATEX

  if( idxPart != 0 && idxPart != 1){
    AliWarning("Particle type not known --> Set to antiparticles");
    idxPart = 0;
  }

  return fPartTitleLatex[idxPart];
}

/*
 * ---------------------------------------------------------------------------------
 *                                 Public Methods
 * ---------------------------------------------------------------------------------
 */

//________________________________________________________________________
Int_t AliAnalysisNetParticleHelper::Initialize(AliESDtrackCuts *cuts, Bool_t isMC, Int_t trackCutBit, Int_t modeDistCreation) {
  // -- Initialize helper

  Int_t iResult = 0;

  // -- ESD track cuts
  fESDTrackCuts     = cuts;

  // -- Is MC
  fIsMC             = isMC;

  // -- AOD track filter bit
  fAODtrackCutBit   = trackCutBit;
    
  // -- mode Distribution creation
  fModeDistCreation = modeDistCreation;

  // -- Setup event cut statistics 
  InitializeEventStats();

  // -- Setup trigger statistics 
  InitializeTriggerStats();

  // -- Setup centrality statistics 
  InitializeCentralityStats();

  // -- PRINT PID Strategy
  //    0 :   TPC(TPClow+TPCHigh)
  //    1 :   ITS
  //    2 :   TOF
  //    3 :   ITS+TPC(TPClow+TPCHigh)
  //    4 :   TPC(TPClow+TPCHigh)+TOF
  //    5 :   TPC(TPClow+TPCHigh)+TOF for pT >= fMinPtForTOFRequired TOF is required, below, only used if there
  //    6 :   TPC(TPClow+TPCHigh)+ITS+TOF with TOF only for those tracks which have TOF information
  //    7 :   TPC(TPClow+TPCHigh)+ITS+TOF for pT >= fMinPtForTOFRequired TOF is required, below, only used if there
  //    8 :   TPC(TPClow+TPCHigh)+ITS+TOF 
  printf(">>>> USE PID %d || PID STRATEGY: %d || sigmaMax: ITS %.2f TPC %.2f TOF %.2f \n", fUsePID, fPIDStrategy, fNSigmaMaxITS, fNSigmaMaxTPC, fNSigmaMaxTOF);            
                      
  // -- Initialize random number generator
  fRandom = new TRandom3();
  fRandom->SetSeed();
                      
  return iResult;
}

//________________________________________________________________________
Int_t AliAnalysisNetParticleHelper::SetupEvent(AliESDInputHandler *esdHandler, AliAODInputHandler *aodHandler, AliMCEvent *mcEvent) {
  // -- Setup Event
  
  // -- Get ESD objects
  if(esdHandler){
    fInputEventHandler = static_cast<AliInputEventHandler*>(esdHandler);
    fESD               = dynamic_cast<AliESDEvent*>(fInputEventHandler->GetEvent());
    if (!fESD) {
      AliError("ESD event handler not available");
      return -1;
    }
  }

  // -- Get AOD objects
  else if(aodHandler){
    fInputEventHandler = static_cast<AliInputEventHandler*>(aodHandler);
    fAOD               = dynamic_cast<AliAODEvent*>(fInputEventHandler->GetEvent());
    if (!fAOD) {
      AliError("AOD event handler not available");
      return -1;
    }
  }

  // -- Get Common objects
  fPIDResponse = fInputEventHandler->GetPIDResponse();

  // -- Get MC objects
  fMCEvent     = mcEvent;
  if (fMCEvent)
    fStack     = fMCEvent->Stack();

  // -- Get event centrality
  // >  0-5|5-10|10-20|20-30|30-40|40-50|50-60|60-70|70-80|80-90 --> 10 bins
  // >   0   1     2     3     4     5     6     7     8     9

  AliCentrality *centrality = NULL;

  if(esdHandler)
    centrality = fESD->GetCentrality();
  else if(aodHandler)
    centrality = ((AliVAODHeader*)fAOD->GetHeader())->GetCentralityP();

  if (!centrality) {
    AliError("Centrality not available");
    return -1;
  }

  Int_t centBin = centrality->GetCentralityClass10("V0M");
  if (centBin == 0)
    fCentralityBin = centrality->GetCentralityClass5("V0M");
  else if (centBin == 10 || centBin == -1.)
    fCentralityBin = -1;
  else if (centBin > 0 && centBin < fNCentralityBins)
    fCentralityBin = centBin + 1;
  else
    fCentralityBin = -2;

  // -- Stay within the max centrality bin
  if (fCentralityBin >= fCentralityBinMax)
    fCentralityBin = -2;

  fCentralityPercentile = centrality->GetCentralityPercentile("V0M");

  // -- Get current subsample idx
  fSubSampleIdx = fRandom->Integer(fNSubSamples);

  return 0;
}

/*
 * ---------------------------------------------------------------------------------
 *                         Event / Trigger Statistics
 * ---------------------------------------------------------------------------------
 */

//________________________________________________________________________
Bool_t AliAnalysisNetParticleHelper::IsEventTriggered() {
  // -- Check if Event is triggered and fill Trigger Histogram
  
  Bool_t *aTriggerFired = new Bool_t[fNTriggers];
  for (Int_t ii = 0; ii < fNTriggers; ++ii)
    aTriggerFired[ii] = kFALSE;

  if ((fInputEventHandler->IsEventSelected() & AliVEvent::kMB))          aTriggerFired[0] = kTRUE;
  if ((fInputEventHandler->IsEventSelected() & AliVEvent::kCentral))     aTriggerFired[1] = kTRUE;
  if ((fInputEventHandler->IsEventSelected() & AliVEvent::kSemiCentral)) aTriggerFired[2] = kTRUE;
  if ((fInputEventHandler->IsEventSelected() & AliVEvent::kEMCEJE))      aTriggerFired[3] = kTRUE;
  if ((fInputEventHandler->IsEventSelected() & AliVEvent::kEMCEGA))      aTriggerFired[4] = kTRUE;

  Bool_t isTriggered = kFALSE;

  for (Int_t ii=0; ii<fNTriggers; ++ii) {
    if(aTriggerFired[ii]) {
      isTriggered = kTRUE;
      fHTriggerStat->Fill(ii);
    }
  }
  
  delete[] aTriggerFired;

  return isTriggered;
}

//________________________________________________________________________
Bool_t AliAnalysisNetParticleHelper::IsEventRejected() {
  // -- Evaluate event statistics histograms
    
  Int_t *aEventCuts = new Int_t[fHEventStatMax];
  // set aEventCuts[ii] to 1 in case of reject
  
  for (Int_t ii=0;ii<fHEventStatMax; ++ii)
    aEventCuts[ii] = 0;

  Int_t iCut = 0;

  // -- 0 - Before Physics Selection   
  aEventCuts[iCut] = 0;

  // -- 1 - No Trigger fired
  ++iCut;
  if (!IsEventTriggered())
    aEventCuts[iCut] = 1;

  // -- 2 - No Vertex 
  ++iCut;
  const AliESDVertex* vtxESD = NULL;
  const AliAODVertex* vtxAOD = NULL;
  if (fESD){
    vtxESD = fESD->GetPrimaryVertexTracks();
    if (!vtxESD)
      aEventCuts[iCut] = 1;
  }
  else if (fAOD){
    vtxAOD = fAOD->GetPrimaryVertex();
    if (!vtxAOD)
      aEventCuts[iCut] = 1;
  }

  // -- 3 - Vertex z outside cut window
  ++iCut;
  if (vtxESD){
    if(TMath::Abs(vtxESD->GetZ()) > fVertexZMax) 
      aEventCuts[iCut] = 1;
  }
  else if(vtxAOD){
    if(TMath::Abs(vtxAOD->GetZ()) > fVertexZMax) 
      aEventCuts[iCut] = 1;
  }
  else
    aEventCuts[iCut] = 1;

  // -- 4 - Centrality = -1  (no centrality or not hadronic)
  ++iCut;
  if(fCentralityBin == -1.) 
    aEventCuts[iCut] = 1;

  // -- 5 - Centrality < fCentralityMax
  ++iCut;
  if(fCentralityBin == -2.) 
    aEventCuts[iCut] = 1;

  // -- Fill statistics / reject event
  Bool_t isRejected = FillEventStats(aEventCuts);

  // -- Cleanup 
  delete[] aEventCuts;

  return isRejected;
}

/*
 * ---------------------------------------------------------------------------------
 *                         Accept Particle Methods - private
 * ---------------------------------------------------------------------------------
 */

//________________________________________________________________________
Bool_t AliAnalysisNetParticleHelper::IsParticleAcceptedBasicCharged(AliVParticle *particle, Int_t idxMC) {
  // -- Check if MC particle is accepted for basic parameters
  
  if (!particle) 
    return kFALSE;

  // -- check if charged
  if (particle->Charge() == 0.0) 
    return kFALSE;
  
  // -- check if physical primary - ESD
  if (fESD) {
    if(!fStack->IsPhysicalPrimary(idxMC)) 
      return kFALSE;
  }
  // -- check if physical primary - AOD
  else {
    if(!(static_cast<AliAODMCParticle*>(particle))->IsPhysicalPrimary()) 
      return kFALSE;
  }
  
  return kTRUE;
}

//________________________________________________________________________
Bool_t AliAnalysisNetParticleHelper::IsParticleAcceptedBasicNeutral(AliVParticle *particle, Int_t idxMC) {
  // -- Check if MC particle is accepted for basic parameters
  
  if (!particle) 
    return kFALSE;

  // -- check if charged
  if (particle->Charge() != 0.0) 
    return kFALSE;
  
  // -- check if physical primary - ESD
  if (fESD) {
    if(!fStack->IsPhysicalPrimary(idxMC)) 
      return kFALSE;
  }
  // -- check if physical primary - AOD
  else {
    if(!(static_cast<AliAODMCParticle*>(particle))->IsPhysicalPrimary()) 
      return kFALSE;
  }
  
  return kTRUE;
}

//________________________________________________________________________
Bool_t AliAnalysisNetParticleHelper::IsParticleAcceptedRapidity(AliVParticle *particle, Double_t &yP) {
  // -- Check if particle is accepted
  // > in rapidity
  // > if no pid : return kTRUE, yP = eta
  // > return 0 if not accepted

  if (!fUsePID) {
    yP = particle->Eta();
    return kTRUE;
  }

  Double_t mP = AliPID::ParticleMass(fParticleSpecies);

  // -- Calculate rapidities and kinematics
  Double_t p  = particle->P();
  Double_t pz = particle->Pz();

  Double_t eP = TMath::Sqrt(p*p + mP*mP);
  yP          = 0.5 * TMath::Log((eP + pz) / (eP - pz));  

  // -- Check Rapidity window
  if (TMath::Abs(yP) > fRapidityMax)
    return kFALSE;
  
  return kTRUE;
}

//________________________________________________________________________
Bool_t AliAnalysisNetParticleHelper::IsParticleAcceptedPhi(AliVParticle *particle) {
  // -- Check if particle is accepted
  // > in phi
  // > return 0 if not accepted
  
  if (particle->Phi() > fPhiMin && particle->Phi() <= fPhiMax)
    return kTRUE;
  else if (particle->Phi() < fPhiMin && (particle->Phi() + TMath::TwoPi()) <= fPhiMax)
    return kTRUE;
  else
    return kFALSE;
}

//_____________________________________________________________________________
Bool_t AliAnalysisNetParticleHelper::IsParticleFindable(Int_t label) {
  // -- Check if MC particle is findable tracks

  AliMCParticle *mcParticle = static_cast<AliMCParticle*>(fMCEvent->GetTrack(label));
  if(!mcParticle) 
    return kFALSE;
  
  Int_t counter; 
  Float_t tpcTrackLength = mcParticle->GetTPCTrackLength(AliTracker::GetBz(), 0.05, counter, 3.0); 

  return (tpcTrackLength > fMinTrackLengthMC);    
}

/*
 * ---------------------------------------------------------------------------------
 *                            Accept Track Methods - public
 * ---------------------------------------------------------------------------------
 */

//________________________________________________________________________
Bool_t AliAnalysisNetParticleHelper::IsTrackAcceptedBasicCharged(AliVTrack* track) {
  // -- Check if track is accepted 
  // > for basic parameters

  if (!track)
    return kFALSE;
  
  if (track->Charge() == 0) 
    return kFALSE;
  
  return kTRUE;
} 
 
//________________________________________________________________________
Bool_t AliAnalysisNetParticleHelper::IsTrackAcceptedRapidity(AliVTrack *track, Double_t &yP) {
  // -- Check if track is accepted
  // > in rapidity
  // > if no pid : return kTRUE
  // > return 0 if not accepted

  if (!fUsePID) {
    yP = track->Eta();
    return kTRUE;
  }
  
  Double_t mP = AliPID::ParticleMass(fParticleSpecies);

  // -- Calculate rapidities and kinematics
  Double_t pvec[3];
  track->GetPxPyPz(pvec);

  Double_t p  = track->P();
  Double_t eP = TMath::Sqrt(p*p + mP*mP);
           yP = 0.5 * TMath::Log((eP + pvec[2]) / (eP - pvec[2]));
  
  // -- Check Rapidity window
  if (TMath::Abs(yP) > fRapidityMax)
    return kFALSE;
  
  return kTRUE;
}

//________________________________________________________________________
Bool_t AliAnalysisNetParticleHelper::IsTrackAcceptedDCA(AliVTrack *vTrack) {
  // -- Check if track is accepted - ONLY FOR ESDs so far 
  // > for DCA, if both SPD layers have hits
  // > For now only Implemented for ESDs

  Bool_t isAccepted = kTRUE;

  if (!fESD)
    return isAccepted;

  AliESDtrack* track = dynamic_cast<AliESDtrack*>(vTrack);
  if (!track)
    return kFALSE;
  
  // -- Get nHits SPD
  if (track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)) {

    // -- Get DCA nSigmas
    Float_t dca[2], cov[3]; // dca_xy, dca_z, sigma_xy, sigma_xy_z, sigma_z
    track->GetImpactParameters(dca,cov);

    Float_t nSigmaCdd = (cov[0] != 0.) ? dca[0]/TMath::Sqrt(cov[0]) : -9.99; 
    Float_t nSigmaCzz = (cov[2] != 0.) ? dca[1]/TMath::Sqrt(cov[2]) : -9.99; 
    
    if (fNSigmaMaxCdd != 0.) {
      if (TMath::Abs(nSigmaCdd) > fNSigmaMaxCdd)
	isAccepted = kFALSE;
    }

    if (fNSigmaMaxCzz != 0.) {
      if (TMath::Abs(nSigmaCzz) > fNSigmaMaxCzz)
	isAccepted = kFALSE;
    }
  }

  return isAccepted;
}

//________________________________________________________________________
Bool_t AliAnalysisNetParticleHelper::IsTrackAcceptedPID(AliVTrack *track, Double_t* pid) {
  // -- Check if track is accepted 
  // > provides ITS, TPC and TOF nSigmas to the argument

  Bool_t isAcceptedITS    = kFALSE;
  Bool_t isAcceptedTPC    = kFALSE;
  Bool_t isAcceptedTPClow = kFALSE;
  Bool_t isAcceptedTOF    = kFALSE;
  Bool_t isAccepted       = kFALSE;

  // -- In case not PID is used
  if (!fUsePID) {
    pid[0] = 10.;
    pid[1] = 10.;
    pid[2] = 10.;
    return kTRUE;
  }
  
  // -- Get PID with ITS and check
  if (fPIDResponse->NumberOfSigmas(AliPIDResponse::kITS, track, fParticleSpecies, pid[0]) == AliPIDResponse::kDetPidOk) {
    if (TMath::Abs(pid[0]) < fNSigmaMaxITS) 
      isAcceptedITS = kTRUE;
  }

  // -- Get PID with TPC and check
  if (fPIDResponse->NumberOfSigmas(AliPIDResponse::kTPC, track, fParticleSpecies, pid[1]) == AliPIDResponse::kDetPidOk) {
    if (TMath::Abs(pid[1]) < fNSigmaMaxTPC) 
      isAcceptedTPC = kTRUE;
    if (TMath::Abs(pid[1]) < fNSigmaMaxTPClow) 
      isAcceptedTPClow = kTRUE;
    if (track->Pt() < fMaxPtForTPClow)
      isAcceptedTPC = isAcceptedTPClow;
  }

  // -- Get PID with TOF and check
  Bool_t hasPIDTOF = kFALSE;
  if (fPIDResponse->NumberOfSigmas(AliPIDResponse::kTOF, track, fParticleSpecies, pid[2]) == AliPIDResponse::kDetPidOk) {
    hasPIDTOF = kTRUE;
    if (TMath::Abs(pid[2]) < fNSigmaMaxTOF) 
      isAcceptedTOF = kTRUE;
  }

  // -- Check TOF missmatch for MC
  
  //if (ESD)
  if (fIsMC && isAcceptedTOF) {
    Int_t tofLabel[3];                                                                                                                                        
    //    AliESDtrack* track = dynamic_cast<AliESDtrack*>(vTrack);
    // TODO add code for AOD 

    (dynamic_cast<AliESDtrack*>(track))->GetTOFLabel(tofLabel);
   
    Bool_t hasMatchTOF = kTRUE;
    if (TMath::Abs(track->GetLabel()) != TMath::Abs(tofLabel[0]) || tofLabel[1] > 0) 
      hasMatchTOF = kFALSE;

    TParticle *matchedTrack = fStack->Particle(TMath::Abs(tofLabel[0]));
    if (TMath::Abs(matchedTrack->GetFirstMother()) == TMath::Abs(track->GetLabel())) 
      hasMatchTOF = kTRUE;

    isAcceptedTOF = hasMatchTOF;
  }

  //    0 :   TPC(TPClow+TPCHigh)
  //    1 :   ITS
  //    2 :   TOF
  //    3 :   ITS+TPC(TPClow+TPCHigh)
  //    4 :   TPC(TPClow+TPCHigh)+TOF
  //    5 :   TPC(TPClow+TPCHigh)+TOF for pT >= fMinPtForTOFRequired TOF is required, below, only used if there
  //    6 :   TPC(TPClow+TPCHigh)+ITS+TOF with TOF only for those tracks which have TOF information
  //    7 :   TPC(TPClow+TPCHigh)+ITS+TOF for pT >= fMinPtForTOFRequired TOF is required, below, only used if there
  //    8 :   TPC(TPClow+TPCHigh)+ITS+TOF 
  if (fPIDStrategy == 0) {             //  TPC PID
    isAccepted = isAcceptedTPC;
  }
  else if (fPIDStrategy == 1) {        //  ITS PID
    isAccepted = isAcceptedITS;
  }
  else if (fPIDStrategy == 2) {        //  TOF PID
    isAccepted = isAcceptedTOF;
  }
  else if (fPIDStrategy == 3) {        //  TPC+ITS PID
    isAccepted = isAcceptedTPC && isAcceptedITS;
  }
  else if (fPIDStrategy == 4) {        //  TPC+TOF PID
    isAccepted = isAcceptedTPC && isAcceptedTOF;
  }
  else if (fPIDStrategy == 5) {        //  TPC+TOF PID -- for pT >= fMinPtForTOFRequired TOF is required
    if (!hasPIDTOF && track->Pt() < fMinPtForTOFRequired) 
      isAcceptedTOF = kTRUE;
    isAccepted = isAcceptedTPC && isAcceptedTOF;
  }
  else if (fPIDStrategy == 6) {        //  ITS+TPC+TOF PID -- TOF only for those tracks which have TOF information
    isAccepted = isAcceptedTPC && isAcceptedITS;
    if (hasPIDTOF)
      isAccepted = isAccepted && isAcceptedTOF;
  }
  else if (fPIDStrategy == 7) {        //  ITS+TPC+TOF PID -- for pT >= fMinPtForTOFRequired TOF is required
    if (!hasPIDTOF && track->Pt() < fMinPtForTOFRequired)
      isAcceptedTOF = kTRUE;
    isAccepted = isAcceptedITS && isAcceptedTPC && isAcceptedTOF;
  }
  else if (fPIDStrategy == 8) {        //  ITS+TPC+TOF PID
    isAccepted = isAcceptedITS && isAcceptedTPC && isAcceptedTOF;
  }

  return isAccepted;
}

//________________________________________________________________________
Bool_t AliAnalysisNetParticleHelper::IsTrackAcceptedPhi(AliVTrack *track) {
  // -- Check if track is accepted
  // > in phi
  // > return 0 if not accepted
  
  if (track->Phi() > fPhiMin && track->Phi() <= fPhiMax)
    return kTRUE;
  else if (track->Phi() < fPhiMin && (track->Phi() + TMath::TwoPi()) <= fPhiMax)
    return kTRUE;
  else
    return kFALSE;
}

/*
 * ---------------------------------------------------------------------------------
 *                         Helper Methods
 * ---------------------------------------------------------------------------------
 */

//________________________________________________________________________
void AliAnalysisNetParticleHelper::BinLogAxis(const THnBase *hn, Int_t axisNumber, AliESDtrackCuts* cuts) {
  // -- Method for the correct logarithmic binning of histograms
  // -- and update fMinPtForTOFRequired using the logarithmic scale
  
  AliESDtrackCuts* esdTrackCuts = (cuts) ? cuts : fESDTrackCuts;

  // -- Make logarithmic binning 
  TAxis *axis = hn->GetAxis(axisNumber);
  Int_t  nBins = axis->GetNbins();

  Double_t from  = axis->GetXmin();
  Double_t to    = axis->GetXmax();
  Double_t *newBins = new Double_t[nBins + 1];
   
  newBins[0] = from;
  Double_t factor = TMath::Power(to/from, 1./nBins);
  
  for (int ii = 1; ii <= nBins; ii++)
   newBins[ii] = factor * newBins[ii-1];
  
  axis->Set(nBins, newBins);

  delete [] newBins;

  // -- Update Ranges
  // ------------------
  Float_t ptRange[2];
  Float_t oldPtRange[2];
  esdTrackCuts->GetPtRange(ptRange[0],ptRange[1]);
  esdTrackCuts->GetPtRange(oldPtRange[0],oldPtRange[1]);

  Float_t minPtForTOFRequired = fMinPtForTOFRequired;
  Float_t maxPtForTPClow      = fMaxPtForTPClow;

  // -- Update minPt Cut
  Int_t bin = axis->FindBin(ptRange[0]+10e-6);
  ptRange[0] = axis->GetBinLowEdge(bin); 

  // -- Update maxPt Cut
  bin = axis->FindBin(ptRange[1]-10e-6);
  ptRange[1] = axis->GetBinUpEdge(bin); 

  if (ptRange[0] != oldPtRange[0] || ptRange[1] != oldPtRange[1]) {
    printf(">>>> Update Pt Range : [%f,%f] -> [%f,%f]\n", oldPtRange[0], oldPtRange[1], ptRange[0], ptRange[1]);
    esdTrackCuts->SetPtRange(ptRange[0],ptRange[1]);
  }

  // -- Update MinPtForTOFRequired
  bin = axis->FindBin(minPtForTOFRequired-10e-6);
  minPtForTOFRequired = axis->GetBinUpEdge(bin); 

  if (minPtForTOFRequired != fMinPtForTOFRequired) {
    printf(">>>> Update Min Pt for TOF : %f -> %f\n", fMinPtForTOFRequired, minPtForTOFRequired);
    fMinPtForTOFRequired = minPtForTOFRequired;
  }

  // -- Update MaxPtForTPClow
  bin = axis->FindBin(maxPtForTPClow-10e-6);
  maxPtForTPClow = axis->GetBinUpEdge(bin); 

  if (maxPtForTPClow != fMaxPtForTPClow) {
    printf(">>>> Update Max Pt for TPC Low : %f -> %f\n", fMaxPtForTPClow, maxPtForTPClow);
    fMaxPtForTPClow = maxPtForTPClow;
  }
}

///////////////////////////////////////////////////////////////////////////////////

/*
 * ---------------------------------------------------------------------------------
 *                           Initialize - Private
 * ---------------------------------------------------------------------------------
 */

//________________________________________________________________________
void AliAnalysisNetParticleHelper::InitializeEventStats() {
  // -- Initialize event statistics histograms

  fHEventStat0 = new TH1F("hEventStat0","Event cut statistics 0;Event Cuts;Events", fHEventStatMax,-0.5,fHEventStatMax-0.5);
  fHEventStat1 = new TH1F("hEventStat1","Event cut statistics 1;Event Cuts;Events", fHEventStatMax,-0.5,fHEventStatMax-0.5);

  for ( Int_t ii=0; ii < fHEventStatMax-1; ii++ ) {
    fHEventStat0->GetXaxis()->SetBinLabel(ii+1, AliAnalysisNetParticleHelper::fgkEventNames[ii]);
    fHEventStat1->GetXaxis()->SetBinLabel(ii+1, AliAnalysisNetParticleHelper::fgkEventNames[ii]);
  }

  fHEventStat0->GetXaxis()->SetBinLabel(fHEventStatMax, Form("Centrality [0-%s]%%", AliAnalysisNetParticleHelper::fgkCentralityMaxNames[fCentralityBinMax-1]));
  fHEventStat1->GetXaxis()->SetBinLabel(fHEventStatMax, Form("Centrality [0-%s]%%", AliAnalysisNetParticleHelper::fgkCentralityMaxNames[fCentralityBinMax-1]));
}

//________________________________________________________________________
void AliAnalysisNetParticleHelper::InitializeTriggerStats() {
  // -- Initialize trigger statistics histograms

  fHTriggerStat = new TH1F("hTriggerStat","Trigger statistics;Trigger;Events", fNTriggers,-0.5,fNTriggers-0.5);

  for ( Int_t ii=0; ii < fNTriggers; ii++ )
    fHTriggerStat->GetXaxis()->SetBinLabel(ii+1, AliAnalysisNetParticleHelper::fgkTriggerNames[ii]);
}

//________________________________________________________________________
void AliAnalysisNetParticleHelper::InitializeCentralityStats() {
  // -- Initialize trigger statistics histograms

  fHCentralityStat = new TH1F("hCentralityStat","Centrality statistics;Centrality Bins;Events", 
			      fNCentralityBins,-0.5,fNCentralityBins-0.5);

  for ( Int_t ii=0; ii < fNCentralityBins; ii++ )
    fHCentralityStat->GetXaxis()->SetBinLabel(ii+1, AliAnalysisNetParticleHelper::fgkCentralityNames[ii]);
}

/*
 * ---------------------------------------------------------------------------------
 *                         Event / Trigger Statistics - private
 * ---------------------------------------------------------------------------------
 */
  
//________________________________________________________________________
Bool_t AliAnalysisNetParticleHelper::FillEventStats(Int_t *aEventCuts) {
  // -- Fill event / centrality statistics 

  Bool_t isRejected = kFALSE;

  // -- Fill event statistics
  for (Int_t idx = 0; idx < fHEventStatMax ; ++idx) {

    if (aEventCuts[idx])
      isRejected = kTRUE;
    else
      fHEventStat0->Fill(idx);
  }
  
  for (Int_t idx = 0; idx < fHEventStatMax; ++idx) {
    if (aEventCuts[idx])
      break;
    fHEventStat1->Fill(idx);
  }

  // -- Fill centrality statistics of accepted events
  if (!isRejected)
    fHCentralityStat->Fill(fCentralityBin);

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