ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */

//
// Class to create the coktail for physics with muons for pp collisions
// using the The followoing sources: 
// jpsi, psiP, upsilon, upsilonP, upsilonPP, open charm and open beauty
// The free parameeters are :
//      pp reaction cross-section
//      production cross-sections in pp collisions 
// July 07:added heavy quark production from AliGenCorrHF and heavy quark 
//         production switched off in Pythia 
// Aug. 07: added trigger cut on total momentum
// 2009: added possibility to hide x-sections (B. Vulpescu)
// 2009: added possibility to have the cocktail (fast generator and param.) 
// for pp @ 10 TeV or pp @ 14 TeV (N. Bastid)
//-----------------
// 2009:  added polarization (L. Bianchi)
//------------------
// 11/2009: added chi_c1 & chi_c2 (P.Crochet & N.Bastid). 
// Cross-sections for charmonia are now directly taken from the Yellow Report 
// (hep-ph/0311048) Tab.9, page 19. See below for details w.r.t. beam energy. 
// usage: see example of Config in $ALICE_ROOT/prod/LHC09a10/Config.C
//------------------------
// 04/2010:
// - CMS energy passed via parameter
// i.e. gener->SetCMSEnergy(AliGenMUONCocktailpp::kCMS07TeV) in Config.C 
// - resonances now added to the cocktail via AddReso2Generator 
// - cleaning 
// B.Vulpescu & P.Crochet
//-----------------------         
// 10/2011: 
// - added the cocktail for p-Pb & Pb-p @ 8.8 TeV with 4 centrality bins and
// for Pb-Pb @ 2.76 TeV with 11 centrality bins. Bins should be defined also
// in the Config.C with one AliGenMUONCocktailpp per bin. These generators
// included in a AliGenCocktail together with an event generator (e.g. Hijing)
// providing the underlying event and collision centrality. The bin number n
// passed via AliGenMUONCocktailpp::SetCentralityBin(n).
// See details in my presentation at the PWG3-Muon meeting (05.10.2011):
// https://indico.cern.ch/conferenceDisplay.py?confId=157367
// - simplifications and bug fix in CreateCocktail() 
// S. Grigoryan
//-----------------------
// 06/2012:
// - added the cocktail for p-Pb & Pb-p @ 2.76, 4.4 & 5.03 TeV with 4 centrality 
// bins, using the EPS09-LO shadowing computed for 5.03 TeV. Energies are set by
// AliGenMUONCocktailpp::SetCMSEnergy(int CMSEnergyCode), CMSEnergy codes are
// defined in AliGenMUONCocktailpp.h.
// - added functions to scale x-section of JPsi, Charmonia, Bottomonia, CCbar & BBbar
// in Config.C to manage the statistics. Example of usage (in a cocktail with Hijing):
/*
  AliGenCocktail *cocktail = new AliGenCocktail();
  cocktail->AddGenerator(hijing,"hijing",1);
  TFormula *form[nb];  // nb - number of centrality bins with impact params bBins[i]
  AliGenMUONCocktailpp *gen[nb];
  for (Int_t i=0; i<nb; i++) {
    form[i] = new TFormula(Form("f%d",i),"[0]+(x-[1])/([2]-[1])");
    form[i]->SetParameters(i+1, bBins[i], bBins[i+1]);
    gen[i] = MuonCocktail();
    gen[i]->SetCentralityBin(i+1);
    gen[i]->ScaleJPsi(100.);
    gen[i]->CreateCocktail();
    cocktail->AddGenerator(gen[i], Form("g%d",i), 101+i, form[i]);
  }
AliGenMUONCocktailpp* MuonCocktail() {
  AliGenMUONCocktailpp *mc = new AliGenMUONCocktailpp();
  ....................................
  return mc;
}
*/
// - a bug fixed in the function Generate()
// S. Grigoryan
 
#include <TObjArray.h>
#include <TParticle.h>
#include <TF1.h>
#include <TVirtualMC.h>
#include "AliGenCocktailEventHeader.h"

#include "AliGenCocktailEntry.h"
#include "AliGenMUONCocktailpp.h"
#include "AliGenMUONlib.h"
#include "AliGenParam.h"
#include "AliMC.h"
#include "AliRun.h"
#include "AliStack.h"
#include "AliDecayer.h"
#include "AliLog.h"
#include "AliGenCorrHF.h"
#include "AliDecayerPolarized.h"

ClassImp(AliGenMUONCocktailpp)  
  
//________________________________________________________________________
AliGenMUONCocktailpp::AliGenMUONCocktailpp()
    :AliGenCocktail(),
     fDecayer(0),
     fDecayModeResonance(kAll),
     fDecayModePythia(kAll),
     fMuonMultiplicity(0),
     fMuonPtCut(0.),
     fMuonPCut(0.),
     fMuonThetaMinCut(0.),
     fMuonThetaMaxCut(180.),
     fMuonOriginCut(-999.),
     fNSucceded(0),
     fNGenerated(0),
     fCentralityBin(0),
     fScaleJPsi(1),
     fScaleCharmonia(1),
     fScaleBottomonia(1),
     fScaleCCbar(1),
     fScaleBBbar(1),

     fJpsiPol(0), 
     fChic1Pol(0), 
     fChic2Pol(0), 
     fPsiPPol(0), 
     fUpsPol(0), 
     fUpsPPol(0), 
     fUpsPPPol(0),
     fPolFrame(0),

     fCMSEnergyTeV(0),
     fCMSEnergyTeVArray(),
     fSigmaReaction(0),  
     fSigmaReactionArray(),  
     fSigmaJPsi(0),      
     fSigmaJPsiArray(),      
     fSigmaChic1(0),     
     fSigmaChic1Array(),     
     fSigmaChic2(0),     
     fSigmaChic2Array(),     
     fSigmaPsiP(0),      
     fSigmaPsiPArray(),      
     fSigmaUpsilon(0),   
     fSigmaUpsilonArray(),   
     fSigmaUpsilonP(0),  
     fSigmaUpsilonPArray(),  
     fSigmaUpsilonPP(0), 
     fSigmaUpsilonPPArray(), 
     fSigmaCCbar(0),     
     fSigmaCCbarArray(),     
     fSigmaBBbar(0),
     fSigmaBBbarArray(),

     fSigmaSilent(kFALSE)
{
// Constructor

// x-sections for pp @ 7 TeV: 
// -charmonia: 4pi integral of fit function for inclusive J/psi dsigma/dy LHC data 
// gives 60 mub; so sigma_prompt = 54 mub, while Ref = R.Vogt_arXiv:1003.3497 (Table 2)
// gives 35 mub. Below we use sigma_direct from the Ref scaled by the factor 54/35.
// -bottomonia: 4pi integral of fit function for inclusive Upsilon1S dsigma/dy LHC data
// gives 0.56 mub, sigmas for 2S & 3S obtained using LHCb data for ratios 2S/1S & 3S/1S
// -ccbar & bbbar: NLO pQCD computations - http://www-alice.gsi.de/ana/MNR/results.html
    fCMSEnergyTeVArray[0] =   7.00;
    fSigmaReactionArray[0] =  0.070;
    fSigmaJPsiArray[0] =      33.6e-6;
    fSigmaChic1Array[0] =     32.6e-6;
    fSigmaChic2Array[0] =     53.8e-6;
    fSigmaPsiPArray[0] =       7.6e-6;
    fSigmaUpsilonArray[0] =   0.56e-6;
    fSigmaUpsilonPArray[0] =  0.18e-6;
    fSigmaUpsilonPPArray[0] = 0.08e-6;
    fSigmaCCbarArray[0] =     6.91e-3;
    fSigmaBBbarArray[0] =     0.232e-3;
    
//x-sections for pp @ 10 TeV: charmonia and bottomonia from 14 TeV numbers
// scaled down according to ccbar and bbbar cross-sections
    fCMSEnergyTeVArray[1] =   10.00;
    fSigmaReactionArray[1] =  0.070;
    fSigmaJPsiArray[1] =      26.06e-6;
    fSigmaChic1Array[1] =     25.18e-6;
    fSigmaChic2Array[1] =     41.58e-6;
    fSigmaPsiPArray[1] =      5.88e-6;
    fSigmaUpsilonArray[1] =   0.658e-6;
    fSigmaUpsilonPArray[1] =  0.218e-6;
    fSigmaUpsilonPPArray[1] = 0.122e-6;
    fSigmaCCbarArray[1] =     8.9e-3;
    fSigmaBBbarArray[1] =     0.33e-3;

//x-sections for pp @ 14 TeV: charmonia from hep-ph/0311048 Tab.9, page 19,
// bottomonium from hep-ph/0311048 Tab.9, page 19 taken into account that 
// feed-down from chib is included
    fCMSEnergyTeVArray[2] =   14.00;
    fSigmaReactionArray[2] =  0.070;
    fSigmaJPsiArray[2] =      32.9e-6;
    fSigmaChic1Array[2] =     31.8e-6;
    fSigmaChic2Array[2] =     52.5e-6;
    fSigmaPsiPArray[2] =      7.43e-6;
    fSigmaUpsilonArray[2] =   0.989e-6;
    fSigmaUpsilonPArray[2] =  0.502e-6;
    fSigmaUpsilonPPArray[2] = 0.228e-6;
    fSigmaCCbarArray[2] =     11.2e-3;
    fSigmaBBbarArray[2] =     0.445e-3;

// x-sections for Min. Bias p-Pb & Pb-p @ 2.76 TeV: charmonia and bottomonia 
// from 7 TeV numbers scaled according to pQCD ccbar and bbbar x-sections
// and with Glauber scaling
    fCMSEnergyTeVArray[3] =   2.00;           // for 2.76 TeV
    fSigmaReactionArray[3] =  2.10;
    fSigmaJPsiArray[3] =      3.54e-3;        // 208*0.507*33.6e-6
    fSigmaChic1Array[3] =     3.44e-3;
    fSigmaChic2Array[3] =     5.66e-3;
    fSigmaPsiPArray[3] =      0.80e-3;
    fSigmaUpsilonArray[3] =   0.045e-3;       // 208*0.384*0.56e-6
    fSigmaUpsilonPArray[3] =  0.014e-3;
    fSigmaUpsilonPPArray[3] = 0.006e-3;
    fSigmaCCbarArray[3] =     0.73;           // 208*3.50e-3
    fSigmaBBbarArray[3] =     0.019;          // 208*0.089e-3

    fCMSEnergyTeVArray[4] =  -fCMSEnergyTeVArray[3];
    fSigmaReactionArray[4] =  fSigmaReactionArray[3];
    fSigmaJPsiArray[4] =      fSigmaJPsiArray[3];
    fSigmaChic1Array[4] =     fSigmaChic1Array[3];
    fSigmaChic2Array[4] =     fSigmaChic2Array[3];
    fSigmaPsiPArray[4] =      fSigmaPsiPArray[3];
    fSigmaUpsilonArray[4] =   fSigmaUpsilonArray[3];
    fSigmaUpsilonPArray[4] =  fSigmaUpsilonPArray[3];
    fSigmaUpsilonPPArray[4] = fSigmaUpsilonPPArray[3];
    fSigmaCCbarArray[4] =     fSigmaCCbarArray[3];
    fSigmaBBbarArray[4] =     fSigmaBBbarArray[3];

// x-sections for Min. Bias p-Pb & Pb-p @ 4.4 TeV: charmonia and bottomonia 
// from 7 TeV numbers scaled according to pQCD ccbar and bbbar x-sections
// and with Glauber scaling
    fCMSEnergyTeVArray[5] =   4.00;           // for 4.4 TeV
    fSigmaReactionArray[5] =  2.10;
    fSigmaJPsiArray[5] =      5.00e-3;        // 208*0.715*33.6e-6
    fSigmaChic1Array[5] =     4.86e-3;
    fSigmaChic2Array[5] =     7.99e-3;
    fSigmaPsiPArray[5] =      1.12e-3;
    fSigmaUpsilonArray[5] =   0.074e-3;       // 208*0.629*0.56e-6
    fSigmaUpsilonPArray[5] =  0.023e-3;
    fSigmaUpsilonPPArray[5] = 0.010e-3;
    fSigmaCCbarArray[5] =     1.03;           // 208*4.94e-3
    fSigmaBBbarArray[5] =     0.030;          // 208*0.146e-3

    fCMSEnergyTeVArray[6] =  -fCMSEnergyTeVArray[5];
    fSigmaReactionArray[6] =  fSigmaReactionArray[5];
    fSigmaJPsiArray[6] =      fSigmaJPsiArray[5];
    fSigmaChic1Array[6] =     fSigmaChic1Array[5];
    fSigmaChic2Array[6] =     fSigmaChic2Array[5];
    fSigmaPsiPArray[6] =      fSigmaPsiPArray[5];
    fSigmaUpsilonArray[6] =   fSigmaUpsilonArray[5];
    fSigmaUpsilonPArray[6] =  fSigmaUpsilonPArray[5];
    fSigmaUpsilonPPArray[6] = fSigmaUpsilonPPArray[5];
    fSigmaCCbarArray[6] =     fSigmaCCbarArray[5];
    fSigmaBBbarArray[6] =     fSigmaBBbarArray[5];

// x-sections for Min. Bias p-Pb & Pb-p @ 5.03 TeV: charmonia and bottomonia 
// from 7 TeV numbers scaled according to pQCD ccbar and bbbar x-sections
// and with Glauber scaling
    fCMSEnergyTeVArray[7] =   5.00;           // for 5.03 TeV
    fSigmaReactionArray[7] =  2.10;
    fSigmaJPsiArray[7] =      5.50e-3;        // 208*0.787*33.6e-6
    fSigmaChic1Array[7] =     5.35e-3;
    fSigmaChic2Array[7] =     8.79e-3;
    fSigmaPsiPArray[7] =      1.23e-3;
    fSigmaUpsilonArray[7] =   0.083e-3;       // 208*0.716*0.56e-6
    fSigmaUpsilonPArray[7] =  0.026e-3;
    fSigmaUpsilonPPArray[7] = 0.011e-3;
    fSigmaCCbarArray[7] =     1.13;           // 208*5.44e-3
    fSigmaBBbarArray[7] =     0.035;          // 208*0.166e-3

    fCMSEnergyTeVArray[8] =  -fCMSEnergyTeVArray[7];
    fSigmaReactionArray[8] =  fSigmaReactionArray[7];
    fSigmaJPsiArray[8] =      fSigmaJPsiArray[7];
    fSigmaChic1Array[8] =     fSigmaChic1Array[7];
    fSigmaChic2Array[8] =     fSigmaChic2Array[7];
    fSigmaPsiPArray[8] =      fSigmaPsiPArray[7];
    fSigmaUpsilonArray[8] =   fSigmaUpsilonArray[7];
    fSigmaUpsilonPArray[8] =  fSigmaUpsilonPArray[7];
    fSigmaUpsilonPPArray[8] = fSigmaUpsilonPPArray[7];
    fSigmaCCbarArray[8] =     fSigmaCCbarArray[7];
    fSigmaBBbarArray[8] =     fSigmaBBbarArray[7];

// x-sections for Min. Bias p-Pb & Pb-p @ 8.8 TeV: charmonia and bottomonia 
// from 7 TeV numbers scaled according to pQCD ccbar and bbbar x-sections
// and with Glauber scaling
    fCMSEnergyTeVArray[9] =   9.00;           // for 8.8 TeV
    fSigmaReactionArray[9] =  2.10;
    fSigmaJPsiArray[9] =      8.19e-3;        // 208*1.172*33.6e-6
    fSigmaChic1Array[9] =     7.95e-3;
    fSigmaChic2Array[9] =     13.1e-3;
    fSigmaPsiPArray[9] =      1.85e-3;
    fSigmaUpsilonArray[9] =   0.146e-3;       // 208*1.25*0.56e-6
    fSigmaUpsilonPArray[9] =  0.047e-3;
    fSigmaUpsilonPPArray[9] = 0.021e-3;
    fSigmaCCbarArray[9] =     1.68;           // 208*8.1e-3
    fSigmaBBbarArray[9] =     0.061;          // 208*0.29e-3

    fCMSEnergyTeVArray[10] =  -fCMSEnergyTeVArray[9];
    fSigmaReactionArray[10] =  fSigmaReactionArray[9];
    fSigmaJPsiArray[10] =      fSigmaJPsiArray[9];
    fSigmaChic1Array[10] =     fSigmaChic1Array[9];
    fSigmaChic2Array[10] =     fSigmaChic2Array[9];
    fSigmaPsiPArray[10] =      fSigmaPsiPArray[9];
    fSigmaUpsilonArray[10] =   fSigmaUpsilonArray[9];
    fSigmaUpsilonPArray[10] =  fSigmaUpsilonPArray[9];
    fSigmaUpsilonPPArray[10] = fSigmaUpsilonPPArray[9];
    fSigmaCCbarArray[10] =     fSigmaCCbarArray[9];
    fSigmaBBbarArray[10] =     fSigmaBBbarArray[9];

// x-sections for Min. Bias Pb-Pb @ 2.76 TeV: charmonia and bottomonia 
// from 7 TeV numbers scaled according to pQCD ccbar and bbbar x-sections
// and with Glauber scaling
    fCMSEnergyTeVArray[11] =   3.00;           // for 2.76 TeV
    fSigmaReactionArray[11] =  7.65;
    fSigmaJPsiArray[11] =      0.737;          // 208*208*0.507*33.6e-6
    fSigmaChic1Array[11] =     0.715;
    fSigmaChic2Array[11] =     1.179;
    fSigmaPsiPArray[11] =      0.166;
    fSigmaUpsilonArray[11] =   0.0093;         // 208*208*0.384*0.56e-6
    fSigmaUpsilonPArray[11] =  0.0030;
    fSigmaUpsilonPPArray[11] = 0.0013;
    fSigmaCCbarArray[11] =     151.;           // 208*208*3.50e-3
    fSigmaBBbarArray[11] =     3.8;            // 208*208*0.089e-3
    
}

//_________________________________________________________________________
AliGenMUONCocktailpp::~AliGenMUONCocktailpp()
{
// Destructor

}

//_________________________________________________________________________
void AliGenMUONCocktailpp::SetCMSEnergy(CMSEnergyCode cmsEnergy) 
{
// setter for CMSEnergy and corresponding cross-sections
  fCMSEnergyTeV   = fCMSEnergyTeVArray[cmsEnergy];
  fSigmaReaction  = fSigmaReactionArray[cmsEnergy];  
  fSigmaJPsi      = fSigmaJPsiArray[cmsEnergy];      
  fSigmaChic1     = fSigmaChic1Array[cmsEnergy];     
  fSigmaChic2     = fSigmaChic2Array[cmsEnergy];     
  fSigmaPsiP      = fSigmaPsiPArray[cmsEnergy];      
  fSigmaUpsilon   = fSigmaUpsilonArray[cmsEnergy];   
  fSigmaUpsilonP  = fSigmaUpsilonPArray[cmsEnergy];  
  fSigmaUpsilonPP = fSigmaUpsilonPPArray[cmsEnergy]; 
  fSigmaCCbar     = fSigmaCCbarArray[cmsEnergy];     
  fSigmaBBbar     = fSigmaBBbarArray[cmsEnergy];
}

//_________________________________________________________________________
void AliGenMUONCocktailpp::SetResPolarization(Double_t JpsiPol, Double_t PsiPPol, Double_t UpsPol,
				Double_t UpsPPol, Double_t UpsPPPol, char *PolFrame){
// setter for resonances polarization   
   if (strcmp(PolFrame,"kColSop")==0){
       fJpsiPol  = (JpsiPol>=-1  && JpsiPol<=1)  ? JpsiPol  : 0;
       fPsiPPol  = (PsiPPol>=-1  && PsiPPol<=1)  ? PsiPPol  : 0;
       fUpsPol   = (UpsPol>=-1   && UpsPol<=1)   ? UpsPol   : 0;
       fUpsPPol  = (UpsPPol>=-1  && UpsPPol<=1)  ? UpsPPol  : 0;
       fUpsPPPol = (UpsPPPol>=-1 && UpsPPPol<=1) ? UpsPPPol : 0;
       fPolFrame = 0;
   } else if (strcmp(PolFrame,"kHelicity")==0){
       fJpsiPol  = (JpsiPol>=-1  && JpsiPol<=1)  ? JpsiPol  : 0;
       fPsiPPol  = (PsiPPol>=-1  && PsiPPol<=1)  ? PsiPPol  : 0;
       fUpsPol   = (UpsPol>=-1   && UpsPol<=1)   ? UpsPol   : 0;
       fUpsPPol  = (UpsPPol>=-1  && UpsPPol<=1)  ? UpsPPol  : 0;
       fUpsPPPol = (UpsPPPol>=-1 && UpsPPPol<=1) ? UpsPPPol : 0;
       fPolFrame = 1;

   } else {
       AliInfo(Form("The polarization frame is not valid"));
       AliInfo(Form("No polarization will be set"));
       fJpsiPol=0.;
       fPsiPPol=0.;
       fUpsPol=0.;
       fUpsPPol=0.;
       fUpsPPPol=0.;
   }
}

//_________________________________________________________________________
void AliGenMUONCocktailpp::CreateCocktail()
{
// create and add resonances and open HF to the coctail
    Int_t cmsEnergy = Int_t(fCMSEnergyTeV);

    // For temporary use of p-Pb & Pb-p shadowing at 5.03 TeV for lower energies  
    if (cmsEnergy == 2 || cmsEnergy == 4) cmsEnergy = 5;
    if (cmsEnergy == -2 || cmsEnergy == -4) cmsEnergy = -5;

// These limits are only used for renormalization of quarkonia cross section
// Pythia events are generated in 4pi  
    Double_t ptMin  = fPtMin;
    Double_t ptMax  = fPtMax;
    Double_t yMin   = fYMin;;
    Double_t yMax   = fYMax;;
    Double_t phiMin = fPhiMin*180./TMath::Pi();
    Double_t phiMax = fPhiMax*180./TMath::Pi();
    AliInfo(Form("Ranges pT:%4.1f : %4.1f GeV/c, y:%4.2f : %4.2f, Phi:%5.1f : %5.1f degres",ptMin,ptMax,yMin,yMax,phiMin,phiMax));
    
// Cross sections in barns

    Double_t sigmajpsi      = fSigmaJPsi;  
    Double_t sigmachic1     = fSigmaChic1;  
    Double_t sigmachic2     = fSigmaChic2;  
    Double_t sigmapsiP      = fSigmaPsiP;  
    Double_t sigmaupsilon   = fSigmaUpsilon;  
    Double_t sigmaupsilonP  = fSigmaUpsilonP;  
    Double_t sigmaupsilonPP = fSigmaUpsilonPP;
    Double_t sigmaccbar     = fSigmaCCbar;
    Double_t sigmabbbar     = fSigmaBBbar;

// Cross sections corrected with the BR in mu+mu-
// (only in case of use of AliDecayerPolarized)

    if(TMath::Abs(fJpsiPol) > 1.e-30) {sigmajpsi      = fSigmaJPsi*0.0593;}
    if(TMath::Abs(fChic1Pol) > 1.e-30) {sigmachic1     = fSigmaChic1*0.;} // tb consistent
    if(TMath::Abs(fChic2Pol) > 1.e-30) {sigmachic2     = fSigmaChic2*0.;} // tb consistent 
    if(TMath::Abs(fPsiPPol) > 1.e-30) {sigmapsiP      = fSigmaPsiP*0.0075;}
    if(TMath::Abs(fUpsPol) > 1.e-30) {sigmaupsilon   = fSigmaUpsilon*0.0248;}
    if(TMath::Abs(fUpsPPol) > 1.e-30) {sigmaupsilonP  = fSigmaUpsilonP*0.0193;}
    if(TMath::Abs(fUpsPPPol) > 1.e-30) {sigmaupsilonPP = fSigmaUpsilonPP*0.0218;}

// Cross sections scaled to manage the statistics

    sigmajpsi      *= fScaleJPsi*fScaleCharmonia;  
    sigmachic1     *= fScaleCharmonia;  
    sigmachic2     *= fScaleCharmonia;  
    sigmapsiP      *= fScaleCharmonia;  
    sigmaupsilon   *= fScaleBottomonia;  
    sigmaupsilonP  *= fScaleBottomonia;  
    sigmaupsilonPP *= fScaleBottomonia;  
    sigmaccbar     *= fScaleCCbar;  
    sigmabbbar     *= fScaleBBbar;  

    AliInfo(Form("the parametrised resonances uses the decay mode %d",fDecayModeResonance));

// Create and add resonances to the generator
    AliGenParam * genjpsi=0;
    AliGenParam * genchic1=0;
    AliGenParam * genchic2=0;
    AliGenParam * genpsiP=0;
    AliGenParam * genupsilon=0;
    AliGenParam * genupsilonP=0;
    AliGenParam * genupsilonPP=0;
    
    Char_t nameJpsi[10];    
    Char_t nameChic1[10];    
    Char_t nameChic2[10];    
    Char_t namePsiP[10];
    Char_t nameUps[10];    
    Char_t nameUpsP[10];    
    Char_t nameUpsPP[10];    

    snprintf(nameJpsi,10, "Jpsi");    
    snprintf(nameChic1,10, "Chic1");
    snprintf(nameChic2,10, "Chic2");
    snprintf(namePsiP,10, "PsiP");
    snprintf(nameUps,10, "Ups");
    snprintf(nameUpsP,10, "UpsP");
    snprintf(nameUpsPP,10, "UpsPP");

    Char_t tname[40] = "";
    if(cmsEnergy == 10)        {snprintf(tname, 40, "CDF pp 10");
    } else if (cmsEnergy == 14){snprintf(tname, 40, "CDF pp");
    } else if (cmsEnergy == 7) {snprintf(tname, 40, "pp 7");
      //    } else if (cmsEnergy == 2) {snprintf(tname, 40, "pp 2.76");
    } else if (cmsEnergy == 5) {snprintf(tname, 40, "pPb 5.03");
      if (fCentralityBin > 0) snprintf(tname, 40, "pPb 5.03c%d",fCentralityBin); 
    } else if (cmsEnergy == -5){snprintf(tname, 40, "Pbp 5.03");
      if (fCentralityBin > 0) snprintf(tname, 40, "Pbp 5.03c%d",fCentralityBin); 
    } else if (cmsEnergy == 9) {snprintf(tname, 40, "pPb 8.8");
      if (fCentralityBin > 0) snprintf(tname, 40, "pPb 8.8c%d",fCentralityBin); 
    } else if (cmsEnergy == -9){snprintf(tname, 40, "Pbp 8.8");
      if (fCentralityBin > 0) snprintf(tname, 40, "Pbp 8.8c%d",fCentralityBin); 
    } else if (cmsEnergy == 3) {snprintf(tname, 40, "PbPb 2.76");
      if (fCentralityBin > 0) snprintf(tname, 40, "PbPb 2.76c%d",fCentralityBin); 
    } else {
	AliError("Initialisation failed, wrong cmsEnergy");
	return;
    }
    genjpsi = new AliGenParam(1, AliGenMUONlib::kJpsi, tname, "Jpsi");
    genchic1 = new AliGenParam(1, AliGenMUONlib::kChic1, tname, "Chic1");
    genchic2 = new AliGenParam(1, AliGenMUONlib::kChic2,  tname, "Chic2");
    genpsiP   = new AliGenParam(1, AliGenMUONlib::kPsiP,   tname, "PsiP");
    genupsilon = new AliGenParam(1, AliGenMUONlib::kUpsilon, tname, "Upsilon");
    genupsilonP = new AliGenParam(1, AliGenMUONlib::kUpsilonP, tname, "UpsilonP");
    genupsilonPP = new AliGenParam(1, AliGenMUONlib::kUpsilonPP, tname, "UpsilonPP");

// Hard process yield per pA or AA collision for i-th centrality bin is R*r[i]*shad[i]
// where R is the ratio of hard and geometrical x-sections, r[i] is the ratio of these
// x-section fractions for given centrality and shad[i] is the shadowing factor (in 4pi).
// The latter is assumed to be the same for HF-hadrons & quarkonia of the same flavour.
    Int_t i = 0;
    Double_t chard[20] = {0};     // charm & beauty shadowing factors are different
    Double_t bhard[20] = {0};
    chard[0] = 1;                 // 1st element for pp and min. bias (MB) collisions
    bhard[0] = 1;

// 4 centrality bins for p-Pb & Pb-p at 5.03 TeV: 0-20-40-60-100 % 
    if (cmsEnergy == 5 || cmsEnergy == -5) {
      const Int_t n5 = 5;         // 1st element for MB collisions
      Double_t r5[n5] = {1, 1.936, 1.473, 0.914, 0.333};        // ratio of hard-over-geo fractions
      Double_t cshad5[n5] = {0.806, 0.742, 0.796, 0.870, 0.955};// EPS09-LO shadowing factors
      Double_t bshad5[n5] = {0.917, 0.889, 0.913, 0.944, 0.981};
      for(i=0; i<n5; i++) {
	  chard[i] = cshad5[i]*r5[i];   
	  bhard[i] = bshad5[i]*r5[i];
      }
    }

// 4 centrality bins for p-Pb & Pb-p at 8.8 TeV: 0-20-40-60-100 % 
    if (cmsEnergy == 9 || cmsEnergy == -9) {
      const Int_t n9 = 5;         // 1st element for MB collisions
      Double_t r9[n9] = {1, 1.936, 1.473, 0.914, 0.333};        // ratio of hard-over-geo fractions
      Double_t cshad9[n9] = {0.785, 0.715, 0.775, 0.856, 0.951};// EKS98 shadowing factors
      Double_t bshad9[n9] = {0.889, 0.853, 0.884, 0.926, 0.975};
      for(i=0; i<n9; i++) {
	  chard[i] = cshad9[i]*r9[i];   
	  bhard[i] = bshad9[i]*r9[i];
      }
    }

// 11 centrality bins for Pb-Pb at 2.76 TeV: 0-5-10-20-30-40-50-60-70-80-90-100 % 
    if (cmsEnergy == 3) {
      const Int_t n3 = 12;        // 1st element for MB collisions
      Double_t r3[n3] = {1, 4.661, 3.647, 2.551, 1.544, 0.887, 0.474,
			    0.235, 0.106, 0.044, 0.017, 0.007};        // ratio of hard-over-geo fractions
      Double_t cshad3[n3] = {0.662, 0.622, 0.631, 0.650, 0.681, 0.718, 
			     0.760, 0.805, 0.849, 0.888, 0.918, 0.944};// EKS98 shadowing factors
      Double_t bshad3[n3] = {0.874, 0.856, 0.861, 0.869, 0.883, 0.898, 
			     0.915, 0.932, 0.948, 0.962, 0.972, 0.981};
      for(i=0; i<n3; i++) {
	  chard[i] = cshad3[i]*r3[i];   
	  bhard[i] = bshad3[i]*r3[i];
      }
    }

    AddReso2Generator(nameJpsi,genjpsi,chard[fCentralityBin]*sigmajpsi,fJpsiPol);
    AddReso2Generator(nameChic1,genchic1,chard[fCentralityBin]*sigmachic1,fChic1Pol);
    AddReso2Generator(nameChic2,genchic2,chard[fCentralityBin]*sigmachic2,fChic2Pol);
    AddReso2Generator(namePsiP,genpsiP,chard[fCentralityBin]*sigmapsiP,fPsiPPol);

    AddReso2Generator(nameUps,genupsilon,bhard[fCentralityBin]*sigmaupsilon,fUpsPol);
    AddReso2Generator(nameUpsP,genupsilonP,bhard[fCentralityBin]*sigmaupsilonP,fUpsPPol);
    AddReso2Generator(nameUpsPP,genupsilonPP,bhard[fCentralityBin]*sigmaupsilonPP,fUpsPPPol);

//------------------------------------------------------------------
// Generator of charm
    AliGenCorrHF *gencharm = new AliGenCorrHF(1, 4, cmsEnergy);
    gencharm->SetMomentumRange(0,9999);
    gencharm->SetForceDecay(kAll);
    Double_t ratioccbar = chard[fCentralityBin]*sigmaccbar/fSigmaReaction;
    if (!TVirtualMC::GetMC()) gencharm->SetDecayer(fDecayer);  
    gencharm->Init();
    if (!fSigmaSilent) {
      AliInfo(Form("c-cbar prod. cross-section in pp %5.3g b",sigmaccbar));
      AliInfo(Form("c-cbar prod. probability per collision in acceptance %5.3g",ratioccbar));
    }
    AddGenerator(gencharm,"CorrHFCharm",ratioccbar);
//------------------------------------------------------------------
// Generator of beauty
    AliGenCorrHF *genbeauty = new AliGenCorrHF(1, 5, cmsEnergy);
    genbeauty->SetMomentumRange(0,9999);
    genbeauty->SetForceDecay(kAll);
    Double_t ratiobbbar = bhard[fCentralityBin]*sigmabbbar/fSigmaReaction;
    if (!TVirtualMC::GetMC()) genbeauty->SetDecayer(fDecayer);  
    genbeauty->Init();
    if (!fSigmaSilent) {
      AliInfo(Form("b-bbar prod. cross-section in pp  %5.3g b",sigmabbbar));
      AliInfo(Form("b-bbar prod. probability per collision in acceptance %5.3g",ratiobbbar));
    }
    AddGenerator(genbeauty,"CorrHFBeauty",ratiobbbar);

//-------------------------------------------------------------------
// Pythia generator
//
// This has to go into the Config.C
//
//    AliGenPythia *pythia = new AliGenPythia(1);
//    pythia->SetProcess(kPyMbMSEL1);
//    pythia->SetStrucFunc(kCTEQ5L);
//    pythia->SetEnergyCMS(14000.);
//    AliInfo(Form("\n\npythia uses the decay mode %d", GetDecayModePythia()));
//    Decay_t dt = gener->GetDecayModePythia();
//    pythia->SetForceDecay(dt);
//    pythia->SetPtRange(0.,100.);
//    pythia->SetYRange(-8.,8.);
//    pythia->SetPhiRange(0.,360.);
//    pythia->SetPtHard(2.76,-1.0);
//    pythia->SwitchHFOff();
//    pythia->Init(); 
//    AddGenerator(pythia,"Pythia",1);

}

//-------------------------------------------------------------------
void AliGenMUONCocktailpp::AddReso2Generator(Char_t* nameReso, 
					     AliGenParam* const genReso,
					     Double_t sigmaReso,
					     Double_t polReso)
{
// add resonances to the cocktail
    Double_t phiMin = fPhiMin*180./TMath::Pi();
    Double_t phiMax = fPhiMax*180./TMath::Pi();

    // first step: generation in 4pi
    genReso->SetPtRange(0.,100.); 
    genReso->SetYRange(-8.,8.);
    genReso->SetPhiRange(0.,360.);
    genReso->SetForceDecay(fDecayModeResonance);
    if (!TVirtualMC::GetMC()) genReso->SetDecayer(fDecayer);  
    genReso->Init();  // generation in 4pi
// Ratios with respect to the reaction cross-section in the 
// kinematics limit of the MUONCocktail
    Double_t ratioReso = sigmaReso / fSigmaReaction * genReso->GetRelativeArea(fPtMin,fPtMax,fYMin,fYMax,phiMin,phiMax);
    if (!fSigmaSilent) {
      AliInfo(Form("%s prod. cross-section in pp %5.3g b",nameReso,sigmaReso));
      AliInfo(Form("%s prod. probability per collision in acceptance %5.3g",nameReso,ratioReso));
    }
// second step: generation in selected kinematical range
    genReso->SetPtRange(fPtMin, fPtMax);  
    genReso->SetYRange(fYMin, fYMax);
    genReso->SetPhiRange(phiMin, phiMax);
    genReso->Init(); // generation in selected kinematical range

     TVirtualMCDecayer *decReso = 0;
     if(TMath::Abs(polReso) > 1.e-30){
      AliInfo(Form("******Setting polarized decayer for %s''",nameReso));
      if(fPolFrame==0) {
        decReso = new AliDecayerPolarized(polReso,AliDecayerPolarized::kColSop,AliDecayerPolarized::kMuon);
        AliInfo(Form("******Reference frame: %s, alpha: %f","Collins-Soper",polReso));
	  }
      if(fPolFrame==1) {
        decReso = new AliDecayerPolarized(polReso,AliDecayerPolarized::kHelicity,AliDecayerPolarized::kMuon);
        AliInfo(Form("******Reference frame: %s, alpha: %f","Helicity",polReso));
	  }
      if (decReso) {
	  decReso->SetForceDecay(kAll);
	  decReso->Init();
	  genReso->SetDecayer(decReso);
      }
     }
    
    AddGenerator(genReso,nameReso,ratioReso); // Adding Generator    
}

//-------------------------------------------------------------------
void AliGenMUONCocktailpp::Init()
{
    // Initialisation
    TIter next(fEntries);
    AliGenCocktailEntry *entry;
    if (fStack) {
	while((entry = (AliGenCocktailEntry*)next())) {
	    entry->Generator()->SetStack(fStack);
	}
    }
}

//_________________________________________________________________________
void AliGenMUONCocktailpp::Generate()
{
// Generate event 
    TIter next(fEntries);
    AliGenCocktailEntry *entry = 0;
    AliGenerator* gen = 0;

    if (fHeader) delete fHeader;
    fHeader = new AliGenCocktailEventHeader("MUON Cocktail Header");

    const TObjArray *partArray = gAlice->GetMCApp()->Particles();
    
// Generate the vertex position used by all generators    
    if(fVertexSmear == kPerEvent) Vertex();

// Loop on primordialTrigger: 
// minimum muon multiplicity above a pt cut in a theta acceptance region

    Bool_t primordialTrigger = kFALSE;
    while(!primordialTrigger) {
	//Reseting stack (if fMuonMultiplicity > 0 : S. Grigoryan, June 2012)
	AliRunLoader * runloader = AliRunLoader::Instance();
	//	if (runloader)
	if (runloader && fMuonMultiplicity > 0)
	    if (runloader->Stack())
		runloader->Stack()->Clean();
	// Loop over generators and generate events
	Int_t igen = 0;
	Int_t npart = 0;	
	const char* genName = 0;
	while((entry = (AliGenCocktailEntry*)next())) {
	    gen = entry->Generator();
	    genName = entry->GetName();
	    gen->SetVertex(fVertex.At(0), fVertex.At(1), fVertex.At(2));
	    gen->SetTime(fTime);

	    npart = (strcmp(genName,"Pythia") == 0) ? 1 :
		gRandom->Poisson(entry->Rate());

	    if (npart > 0) {
		igen++;	
		if (igen == 1) entry->SetFirst(0);		
		else  entry->SetFirst((partArray->GetEntriesFast())+1);
		
		gen->SetNumberParticles(npart);		
		gen->Generate();
		entry->SetLast(partArray->GetEntriesFast());
	    }
	}  
	next.Reset();


// Testing primordial trigger: Single muons or dimuons with Pt above a Pt cut 
// in the muon spectrometer acceptance
	Int_t iPart;
	fNGenerated++;
	Int_t numberOfMuons=0;Int_t maxPart = partArray->GetEntriesFast();
	for(iPart=0; iPart<maxPart; iPart++){      
	    
	  TParticle *part = gAlice->GetMCApp()->Particle(iPart);
	  if ( TMath::Abs(part->GetPdgCode()) == 13 ){  
	    if((part->Vz() > fMuonOriginCut) && //take only the muons that decayed before the abs + 1 int. length in C abs
	       (part->Theta()*180./TMath::Pi()>fMuonThetaMinCut) &&
	       (part->Theta()*180./TMath::Pi()<fMuonThetaMaxCut) &&
	       (part->Pt()>fMuonPtCut) &&
	       (part->P()>fMuonPCut)) {
	      numberOfMuons++;
	    }
	  }
	}	
	if (numberOfMuons >= fMuonMultiplicity) {
	  primordialTrigger = kTRUE;
	  fHeader->SetNProduced(maxPart);
	}

    }
    fNSucceded++;

    TArrayF eventVertex;
    eventVertex.Set(3);
    for (Int_t j=0; j < 3; j++) eventVertex[j] = fVertex[j];

    fHeader->SetPrimaryVertex(eventVertex);
    fHeader->SetInteractionTime(fTime);

    gAlice->SetGenEventHeader(fHeader);

//     AliInfo(Form("Generated Events are %d and Succeeded Events are %d",fNGenerated,fNSucceded));
    AliDebug(5,Form("Generated Events are %d and Succeeded Events are %d",fNGenerated,fNSucceded));
}

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