ROOT logo
/* $Id$ */

#include <AliPWG0Helper.h>

#include <TParticle.h>
#include <TParticlePDG.h>
#include <TH1.h>
#include <TH2.h>
#include <TH3.h>
#include <TList.h>
#include <TTree.h>
#include <TBranch.h>
#include <TLeaf.h>

#include <AliHeader.h>
#include <AliStack.h>

#include <AliLog.h>
#include <AliESD.h>
#include <AliESDEvent.h>
#include <AliESDVertex.h>
#include <AliESDRun.h>
#include <AliVertexerTracks.h>
#include <AliMultiplicity.h>

#include <AliGenEventHeader.h>
#include <AliGenPythiaEventHeader.h>
#include <AliGenCocktailEventHeader.h>
#include <AliGenDPMjetEventHeader.h>
#include <AliESDVZERO.h>

//____________________________________________________________________
ClassImp(AliPWG0Helper)

Int_t AliPWG0Helper::fgLastProcessType = -1;

//____________________________________________________________________
Bool_t AliPWG0Helper::TestVertex(const AliESDVertex* vertex, AnalysisMode analysisMode, Bool_t debug)
{
    // Checks if a vertex meets the needed quality criteria

  Float_t requiredZResolution = -1;
  if (analysisMode & kSPD || analysisMode & kTPCITS || analysisMode & kTPCSPD)
  {
    // disable cut on resolution
    requiredZResolution = 1000;
  }
  else if (analysisMode & kTPC)
    requiredZResolution = 10.;

  // check resolution
  Double_t zRes = vertex->GetZRes();

  if (zRes > requiredZResolution) {
    if (debug)
      Printf("AliPWG0Helper::TestVertex: Resolution too poor %f (required: %f", zRes, requiredZResolution);
    return kFALSE;
  }
  
  if (vertex->IsFromVertexerZ())
  {
    if (vertex->GetDispersion() > 0.02) 
    {
      if (debug)
        Printf("AliPWG0Helper::TestVertex: Delta Phi too large in Vertexer Z: %f (required: %f", vertex->GetDispersion(), 0.02);
      return kFALSE;
    }
  }

  return kTRUE;
}

//____________________________________________________________________
const AliESDVertex* AliPWG0Helper::GetVertex(const AliESDEvent* aEsd, AnalysisMode analysisMode, Bool_t debug)
{
  // Get the vertex from the ESD and returns it if the vertex is valid
  //
  // Second argument decides which vertex is used (this selects
  // also the quality criteria that are applied)

  const AliESDVertex* vertex = 0;
  if (analysisMode & kSPD)
  {
    vertex = aEsd->GetPrimaryVertexSPD();
    if (debug)
      Printf("AliPWG0Helper::GetVertex: Returning SPD vertex");
  }
  else if (analysisMode & kTPCITS || analysisMode & kTPCSPD)
  {
    vertex = aEsd->GetPrimaryVertexTracks();
    if (debug)
      Printf("AliPWG0Helper::GetVertex: Returning vertex from tracks");
    if (!vertex || vertex->GetNContributors() <= 0)
    {
      if (debug)
        Printf("AliPWG0Helper::GetVertex: Vertex from tracks has no contributors. Falling back to SPD vertex.");
      vertex = aEsd->GetPrimaryVertexSPD();
    }
  }
  else if (analysisMode & kTPC)
  {
    vertex = aEsd->GetPrimaryVertexTPC();
    if (debug)
      Printf("AliPWG0Helper::GetVertex: Returning vertex from TPC-only tracks");
  }
  else
    Printf("AliPWG0Helper::GetVertex: ERROR: Invalid second argument %d", analysisMode);

  if (!vertex) {
    if (debug)
      Printf("AliPWG0Helper::GetVertex: No vertex found in ESD");
    return 0;
  }

  // check Ncontributors
  if (vertex->GetNContributors() <= 0) {
    if (debug){
      Printf("AliPWG0Helper::GetVertex: NContributors() <= 0: %d",vertex->GetNContributors());
      Printf("AliPWG0Helper::GetVertex: NIndices(): %d",vertex->GetNIndices());
      vertex->Print();
    }
    return 0;
  }

  // check resolution
  Double_t zRes = vertex->GetZRes();
  if (zRes == 0) {
    Printf("AliPWG0Helper::GetVertex: UNEXPECTED: resolution is 0.");
    return 0;
  }

  if (debug)
  {
    Printf("AliPWG0Helper::GetVertex: Returning valid vertex: %s", vertex->GetTitle());
    vertex->Print();
  }

  return vertex;
}

//____________________________________________________________________
Bool_t AliPWG0Helper::IsPrimaryCharged(TParticle* aParticle, Int_t aTotalPrimaries, Bool_t adebug)
{
  //
  // this function checks if a particle from the event generator (i.e. among the nPrim particles in the stack)
  // shall be counted as a primary particle
  //
  // This function or a equivalent should be available in some common place of AliRoot
  //
  // WARNING: Call this function only for particles that are among the particles from the event generator!
  // --> stack->Particle(id) with id < stack->GetNprimary()

  // if the particle has a daughter primary, we do not want to count it
  if (aParticle->GetFirstDaughter() != -1 && aParticle->GetFirstDaughter() < aTotalPrimaries)
  {
    if (adebug)
      printf("Dropping particle because it has a daughter among the primaries.\n");
    return kFALSE;
  }

  Int_t pdgCode = TMath::Abs(aParticle->GetPdgCode());
  

  // skip quarks and gluon
  if (pdgCode <= 10 || pdgCode == 21)
  {
    if (adebug)
      printf("Dropping particle because it is a quark or gluon.\n");
    return kFALSE;
  }

  Int_t status = aParticle->GetStatusCode();
  // skip non final state particles..
  if(status!=1){
    if (adebug)
      printf("Dropping particle because it is not a final state particle.\n");
    return kFALSE;
  }

  if (strcmp(aParticle->GetName(),"XXX") == 0)
  {
    Printf("WARNING: There is a particle named XXX (pdg code %d).", pdgCode);
    return kFALSE;
  }

  TParticlePDG* pdgPart = aParticle->GetPDG();

  if (strcmp(pdgPart->ParticleClass(),"Unknown") == 0)
  {
    Printf("WARNING: There is a particle with an unknown particle class (pdg code %d).", pdgCode);
    return kFALSE;
  }

  if (pdgPart->Charge() == 0)
  {
    if (adebug)
      printf("Dropping particle because it is not charged.\n");
    return kFALSE;
  }

  return kTRUE;
}

//____________________________________________________________________
void AliPWG0Helper::CreateProjections(TH3* hist, Bool_t save)
{
  // create projections of 3d hists to all 2d combinations
  // the histograms are not returned, just use them from memory or use this to create them in a file

  TH1* proj = hist->Project3D("yx");
  proj->SetXTitle(hist->GetXaxis()->GetTitle());
  proj->SetYTitle(hist->GetYaxis()->GetTitle());
  if (save)
    proj->Write();

  proj = hist->Project3D("zx");
  proj->SetXTitle(hist->GetXaxis()->GetTitle());
  proj->SetYTitle(hist->GetZaxis()->GetTitle());
  if (save)
    proj->Write();

  proj = hist->Project3D("zy");
  proj->SetXTitle(hist->GetYaxis()->GetTitle());
  proj->SetYTitle(hist->GetZaxis()->GetTitle());
  if (save)
    proj->Write();
}

//____________________________________________________________________
void AliPWG0Helper::CreateDividedProjections(TH3* hist, TH3* hist2, const char* axis, Bool_t putErrors, Bool_t save)
{
  // create projections of the 3d hists divides them
  // axis decides to which plane, if axis is 0 to all planes
  // the histograms are not returned, just use them from memory or use this to create them in a file

  if (axis == 0)
  {
    CreateDividedProjections(hist, hist2, "yx", putErrors, save);
    CreateDividedProjections(hist, hist2, "zx", putErrors, save);
    CreateDividedProjections(hist, hist2, "zy", putErrors, save);

    return;
  }

  TH1* proj = hist->Project3D(axis);

  if (strlen(axis) == 2)
  {
    proj->SetYTitle(GetAxisTitle(hist, axis[0]));
    proj->SetXTitle(GetAxisTitle(hist, axis[1]));
  }
  else if (strlen(axis) == 1)
    proj->SetXTitle(GetAxisTitle(hist, axis[0]));

  TH1* proj2 = hist2->Project3D(axis);
  if (strlen(axis) == 2)
  {
    proj2->SetYTitle(GetAxisTitle(hist2, axis[0]));
    proj2->SetXTitle(GetAxisTitle(hist2, axis[1]));
  }
  else if (strlen(axis) == 1)
    proj2->SetXTitle(GetAxisTitle(hist2, axis[0]));

  TH1* division = static_cast<TH1*> (proj->Clone(Form("%s_div_%s", proj->GetName(), proj2->GetName())));
  //printf("doing axis: %s, x axis has %d %d bins, min %f %f max %f %f\n", axis, division->GetNbinsX(), proj2->GetNbinsX(), division->GetXaxis()->GetBinLowEdge(1), proj2->GetXaxis()->GetBinLowEdge(1), division->GetXaxis()->GetBinUpEdge(division->GetNbinsX()), proj2->GetXaxis()->GetBinUpEdge(proj2->GetNbinsX()));
  //printf("doing axis: %s, y axis has %d %d bins, min %f %f max %f %f\n", axis, division->GetNbinsY(), proj2->GetNbinsY(), division->GetYaxis()->GetBinLowEdge(1), proj2->GetYaxis()->GetBinLowEdge(1), division->GetYaxis()->GetBinUpEdge(division->GetNbinsY()), proj2->GetYaxis()->GetBinUpEdge(proj2->GetNbinsY()));
  division->Divide(proj, proj2, 1, 1, "B");
  division->SetTitle(Form("%s divided %s", proj->GetTitle(), proj2->GetTitle()));

  if (putErrors)
  {
    division->Sumw2();
    if (division->GetDimension() == 1)
    {
      Int_t nBins = division->GetNbinsX();
      for (Int_t i = 1; i <= nBins; ++i)
        if (proj2->GetBinContent(i) != 0)
          division->SetBinError(i, TMath::Sqrt(proj->GetBinContent(i)) / proj2->GetBinContent(i));
    }
    else if (division->GetDimension() == 2)
    {
      Int_t nBinsX = division->GetNbinsX();
      Int_t nBinsY = division->GetNbinsY();
      for (Int_t i = 1; i <= nBinsX; ++i)
        for (Int_t j = 1; j <= nBinsY; ++j)
          if (proj2->GetBinContent(i, j) != 0)
            division->SetBinError(i, j, TMath::Sqrt(proj->GetBinContent(i, j)) / proj2->GetBinContent(i, j));
    }
  }

  if (save)
  {
    proj->Write();
    proj2->Write();
    division->Write();
  }
}

//____________________________________________________________________
const char* AliPWG0Helper::GetAxisTitle(TH3* hist, const char axis)
{
  // returns the title of the axis given in axis (x, y, z)

  if (axis == 'x')
    return hist->GetXaxis()->GetTitle();
  else if (axis == 'y')
    return hist->GetYaxis()->GetTitle();
  else if (axis == 'z')
    return hist->GetZaxis()->GetTitle();

  return 0;
}


AliPWG0Helper::MCProcessType AliPWG0Helper::GetPythiaEventProcessType(AliGenEventHeader* aHeader, Bool_t adebug) {

  AliGenPythiaEventHeader* pythiaGenHeader = dynamic_cast<AliGenPythiaEventHeader*>(aHeader);

  if (!pythiaGenHeader) {
    printf("AliPWG0Helper::GetProcessType : Unknown gen Header type). \n");
    return kInvalidProcess;
  }


  Int_t pythiaType = pythiaGenHeader->ProcessType();
  fgLastProcessType = pythiaType;
  MCProcessType globalType = kInvalidProcess;  


  if (adebug) {
    printf("AliPWG0Helper::GetProcessType : Pythia process type found: %d \n",pythiaType);
  }


  if(pythiaType==92||pythiaType==93){
    globalType = kSD;
  }
  else if(pythiaType==94){
    globalType = kDD;
  }
  //else if(pythiaType != 91){ // also exclude elastic to be sure... CKB??
  else {
    globalType = kND;
  }
  return globalType;
}


AliPWG0Helper::MCProcessType AliPWG0Helper::GetDPMjetEventProcessType(AliGenEventHeader* aHeader, Bool_t adebug) {
  //
  // get the process type of the event.
  //

  // can only read pythia headers, either directly or from cocktalil header
  AliGenDPMjetEventHeader* dpmJetGenHeader = dynamic_cast<AliGenDPMjetEventHeader*>(aHeader);

  if (!dpmJetGenHeader) {
    printf("AliPWG0Helper::GetDPMjetProcessType : Unknown header type (not DPMjet or). \n");
    return kInvalidProcess;
  }

  Int_t dpmJetType = dpmJetGenHeader->ProcessType();
  fgLastProcessType = dpmJetType;
  MCProcessType globalType = kInvalidProcess;  


  if (adebug) {
    printf("AliPWG0Helper::GetDPMJetProcessType : DPMJet process type found: %d \n",dpmJetType);
  }


  if (dpmJetType == 1 || dpmJetType == 4) { // explicitly inelastic plus central diffraction
    globalType = kND;
  }  
  else if (dpmJetType==5 || dpmJetType==6) {
    globalType = kSD;
  }
  else if (dpmJetType==7) {
    globalType = kDD;
  }
  return globalType;
}


AliPWG0Helper::MCProcessType AliPWG0Helper::GetEventProcessType(AliHeader* aHeader, Bool_t adebug) {
  //
  // get the process type of the event.
  //


  // Check for simple headers first

  AliGenPythiaEventHeader* pythiaGenHeader = dynamic_cast<AliGenPythiaEventHeader*>(aHeader->GenEventHeader());
  if (pythiaGenHeader) {
    return GetPythiaEventProcessType(pythiaGenHeader,adebug);
  }

  AliGenDPMjetEventHeader* dpmJetGenHeader = dynamic_cast<AliGenDPMjetEventHeader*>(aHeader->GenEventHeader());
  if (dpmJetGenHeader) {
    return GetDPMjetEventProcessType(dpmJetGenHeader,adebug);
  }
  

  // check for cocktail

  AliGenCocktailEventHeader* genCocktailHeader = dynamic_cast<AliGenCocktailEventHeader*>(aHeader->GenEventHeader());
  if (!genCocktailHeader) {
    printf("AliPWG0Helper::GetProcessType : Unknown header type (not Pythia or Cocktail). \n");
    return kInvalidProcess;
  }

  TList* headerList = genCocktailHeader->GetHeaders();
  if (!headerList) {
    return kInvalidProcess;
  }

  for (Int_t i=0; i<headerList->GetEntries(); i++) {

    pythiaGenHeader = dynamic_cast<AliGenPythiaEventHeader*>(headerList->At(i));
    if (pythiaGenHeader) {
      return GetPythiaEventProcessType(pythiaGenHeader,adebug);
    }

    dpmJetGenHeader = dynamic_cast<AliGenDPMjetEventHeader*>(headerList->At(i));
    if (dpmJetGenHeader) {
      return GetDPMjetEventProcessType(dpmJetGenHeader,adebug);
    }
  }
  return kInvalidProcess;
}



//____________________________________________________________________
TParticle* AliPWG0Helper::FindPrimaryMother(AliStack* stack, Int_t label)
{
  //
  // Finds the first mother among the primary particles of the particle identified by <label>,
  // i.e. the primary that "caused" this particle
  //

  Int_t motherLabel = FindPrimaryMotherLabel(stack, label);
  if (motherLabel < 0)
    return 0;

  return stack->Particle(motherLabel);
}

//____________________________________________________________________
Int_t AliPWG0Helper::FindPrimaryMotherLabel(AliStack* stack, Int_t label)
{
  //
  // Finds the first mother among the primary particles of the particle identified by <label>,
  // i.e. the primary that "caused" this particle
  //
  // returns its label
  //

  Int_t nPrim  = stack->GetNprimary();

  while (label >= nPrim)
  {
    //printf("Particle %d (pdg %d) is not a primary. Let's check its mother %d\n", label, mother->GetPdgCode(), mother->GetMother(0));

    TParticle* particle = stack->Particle(label);
    if (!particle)
    {
      AliDebugGeneral("FindPrimaryMother", AliLog::kError, Form("UNEXPECTED: particle with label %d not found in stack.", label));
      return -1;
    }
 
    // find mother
    if (particle->GetMother(0) < 0)
    {
      AliDebugGeneral("FindPrimaryMother", AliLog::kError, Form("UNEXPECTED: Could not find mother of secondary particle %d.", label));
      return -1;
    }

    label = particle->GetMother(0);
  }

  return label;
}

//____________________________________________________________________
void AliPWG0Helper::NormalizeToBinWidth(TH1* hist)
{
  //
  // normalizes a 1-d histogram to its bin width
  //

  for (Int_t i=1; i<=hist->GetNbinsX(); ++i)
  {
    hist->SetBinContent(i, hist->GetBinContent(i) / hist->GetBinWidth(i));
    hist->SetBinError(i, hist->GetBinError(i) / hist->GetBinWidth(i));
  }
}

//____________________________________________________________________
void AliPWG0Helper::NormalizeToBinWidth(TH2* hist)
{
  //
  // normalizes a 2-d histogram to its bin width (x width * y width)
  //

  for (Int_t i=1; i<=hist->GetNbinsX(); ++i)
    for (Int_t j=1; j<=hist->GetNbinsY(); ++j)
    {
      Double_t factor = hist->GetXaxis()->GetBinWidth(i) * hist->GetYaxis()->GetBinWidth(j);
      hist->SetBinContent(i, j, hist->GetBinContent(i, j) / factor);
      hist->SetBinError(i, j, hist->GetBinError(i, j) / factor);
    }
}

//____________________________________________________________________
void AliPWG0Helper::PrintConf(AnalysisMode analysisMode, AliTriggerAnalysis::Trigger trigger, AliPWG0Helper::DiffTreatment diffTreatment)
{
  //
  // Prints the given configuration
  //

  TString str(">>>> Running with >");

  if (analysisMode & kSPD)
    str += "SPD-only";
    
  if (analysisMode & kSPDOnlyL0)
    str += " (only L0 clusters)";
  
  if (analysisMode & kTPC)
     str += "TPC-only";
    
  if (analysisMode & kTPCITS)
     str += "Global tracking";
  
  if (analysisMode & kTPCSPD) 
    str += "Tracks and tracklets";

  if (analysisMode & kFieldOn)
  {
     str += " (with field)";
  }
  else
     str += " (WITHOUT field)";
  
  str += "< and trigger >";
  str += AliTriggerAnalysis::GetTriggerName(trigger);
  str += "< and diffractive treatment >";
  
  switch (diffTreatment)
  {
    case kMCFlags:
      str += "MC flags";
      break;
    
    case kUA5Cuts:
      str += "UA5 cuts";
      break;
       
    case kE710Cuts:
      str += "E710 cuts";
      break;
    
    case kALICEHadronLevel:
      str += "ALICE hadron level";
      break;
  }
  
  str += "< <<<<";

  Printf("%s", str.Data());
}

//____________________________________________________________________
Double_t AliPWG0Helper::Rapidity(Double_t pt, Double_t pz, Double_t m)
{
  //
  // calculates rapidity keeping the sign in case E == pz
  //

  Double_t energy = TMath::Sqrt(pt*pt+pz*pz+m*m);
  if (energy != TMath::Abs(pz))
    return 0.5*TMath::Log((energy+pz)/(energy-pz));

  Printf("W- mt=0");
  return TMath::Sign(1.e30,pz);
}

//____________________________________________________________________
Bool_t AliPWG0Helper::IsHadronLevelSingleDiffractive(AliStack* stack, Float_t cms, Float_t xiMin, Float_t xiMax)
{
  //
  // return if process is single diffractive on hadron level
  // 
  // xiMax and xiMin cut on M^2/s
  //
  // Based on code from Martin Poghoysan
  //
  
  TParticle* part1 = 0;
  TParticle* part2 = 0;
  
  Double_t smallestY = 1e10;
  Double_t largestY  = -1e10;
  
  for (Int_t iParticle = 0; iParticle < stack->GetNprimary(); iParticle++)
  {
    TParticle* part = stack->Particle(iParticle);
    if (!part)
      continue;

    Int_t pdg = TMath::Abs(part->GetPdgCode());

    Int_t child1 = part->GetFirstDaughter();
    Int_t ist    = part->GetStatusCode();

    Int_t mfl  = Int_t (pdg / TMath::Power(10, Int_t(TMath::Log10(pdg))));
    if (child1 > -1 || ist != 1)
      mfl = 0; // select final state charm and beauty
    if (!(stack->IsPhysicalPrimary(iParticle) || pdg == 111 || pdg == 3212 || pdg==3124 || mfl >= 4)) 
      continue;
    Int_t imother = part->GetFirstMother();
    if (imother>0)
    {
      TParticle *partM = stack->Particle(imother);
      Int_t pdgM=TMath::Abs(partM->GetPdgCode());
      if (pdgM==111 || pdgM==3124 || pdgM==3212) 
        continue;
    }
    
    Double_t y = 0;

    // fix for problem with getting mass of particle 3124
    if (pdg != 3124)
      y = Rapidity(part->Pt(), part->Pz(), part->GetMass());
    else 
      y = Rapidity(part->Pt(), part->Pz(), 1.5195);
      
    if (y < smallestY)
    {
      smallestY = y;
      part1 = part;
    }
    
    if (y > largestY)
    {
      largestY = y;
      part2 = part;
    }
  }
  
  if (part1 == 0 || part2 == 0)
    return kFALSE;

  Int_t pdg1 = part1->GetPdgCode();
  Int_t pdg2 = part2->GetPdgCode();

  Double_t pt1 = part1->Pt();
  Double_t pt2 = part2->Pt();
  Double_t pz1 = part1->Pz();
  Double_t pz2 = part2->Pz();
  
  Double_t y1 = TMath::Abs(Rapidity(pt1, pz1, 0.938));
  Double_t y2 = TMath::Abs(Rapidity(pt2, pz2, 0.938));
  
  Int_t arm = -99999;
  if (pdg1 == 2212 && pdg2 == 2212)
  {
    if (y1 > y2) 
      arm = 0;
    else
      arm = 1;
  }
  else if (pdg1 == 2212) 
    arm = 0;
  else if (pdg2 == 2212) 
    arm = 1;

  Double_t M02s = 1. - 2 * part1->Energy() / cms;
  Double_t M12s = 1. - 2 * part2->Energy() / cms;

  if (arm == 0 && M02s > xiMin && M02s < xiMax)
    return kTRUE;
  else if (arm == 1 && M12s > xiMin && M12s < xiMax)
    return kTRUE;

  return kFALSE;
}

//____________________________________________________________________
AliPWG0Helper::MCProcessType AliPWG0Helper::GetEventProcessType(AliESDEvent* esd, AliHeader* header, AliStack* stack, AliPWG0Helper::DiffTreatment diffTreatment)
{
  // 
  // get process type
  //
  // diffTreatment:
  //   kMCFlags: use MC flags
  //   kUA5Cuts: SD events are those that have the MC SD flag and fulfill M^2/s < 0.05; DD from MC flag; Remainder is ND
  //   kE710Cuts: SD events are those that have the MC SD flag and fulfill 2 < M^2 < 0.05s; DD from MC flag; Remainder is ND
  //   kALICEHadronLevel: SD events are those that fulfill M^2/s < 0.05; DD from MC flag; Remainder is ND
  //

  MCProcessType mcProcessType = GetEventProcessType(header);
  
  if (diffTreatment == kMCFlags)
    return mcProcessType;
    
  if (!esd)
  {
    Printf("ERROR: AliPWG0Helper::GetEventProcessType: diffTreatment != kMCFlags and esd == 0");
    return kInvalidProcess;
  }
    
  Float_t cms = esd->GetESDRun()->GetBeamEnergy();
  if (esd->GetESDRun()->IsBeamEnergyIsSqrtSHalfGeV())
    cms *= 2;
  //Printf("cms = %f", cms);

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