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: AliPythia.cxx,v 1.40 2007/10/09 08:43:24 morsch Exp $ */

#include "AliPythia6.h"
#include "AliStack.h"
#include "AliPythiaRndm.h"
#include "AliFastGlauber.h"
#include "AliQuenchingWeights.h"

#include "TVector3.h"
#include "TParticle.h"
#include "PyquenCommon.h"

ClassImp(AliPythia6)

#ifndef WIN32
# define pyclus pyclus_
# define pycell pycell_
# define pyshow pyshow_
# define pyshowq pyshowq_
# define pyrobo pyrobo_
# define pyquen pyquen_
# define pyevnw pyevnw_
# define pyjoin pyjoin_
# define qpygin0 qpygin0_
# define setpowwght setpowwght_
# define type_of_call
#else
# define pyclus PYCLUS
# define pycell PYCELL
# define pyshow PYSHOW
# define pyshowq PYSHOWQ
# define pyrobo PYROBO
# define pyquen PYQUEN
# define pyevnw PYEVNW
# define pyjoin PYJOIN
# define qpygin0 QPYGIN0
# define setpowwght SETPOWWGHT
# define type_of_call _stdcall
#endif

extern "C" void type_of_call pyjoin(Int_t &, Int_t * );
extern "C" void type_of_call pyclus(Int_t & );
extern "C" void type_of_call pycell(Int_t & );
extern "C" void type_of_call pyshow(Int_t &, Int_t &, Double_t &);
extern "C" void type_of_call pyshowq(Int_t &, Int_t &, Double_t &);
extern "C" void type_of_call qpygin0();
extern "C" void type_of_call pyrobo(Int_t &, Int_t &, Double_t &, Double_t &, Double_t &, Double_t &, Double_t &);
extern "C" void type_of_call pyquen(Double_t &, Int_t &, Double_t &);
extern "C" void type_of_call pyevnw();
extern "C" void type_of_call setpowwght(Double_t &);


//_____________________________________________________________________________

AliPythia6* AliPythia6::fgAliPythia=NULL;

AliPythia6::AliPythia6():
    TPythia6(),
    AliPythiaBase(),
    fProcess(kPyMb),
    fEcms(0.),
    fStrucFunc(kCTEQ5L),
    fProjectile("p"),
    fTarget("p"),
    fXJet(0.),
    fYJet(0.),
    fNGmax(30),
    fZmax(0.97),
    fGlauber(0),
    fQuenchingWeights(0)
{
// Default Constructor
//
//  Set random number
    Int_t i;
    for (i = 0; i <  501; i++) fDefMDCY[i] = 0;
    for (i = 0; i < 2001; i++) fDefMDME[i] = 0;
    for (i = 0; i <    4; i++) fZQuench[i] = 0;

    if (!AliPythiaRndm::GetPythiaRandom()) 
      AliPythiaRndm::SetPythiaRandom(GetRandom());
    fGlauber          = 0;
    fQuenchingWeights = 0;
}

AliPythia6::AliPythia6(const AliPythia6& pythia):
    TPythia6(),
    AliPythiaBase(),
    fProcess(kPyMb),
    fEcms(0.),
    fStrucFunc(kCTEQ5L),
    fProjectile("p"),
    fTarget("p"),
    fXJet(0.),
    fYJet(0.),
    fNGmax(30),
    fZmax(0.97),
    fGlauber(0),
    fQuenchingWeights(0)
{
    // Copy Constructor
    Int_t i;
    for (i = 0; i <  501; i++) fDefMDCY[i] = 0;
    for (i = 0; i < 2001; i++) fDefMDME[i] = 0;
    for (i = 0; i <    4; i++) fZQuench[i] = 0;
    pythia.Copy(*this);
}

void AliPythia6::ProcInit(Process_t process, Float_t energy, StrucFunc_t strucfunc, Int_t /*tune*/)
{
// Initialise the process to generate 
    if (!AliPythiaRndm::GetPythiaRandom()) 
      AliPythiaRndm::SetPythiaRandom(GetRandom());
    
    fProcess = process;
    fEcms = energy;
    fStrucFunc = strucfunc;
//...Switch off decay of pi0, K0S, Lambda, Sigma+-, Xi0-, Omega-.
    SetMDCY(Pycomp(111) ,1,0);
    SetMDCY(Pycomp(310) ,1,0);
    SetMDCY(Pycomp(3122),1,0);
    SetMDCY(Pycomp(3112),1,0);
    SetMDCY(Pycomp(3212),1,0);
    SetMDCY(Pycomp(3222),1,0);
    SetMDCY(Pycomp(3312),1,0);
    SetMDCY(Pycomp(3322),1,0);
    SetMDCY(Pycomp(3334),1,0);
    // Select structure function 
    SetMSTP(52,2);
    SetMSTP(51,AliStructFuncType::PDFsetIndex(strucfunc));
    // Particles produced in string fragmentation point directly to either of the two endpoints
    // of the string (depending in the side they were generated from).
    SetMSTU(16,2);

//
// Pythia initialisation for selected processes//
//
// Make MSEL clean
//
    for (Int_t i=1; i<= 200; i++) {
	SetMSUB(i,0);
    }
//  select charm production
    switch (process) 
    {
    case kPyOldUEQ2ordered:  //Old underlying events with Q2 ordered QCD processes
//        Multiple interactions on.
	SetMSTP(81,1);
// Double Gaussian matter distribution.
	SetMSTP(82,4);
	SetPARP(83,0.5);
	SetPARP(84,0.4);
//  pT0.
	SetPARP(82,2.0);
//  Reference energy for pT0 and energy rescaling pace.
	SetPARP(89,1800);
	SetPARP(90,0.25);
//  String drawing almost completely minimizes string length.
	SetPARP(85,0.9);
	SetPARP(86,0.95);
// ISR and FSR activity.
	SetPARP(67,4);
	SetPARP(71,4);
// Lambda_FSR scale.
	SetPARJ(81,0.29);
	break;
    case kPyOldUEQ2ordered2:   
// Old underlying events with Q2 ordered QCD processes
// Multiple interactions on.
	SetMSTP(81,1);
// Double Gaussian matter distribution.
	SetMSTP(82,4);
	SetPARP(83,0.5);
	SetPARP(84,0.4);
// pT0.
	SetPARP(82,2.0);
// Reference energy for pT0 and energy rescaling pace.
	SetPARP(89,1800);
	SetPARP(90,0.16);  // here is the difference with  kPyOldUEQ2ordered
// String drawing almost completely minimizes string length.
	SetPARP(85,0.9);
	SetPARP(86,0.95);
// ISR and FSR activity.
	SetPARP(67,4);
	SetPARP(71,4);
// Lambda_FSR scale.
	SetPARJ(81,0.29);	
	break;
    case kPyOldPopcorn:  
// Old production mechanism: Old Popcorn
	SetMSEL(1);
	SetMSTJ(12,3); 
// (D=2) Like MSTJ(12)=2 but added prod ofthe 1er rank baryon
	SetMSTP(88,2); 
// (D=1)see can be used to form  baryons (BARYON JUNCTION)
	SetMSTJ(1,1);  
	AtlasTuning();
	break;
    case kPyCharm:
	SetMSEL(4);
//  heavy quark masses

	SetPMAS(4,1,1.2);
//
//    primordial pT
	SetMSTP(91,1);
	SetPARP(91,1.);
	SetPARP(93,5.);
//
	break;
    case kPyBeauty:
	SetMSEL(5);
	SetPMAS(5,1,4.75);
	break;
    case kPyJpsi:
	SetMSEL(0);
// gg->J/Psi g
	SetMSUB(86,1);
	break;
    case kPyJpsiChi:
	SetMSEL(0);
// gg->J/Psi g
	SetMSUB(86,1);
// gg-> chi_0c g
	SetMSUB(87,1);
// gg-> chi_1c g
	SetMSUB(88,1);
// gg-> chi_2c g
	SetMSUB(89,1);	
	break;
    case kPyCharmUnforced:
	SetMSEL(0);
// gq->qg   
	SetMSUB(28,1);
// gg->qq
	SetMSUB(53,1);
// gg->gg
	SetMSUB(68,1);
	break;
    case kPyBeautyUnforced:
	SetMSEL(0);
// gq->qg   
	SetMSUB(28,1);
// gg->qq
	SetMSUB(53,1);
// gg->gg
	SetMSUB(68,1);
	break;
    case kPyMb:
// Minimum Bias pp-Collisions
//
//   
//      select Pythia min. bias model
	SetMSEL(0);
	SetMSUB(92,1);             // single diffraction AB-->XB
	SetMSUB(93,1);             // single diffraction AB-->AX
	SetMSUB(94,1);             // double diffraction
	SetMSUB(95,1);	           // low pt production

	AtlasTuning();
	break;
    case kPyMbAtlasTuneMC09:
// Minimum Bias pp-Collisions
//
//   
//      select Pythia min. bias model
	SetMSEL(0);
	SetMSUB(92,1);             // single diffraction AB-->XB
	SetMSUB(93,1);             // single diffraction AB-->AX
	SetMSUB(94,1);             // double diffraction
	SetMSUB(95,1);	           // low pt production

	AtlasTuningMC09();
	break;

    case kPyMbWithDirectPhoton:
// Minimum Bias pp-Collisions with direct photon processes added 
//
//   
//      select Pythia min. bias model
	SetMSEL(0);
	SetMSUB(92,1);             // single diffraction AB-->XB
	SetMSUB(93,1);             // single diffraction AB-->AX
	SetMSUB(94,1);             // double diffraction
	SetMSUB(95,1);	           // low pt production

	SetMSUB(14,1);             //
	SetMSUB(18,1);             //
	SetMSUB(29,1);             //
	SetMSUB(114,1);            //
	SetMSUB(115,1);            //


	AtlasTuning();
	break;

    case kPyMbDefault:
// Minimum Bias pp-Collisions
//
//   
//      select Pythia min. bias model
	SetMSEL(0);
	SetMSUB(92,1);             // single diffraction AB-->XB
	SetMSUB(93,1);             // single diffraction AB-->AX
	SetMSUB(94,1);             // double diffraction
	SetMSUB(95,1);	           // low pt production

	break;
    case kPyLhwgMb:
// Les Houches Working Group 05 Minimum Bias pp-Collisions: hep-ph/0604120
//  -> Pythia 6.3 or above is needed
//   
	SetMSEL(0);
	SetMSUB(92,1);             // single diffraction AB-->XB
	SetMSUB(93,1);             // single diffraction AB-->AX
	SetMSUB(94,1);             // double diffraction
	SetMSUB(95,1);	           // low pt production
	SetMSTP(51,AliStructFuncType::PDFsetIndex(kCTEQ6ll));
	SetMSTP(52,2);
	SetMSTP(68,1);
	SetMSTP(70,2);
	SetMSTP(81,1);             // Multiple Interactions ON
	SetMSTP(82,4);             // Double Gaussian Model
	SetMSTP(88,1);

	SetPARP(82,2.3);           // [GeV]    PT_min at Ref. energy
	SetPARP(83,0.5);           // Core density in proton matter distribution (def.value)
	SetPARP(84,0.5);           // Core radius
	SetPARP(85,0.9);           // Regulates gluon prod. mechanism
	SetPARP(90,0.2);           // 2*epsilon (exponent in power law)

	break;
    case kPyMbNonDiffr:
// Minimum Bias pp-Collisions
//
//   
//      select Pythia min. bias model
	SetMSEL(0);
	SetMSUB(95,1);	           // low pt production

	AtlasTuning();
	break;
    case kPyMbMSEL1:
	ConfigHeavyFlavor();
// Intrinsic <kT^2>
        SetMSTP(91,1);// Width (1=gaussian) primordial kT dist. inside hadrons
        SetPARP(91,1.);     // <kT^2> = PARP(91,1.)^2
        SetPARP(93,5.);     // Upper cut-off
// Set Q-quark mass
        SetPMAS(4,1,1.2);   // Charm quark mass
        SetPMAS(5,1,4.78);  // Beauty quark mass
	SetPARP(71,4.);     // Defaut value
// Atlas Tuning
	AtlasTuning();
	break;
    case kPyJets:
//
//  QCD Jets
//
	SetMSEL(1);
 // Pythia Tune A (CDF)
 //
       SetPARP(67,2.5);           // Regulates Initial State Radiation (value from best fit to D0 dijet analysis)
       SetMSTP(82,4);             // Double Gaussian Model
       SetPARP(82,2.0);           // [GeV]    PT_min at Ref. energy
       SetPARP(84,0.4);           // Core radius
       SetPARP(85,0.90) ;         // Regulates gluon prod. mechanism
       SetPARP(86,0.95);          // Regulates gluon prod. mechanism
       SetPARP(89,1800.);         // [GeV]   Ref. energy
       SetPARP(90,0.25);          // 2*epsilon (exponent in power law)
       break;
    case kPyDirectGamma:
	SetMSEL(10);
	break;
    case kPyCharmPbPbMNR:
    case kPyD0PbPbMNR:
    case kPyDPlusPbPbMNR:
    case kPyDPlusStrangePbPbMNR:
      // Tuning of Pythia parameters aimed to get a resonable agreement
      // between with the NLO calculation by Mangano, Nason, Ridolfi for the
      // c-cbar single inclusive and double differential distributions.
      // This parameter settings are meant to work with Pb-Pb collisions
      // (AliGenPythia::SetNuclei) and with kCTEQ4L PDFs.
      // To get a good agreement the minimum ptHard (AliGenPythia::SetPtHard)
      // has to be set to 2.1GeV. Example in ConfigCharmPPR.C.
	ConfigHeavyFlavor();
      // Intrinsic <kT>
      SetMSTP(91,1);
      SetPARP(91,1.304);
      SetPARP(93,6.52);
      // Set c-quark mass
      SetPMAS(4,1,1.2);
      break;
    case kPyCharmpPbMNR:
    case kPyD0pPbMNR:
    case kPyDPluspPbMNR:
    case kPyDPlusStrangepPbMNR:
      // Tuning of Pythia parameters aimed to get a resonable agreement
      // between with the NLO calculation by Mangano, Nason, Ridolfi for the
      // c-cbar single inclusive and double differential distributions.
      // This parameter settings are meant to work with p-Pb collisions
      // (AliGenPythia::SetNuclei) and with kCTEQ4L PDFs.
      // To get a good agreement the minimum ptHard (AliGenPythia::SetPtHard)
      // has to be set to 2.1GeV. Example in ConfigCharmPPR.C.
	ConfigHeavyFlavor();
      // Intrinsic <kT>
	SetMSTP(91,1);
	SetPARP(91,1.16);
	SetPARP(93,5.8);
	
      // Set c-quark mass
	SetPMAS(4,1,1.2);
      break;
    case kPyCharmppMNR:
    case kPyD0ppMNR:
    case kPyDPlusppMNR:
    case kPyDPlusStrangeppMNR:
    case kPyLambdacppMNR:
      // Tuning of Pythia parameters aimed to get a resonable agreement
      // between with the NLO calculation by Mangano, Nason, Ridolfi for the
      // c-cbar single inclusive and double differential distributions.
      // This parameter settings are meant to work with pp collisions
      // (AliGenPythia::SetNuclei) and with kCTEQ4L PDFs.
      // To get a good agreement the minimum ptHard (AliGenPythia::SetPtHard)
      // has to be set to 2.1GeV. Example in ConfigCharmPPR.C.
	ConfigHeavyFlavor();
      // Intrinsic <kT^2>
	SetMSTP(91,1);
	SetPARP(91,1.);
	SetPARP(93,5.);
	
      // Set c-quark mass
	SetPMAS(4,1,1.2);
      break;
    case kPyCharmppMNRwmi:
      // Tuning of Pythia parameters aimed to get a resonable agreement
      // between with the NLO calculation by Mangano, Nason, Ridolfi for the
      // c-cbar single inclusive and double differential distributions.
      // This parameter settings are meant to work with pp collisions
      // and with kCTEQ5L PDFs.
      // Added multiple interactions according to ATLAS tune settings.
      // To get a "reasonable" agreement with MNR results, events have to be 
      // generated with the minimum ptHard (AliGenPythia::SetPtHard)
      // set to 2.76 GeV.
      // To get a "perfect" agreement with MNR results, events have to be 
      // generated in four ptHard bins with the following relative 
      // normalizations:
      // 2.76-3 GeV: 25%
      //    3-4 GeV: 40%
      //    4-8 GeV: 29%
      //     >8 GeV:  6%
	ConfigHeavyFlavor();
      // Intrinsic <kT^2>
	SetMSTP(91,1);
	SetPARP(91,1.);
	SetPARP(93,5.);

      // Set c-quark mass
	SetPMAS(4,1,1.2);
	AtlasTuning();
	break;
    case kPyBeautyPbPbMNR:
      // Tuning of Pythia parameters aimed to get a resonable agreement
      // between with the NLO calculation by Mangano, Nason, Ridolfi for the
      // b-bbar single inclusive and double differential distributions.
      // This parameter settings are meant to work with Pb-Pb collisions
      // (AliGenPythia::SetNuclei) and with kCTEQ4L PDFs.
      // To get a good agreement the minimum ptHard (AliGenPythia::SetPtHard)
      // has to be set to 2.75GeV. Example in ConfigBeautyPPR.C.
	ConfigHeavyFlavor();
      // QCD scales
	SetPARP(67,1.0);
	SetPARP(71,1.0);
      // Intrinsic <kT>
	SetMSTP(91,1);
	SetPARP(91,2.035);
	SetPARP(93,10.17);
      // Set b-quark mass
	SetPMAS(5,1,4.75);
      break;
    case kPyBeautypPbMNR:
      // Tuning of Pythia parameters aimed to get a resonable agreement
      // between with the NLO calculation by Mangano, Nason, Ridolfi for the
      // b-bbar single inclusive and double differential distributions.
      // This parameter settings are meant to work with p-Pb collisions
      // (AliGenPythia::SetNuclei) and with kCTEQ4L PDFs.
      // To get a good agreement the minimum ptHard (AliGenPythia::SetPtHard)
      // has to be set to 2.75GeV. Example in ConfigBeautyPPR.C.
	ConfigHeavyFlavor();
      // QCD scales
	SetPARP(67,1.0);
	SetPARP(71,1.0);
      // Intrinsic <kT>
	SetMSTP(91,1);
	SetPARP(91,1.60);
	SetPARP(93,8.00);
      // Set b-quark mass
	SetPMAS(5,1,4.75);
      break;
    case kPyBeautyppMNR:
      // Tuning of Pythia parameters aimed to get a resonable agreement
      // between with the NLO calculation by Mangano, Nason, Ridolfi for the
      // b-bbar single inclusive and double differential distributions.
      // This parameter settings are meant to work with pp collisions
      // (AliGenPythia::SetNuclei) and with kCTEQ4L PDFs.
      // To get a good agreement the minimum ptHard (AliGenPythia::SetPtHard)
      // has to be set to 2.75GeV. Example in ConfigBeautyPPR.C.
	ConfigHeavyFlavor();
      // QCD scales
	SetPARP(67,1.0);
	SetPARP(71,1.0);
	
	// Intrinsic <kT>
	SetMSTP(91,1);
	SetPARP(91,1.);
	SetPARP(93,5.);
	
	// Set b-quark mass
	SetPMAS(5,1,4.75);
      break;
     case kPyBeautyJets: 
     case kPyBeautyppMNRwmi:
      // Tuning of Pythia parameters aimed to get a resonable agreement
      // between with the NLO calculation by Mangano, Nason, Ridolfi for the
      // b-bbar single inclusive and double differential distributions.
      // This parameter settings are meant to work with pp collisions
      // and with kCTEQ5L PDFs.
      // Added multiple interactions according to ATLAS tune settings.
      // To get a "reasonable" agreement with MNR results, events have to be 
      // generated with the minimum ptHard (AliGenPythia::SetPtHard)
      // set to 2.76 GeV.
      // To get a "perfect" agreement with MNR results, events have to be 
      // generated in four ptHard bins with the following relative 
      // normalizations:
      // 2.76-4 GeV:  5% 
      //    4-6 GeV: 31%
      //    6-8 GeV: 28%
      //     >8 GeV: 36%
	 ConfigHeavyFlavor();
      // QCD scales
	 SetPARP(67,1.0);
	 SetPARP(71,1.0);
	 
	 // Intrinsic <kT>
	 SetMSTP(91,1);
	 SetPARP(91,1.);
	 SetPARP(93,5.);

      // Set b-quark mass
	 SetPMAS(5,1,4.75);

	 AtlasTuning();
	 break; 
    case kPyW:

      //Inclusive production of W+/-
      SetMSEL(0);
      //f fbar -> W+ 
      SetMSUB(2,1);
      // 	//f fbar -> g W+
      // 	SetMSUB(16,1);
      // 	//f fbar -> gamma W+
      // 	SetMSUB(20,1);
      // 	//f g -> f W+  
      // 	SetMSUB(31,1);
      // 	//f gamma -> f W+
      // 	SetMSUB(36,1);
      
      // Initial/final parton shower on (Pythia default)
      // With parton showers on we are generating "W inclusive process"
      SetMSTP(61,1); //Initial QCD & QED showers on
      SetMSTP(71,1); //Final QCD & QED showers on
      
      break;  

    case kPyZ:

      //Inclusive production of Z
      SetMSEL(0);
      //f fbar -> Z/gamma
      SetMSUB(1,1);
      
      //       // f fbar -> g Z/gamma
      //       SetMSUB(15,1);
      //       // f fbar -> gamma Z/gamma
      //       SetMSUB(19,1);
      //       // f g -> f Z/gamma
      //       SetMSUB(30,1);
      //       // f gamma -> f Z/gamma
      //       SetMSUB(35,1);
      
      //only Z included, not gamma
      SetMSTP(43,2);
      
      // Initial/final parton shower on (Pythia default)
      // With parton showers on we are generating "Z inclusive process"
      SetMSTP(61,1); //Initial QCD & QED showers on
      SetMSTP(71,1); //Final QCD & QED showers on
      break;
    case kPyZgamma:
      //Inclusive production of Z
      SetMSEL(0);
      //f fbar -> Z/gamma
      SetMSUB(1,1);
      // Initial/final parton shower on (Pythia default)
      // With parton showers on we are generating "Z inclusive process"
      SetMSTP(61,1); //Initial QCD & QED showers on
      SetMSTP(71,1); //Final QCD & QED showers on
      break;
      case kPyMBRSingleDiffraction:
      case kPyMBRDoubleDiffraction:
      case kPyMBRCentralDiffraction:
      break;  
      case kPyJetsPWHG:
      //    N.B.
      //    ====
      //    For the case of jet production the following parameter setting
      //    limits the transverse momentum of secondary scatterings, due
      //    to multiple parton interactions, to be less than that of the
      //    primary interaction (see POWHEG Dijet paper arXiv:1012.3380
      //    [hep-ph] sec. 4.1 and also the PYTHIA Manual).
      SetMSTP(86,1);
      //    maximum number of errors before pythia aborts (def=10)
      SetMSTU(22,10);
      //    number of warnings printed on the shell
      SetMSTU(26,20);
      break;
      case kPyCharmPWHG:
      case kPyBeautyPWHG:
      case kPyWPWHG:
      //    number of warnings printed on the shell
      SetMSTU(26,20);

    }
//
//  Initialize PYTHIA
    SetMSTP(41,1);   // all resonance decays switched on
    if (process == kPyJetsPWHG || process == kPyCharmPWHG || process == kPyBeautyPWHG || process == kPyWPWHG) {
      Initialize("USER","","",0.);
    } else {	
      Initialize("CMS",fProjectile,fTarget,fEcms);
    }
}

Int_t AliPythia6::CheckedLuComp(Int_t kf)
{
// Check Lund particle code (for debugging)
    Int_t kc=Pycomp(kf);
    return kc;
}

void AliPythia6::SetNuclei(Int_t a1, Int_t a2)
{
// Treat protons as inside nuclei with mass numbers a1 and a2  
//    The MSTP array in the PYPARS common block is used to enable and 
//    select the nuclear structure functions. 
//    MSTP(52)  : (D=1) choice of proton and nuclear structure-function library
//            =1: internal PYTHIA acording to MSTP(51) 
//            =2: PDFLIB proton  s.f., with MSTP(51)  = 1000xNGROUP+NSET
//    If the following mass number both not equal zero, nuclear corrections of the stf are used.
//    MSTP(192) : Mass number of nucleus side 1
//    MSTP(193) : Mass number of nucleus side 2
    SetMSTP(52,2);
    SetMSTP(192, a1);
    SetMSTP(193, a2);  
}
	

AliPythia6* AliPythia6::Instance()
{ 
// Set random number generator 
    if (fgAliPythia) {
	return fgAliPythia;
    } else {
	fgAliPythia = new AliPythia6();
	return fgAliPythia;
    }
}

void AliPythia6::PrintParticles()
{ 
// Print list of particl properties
    Int_t np = 0;
    char*   name = new char[16];    
    for (Int_t kf=0; kf<1000000; kf++) {
	for (Int_t c = 1;  c > -2; c-=2) {
	    Int_t kc = Pycomp(c*kf);
	    if (kc) {
		Float_t mass  = GetPMAS(kc,1);
		Float_t width = GetPMAS(kc,2);	
		Float_t tau   = GetPMAS(kc,4);

		Pyname(kf,name);
	
		np++;
		
		printf("\n mass, width, tau: %6d %s %10.3f %10.3e %10.3e", 
		       c*kf, name, mass, width, tau);
	    }
	}
    }
    printf("\n Number of particles %d \n \n", np);
}

void  AliPythia6::ResetDecayTable()
{
//  Set default values for pythia decay switches
    Int_t i;
    for (i = 1; i <  501; i++) SetMDCY(i,1,fDefMDCY[i]);
    for (i = 1; i < 2001; i++) SetMDME(i,1,fDefMDME[i]);
}

void  AliPythia6::SetDecayTable()
{
//  Set default values for pythia decay switches
//
    Int_t i;
    for (i = 1; i <  501; i++) fDefMDCY[i] = GetMDCY(i,1);
    for (i = 1; i < 2001; i++) fDefMDME[i] = GetMDME(i,1);
}

void  AliPythia6::Pyjoin(Int_t& npart, Int_t *ipart)
{
//  Call Pythia join alogorithm to set up a string between
//  npart partons, given by indices in array ipart[npart]
//
    pyjoin(npart, ipart);
}

void  AliPythia6::Pyshowq(Int_t ip1, Int_t ip2, Double_t qmax)
{
//  Call qPythia showering
//
    pyshowq(ip1, ip2, qmax);
}

void AliPythia6::Qpygin0()
{
    //position of the hard scattering in the nuclear overlapping area.
    //just for qpythia.
    qpygin0();
}

void  AliPythia6::Pyclus(Int_t& njet)
{
//  Call Pythia clustering algorithm
//
    pyclus(njet);
}

void  AliPythia6::Pycell(Int_t& njet)
{
//  Call Pythia jet reconstruction algorithm
//
    pycell(njet);
}

void AliPythia6::GetJet(Int_t i, Float_t& px, Float_t& py, Float_t& pz, Float_t& e)
{
    // Get jet number i
    Int_t n = GetN();
    px    = GetPyjets()->P[0][n+i];
    py    = GetPyjets()->P[1][n+i];
    pz    = GetPyjets()->P[2][n+i];
    e     = GetPyjets()->P[3][n+i];
}

void  AliPythia6::Pyshow(Int_t ip1, Int_t ip2, Double_t qmax)
{
//  Call Pythia showering
//
    pyshow(ip1, ip2, qmax);
}

void AliPythia6::Pyrobo(Int_t imi, Int_t ima, Double_t the, Double_t phi, Double_t bex, Double_t bey, Double_t bez)
{
    pyrobo(imi, ima, the, phi, bex, bey, bez);
}



void AliPythia6::InitQuenching(Float_t cMin, Float_t cMax, Float_t k, Int_t iECMethod, Float_t zmax, Int_t ngmax)
{
// Initializes 
// (1) The quenching model using quenching weights according to C. Salgado and U. Wiedemann
// (2) The nuclear geometry using the Glauber Model
//     
    
    fGlauber = AliFastGlauber::Instance();
    fGlauber->Init(2);
    fGlauber->SetCentralityClass(cMin, cMax); 

    fQuenchingWeights = new AliQuenchingWeights();
    fQuenchingWeights->InitMult();
    fQuenchingWeights->SetK(k);
    fQuenchingWeights->SetECMethod(AliQuenchingWeights::kECMethod(iECMethod));
    fNGmax = ngmax;
    fZmax  = zmax;
    
}


void  AliPythia6::Quench()
{
//
//
//  Simple Jet Quenching routine:
//  =============================
//  The jet formed by all final state partons radiated by the parton created 
//  in the hard collisions is quenched by a factor (1-z) using light cone variables in 
//  the initial parton reference frame:
//  (E + p_z)new = (1-z) (E + p_z)old
//
//
//
//
//   The lost momentum is first balanced by one gluon with virtuality > 0.   
//   Subsequently the gluon splits to yield two gluons with E = p.
//
//
// 
    static Float_t eMean = 0.;
    static Int_t   icall = 0;
    
    Double_t p0[4][5];
    Double_t p1[4][5];
    Double_t p2[4][5];
    Int_t   klast[4] = {-1, -1, -1, -1};

    Int_t numpart   = fPyjets->N;
    Double_t px = 0., py = 0., pz = 0., e = 0., m = 0., p = 0., pt = 0., theta = 0., phi = 0.;
    Double_t pxq[4], pyq[4], pzq[4], eq[4], yq[4], mq[4], pq[4], phiq[4], thetaq[4], ptq[4];
    Bool_t  quenched[4];
    Double_t wjtKick[4] = {0., 0., 0., 0.};
    Int_t nGluon[4];
    Int_t qPdg[4];
    Int_t   imo, kst, pdg;
    
//
//  Sore information about Primary partons
//
//  j =
//  0, 1 partons from hard scattering
//  2, 3 partons from initial state radiation
// 
    for (Int_t i = 2; i <= 7; i++) {
	Int_t j = 0;
	// Skip gluons that participate in hard scattering
	if (i == 4 || i == 5) continue;
	// Gluons from hard Scattering
	if (i == 6 || i == 7) {
	    j = i - 6;
	    pxq[j]    = fPyjets->P[0][i];
	    pyq[j]    = fPyjets->P[1][i];
	    pzq[j]    = fPyjets->P[2][i];
	    eq[j]     = fPyjets->P[3][i];
	    mq[j]     = fPyjets->P[4][i];
	} else {
	    // Gluons from initial state radiation
	    //
	    // Obtain 4-momentum vector from difference between original parton and parton after gluon 
	    // radiation. Energy is calculated independently because initial state radition does not 
	    // conserve strictly momentum and energy for each partonic system independently.
	    //
	    // Not very clean. Should be improved !
	    //
	    //
	    j = i;
	    pxq[j]    = fPyjets->P[0][i] - fPyjets->P[0][i+2];
	    pyq[j]    = fPyjets->P[1][i] - fPyjets->P[1][i+2];
	    pzq[j]    = fPyjets->P[2][i] - fPyjets->P[2][i+2];
	    mq[j]     = fPyjets->P[4][i];
	    eq[j]     = TMath::Sqrt(pxq[j] * pxq[j] + pyq[j] * pyq[j] + pzq[j] * pzq[j] + mq[j] * mq[j]);
	}
//
//  Calculate some kinematic variables
//
	yq[j]     = 0.5 * TMath::Log((eq[j] + pzq[j] + 1.e-14) / (eq[j] - pzq[j] + 1.e-14));
	pq[j]     = TMath::Sqrt(pxq[j] * pxq[j] + pyq[j] * pyq[j] + pzq[j] * pzq[j]);
	phiq[j]   = TMath::Pi()+TMath::ATan2(-pyq[j], -pxq[j]);
	ptq[j]    = TMath::Sqrt(pxq[j] * pxq[j] + pyq[j] * pyq[j]);
	thetaq[j] = TMath::ATan2(ptq[j], pzq[j]);
	qPdg[j]   =  fPyjets->K[1][i];
    }
  
    Double_t int0[4];
    Double_t int1[4];
    
    fGlauber->GetI0I1ForPythiaAndXY(4, phiq, int0, int1, fXJet, fYJet, 15.);

    for (Int_t j = 0; j < 4; j++) {
	//
	// Quench only central jets and with E > 10.
	//


	Int_t itype = (qPdg[j] == 21) ? 2 : 1;
	//	Double_t eloss = fQuenchingWeights->GetELossRandomKFast(itype, int0[j], int1[j], eq[j]);
	Double_t eloss = fQuenchingWeights->GetELossRandomK(itype, int0[j], int1[j], eq[j]);

	if (TMath::Abs(yq[j]) > 2.5 || eq[j] < 10.) {
	    fZQuench[j] = 0.;
	} else {
	    if (eq[j] > 40. && TMath::Abs(yq[j]) < 0.5) {
		icall ++;
		eMean += eloss;
	    }
	    //
	    // Extra pt
	    Double_t l =   fQuenchingWeights->CalcLk(int0[j], int1[j]);	    
	    wjtKick[j] = TMath::Sqrt(l *  fQuenchingWeights->CalcQk(int0[j], int1[j]));
	    //
	    // Fractional energy loss
	    fZQuench[j] = eloss / eq[j];
	    //
	    // Avoid complete loss
	    //
	    if (fZQuench[j] > fZmax) fZQuench[j] = fZmax;
	    //
	    // Some debug printing

	    
//	    printf("Initial parton # %3d, Type %3d Energy %10.3f Phi %10.3f Length %10.3f Loss %10.3f Kick %10.3f Mean: %10.3f %10.3f\n", 
//		   j, itype, eq[j], phiq[j], l, eloss, wjtKick[j], eMean / Float_t(icall+1), yq[j]);
	    
//	    fZQuench[j] = 0.8;
//	    while (fZQuench[j] >= 0.95)  fZQuench[j] = gRandom->Exp(0.2);
	}
	
	quenched[j] = (fZQuench[j] > 0.01);
    } // primary partons
    
    

    Double_t pNew[1000][4];
    Int_t    kNew[1000];
    Int_t icount = 0;
    Double_t zquench[4];
    
//
//  System Loop    
    for (Int_t isys = 0; isys < 4; isys++) {
//      Skip to next system if not quenched.
	if (!quenched[isys]) continue;
	
	nGluon[isys]   = 1 + Int_t(fZQuench[isys] / (1. - fZQuench[isys]));
	if (nGluon[isys] > fNGmax) nGluon[isys] = fNGmax;
	zquench[isys] = 1. - TMath::Power(1. - fZQuench[isys], 1./Double_t(nGluon[isys]));
	wjtKick[isys]  = wjtKick[isys] / TMath::Sqrt(Double_t(nGluon[isys]));


	
	Int_t igMin = -1;
	Int_t igMax = -1;
	Double_t pg[4] = {0., 0., 0., 0.};
	
//
// Loop on radiation events

	for (Int_t iglu = 0; iglu < nGluon[isys]; iglu++) {
	    while (1) {
		icount = 0;
		for (Int_t k = 0; k < 4; k++)
		{
		    p0[isys][k] = 0.;
		    p1[isys][k] = 0.;
		    p2[isys][k] = 0.;
		}
//      Loop over partons
		for (Int_t i = 0; i < numpart; i++)
		{
		    imo =  fPyjets->K[2][i];
		    kst =  fPyjets->K[0][i];
		    pdg =  fPyjets->K[1][i];
		    
		
		
//      Quarks and gluons only
		    if (pdg != 21 && TMath::Abs(pdg) > 6) continue;
//      Particles from hard scattering only
		    
		    if (imo > 8 && imo < 1000) imo = fPyjets->K[2][imo - 1];
		    Int_t imom = imo % 1000;
		    if ((isys == 0 || isys == 1) && ((imom != (isys + 7)))) continue;
		    if ((isys == 2 || isys == 3) && ((imom != (isys + 1)))) continue;		    
		    
		    
//      Skip comment lines
		    if (kst != 1 && kst != 2) continue;
//
//      Parton kinematic
		    px    = fPyjets->P[0][i];
		    py    = fPyjets->P[1][i];
		    pz    = fPyjets->P[2][i];
		    e     = fPyjets->P[3][i];
		    m     = fPyjets->P[4][i];
		    pt    = TMath::Sqrt(px * px + py * py);
		    p     = TMath::Sqrt(px * px + py * py + pz * pz); 
		    phi   = TMath::Pi() + TMath::ATan2(-py, -px);
		    theta = TMath::ATan2(pt, pz);
		
//
//      Save 4-momentum sum for balancing
		    Int_t index = isys;
		    
		    p0[index][0] += px;
		    p0[index][1] += py;
		    p0[index][2] += pz;
		    p0[index][3] += e;
		
		    klast[index] = i;
		    
//
//      Fractional energy loss
		    Double_t z = zquench[index];
		    
		    
//      Don't fully quench radiated gluons
//
		    if (imo > 1000) {
//      This small factor makes sure that the gluons are not too close in phase space to avoid recombination
//

			z = 0.02;
		    }
//		    printf("z: %d %f\n", imo, z);
		    

//
		    
		    //
		    //
		    //      Transform into frame in which initial parton is along z-axis
		    //
		    TVector3 v(px, py, pz);
		    v.RotateZ(-phiq[index]);  v.RotateY(-thetaq[index]);
		    Double_t pxs = v.X(); Double_t pys = v.Y(); Double_t pl  = v.Z();

		    Double_t jt  = TMath::Sqrt(pxs * pxs + pys * pys);
		    Double_t mt2 = jt * jt + m * m;
		    Double_t zmax = 1.;	    
		    //
		    // Kinematic limit on z
		    //
		    if (m > 0.) zmax = 1. - m / TMath::Sqrt(m * m + jt * jt);
		    //
		    // Change light-cone kinematics rel. to initial parton
		    //	
		    Double_t eppzOld = e + pl;
		    Double_t empzOld = e - pl;
		    
		    Double_t eppzNew = (1. - z) * eppzOld;
		    Double_t empzNew = empzOld - mt2 * z / eppzOld;
		    Double_t eNew    = 0.5 * (eppzNew + empzNew);
		    Double_t plNew   = 0.5 * (eppzNew - empzNew);
		    
		    Double_t jtNew;
		    //
		    // if mt very small (or sometimes even < 0 for numerical reasons) set it to 0
		    Double_t mt2New = eppzNew * empzNew;
		    if (mt2New < 1.e-8) mt2New = 0.;
		    if (z < zmax) {
			if (m * m > mt2New) {
			    //
			    // This should not happen 
			    //
			    Fatal("Quench()", "This should never happen %e %e %e!", m, eppzNew, empzNew);
			    jtNew = 0;
			} else {
			    jtNew    = TMath::Sqrt(mt2New - m * m);
			}
		    } else {
			// If pT is to small (probably a leading massive particle) we scale only the energy
			// This can cause negative masses of the radiated gluon
			// Let's hope for the best ...
			jtNew = jt;
			eNew  = TMath::Sqrt(plNew * plNew + mt2);
			
		    }
		    //
		    //     Calculate new px, py
		    //
		    Double_t pxNew = 0;
		    Double_t pyNew = 0;

		    if (jt > 0.) {
			pxNew   = jtNew / jt * pxs;
			pyNew   = jtNew / jt * pys;	
		    }
		    
//		    Double_t dpx = pxs - pxNew;
//		    Double_t dpy = pys - pyNew;
//		    Double_t dpz = pl  - plNew;
//		    Double_t de  = e   - eNew;
//		    Double_t dmass2 = de * de  - dpx * dpx - dpy * dpy - dpz * dpz;
//		    printf("New mass (1) %e %e %e %e %e %e %e \n", dmass2, jt, jtNew, pl, plNew, e, eNew);
//		    printf("New mass (2) %e %e \n", pxNew, pyNew);
		    //
		    //      Rotate back
		    //	
		    TVector3 w(pxNew, pyNew, plNew);
		    w.RotateY(thetaq[index]); w.RotateZ(phiq[index]);
		    pxNew = w.X(); pyNew = w.Y(); plNew = w.Z();
		
		    p1[index][0] += pxNew;
		    p1[index][1] += pyNew;
		    p1[index][2] += plNew;
		    p1[index][3] += eNew;	
		    //
		    // Updated 4-momentum vectors
		    //
		    pNew[icount][0]  = pxNew;
		    pNew[icount][1]  = pyNew;
		    pNew[icount][2]  = plNew;
		    pNew[icount][3]  = eNew;
		    kNew[icount]     = i;
		    icount++;
		} // parton loop
		//
		// Check if there was phase-space for quenching
		//

		if (icount == 0) quenched[isys] = kFALSE;
		if (!quenched[isys]) break;
		
		for (Int_t j = 0; j < 4; j++) 
		{
		    p2[isys][j] = p0[isys][j] - p1[isys][j];
		}
		p2[isys][4] = p2[isys][3] * p2[isys][3] - p2[isys][0] * p2[isys][0] - p2[isys][1] * p2[isys][1] - p2[isys][2] * p2[isys][2];
		if (p2[isys][4] > 0.) {
		    p2[isys][4] = TMath::Sqrt(p2[isys][4]);
		    break;
		} else {
		    printf("Warning negative mass squared in system %d %f ! \n", isys, zquench[isys]);
		    printf("4-Momentum: %10.3e %10.3e %10.3e %10.3e %10.3e \n", p2[isys][0], p2[isys][1], p2[isys][2], p2[isys][3], p2[isys][4]);
		    if (p2[isys][4] < -0.01) {
			printf("Negative mass squared !\n");
			// Here we have to put the gluon back to mass shell
			// This will lead to a small energy imbalance
			p2[isys][4]  = 0.;
			p2[isys][3]  = TMath::Sqrt(p2[isys][0] * p2[isys][0] + p2[isys][1] * p2[isys][1] + p2[isys][2] * p2[isys][2]);
			break;
		    } else {
			p2[isys][4] = 0.;
			break;
		    }
		}
		/*
		zHeavy *= 0.98;
		printf("zHeavy lowered to %f\n", zHeavy);
		if (zHeavy < 0.01) {
		    printf("No success ! \n");
		    icount = 0;
		    quenched[isys] = kFALSE;
		    break;
		}
		*/
	    } // iteration on z (while)
 	    
//	    Update  event record
	    for (Int_t k = 0; k < icount; k++) {
//		printf("%6d %6d %10.3e %10.3e %10.3e %10.3e\n", k, kNew[k], pNew[k][0],pNew[k][1], pNew[k][2], pNew[k][3] );
		fPyjets->P[0][kNew[k]] = pNew[k][0];
		fPyjets->P[1][kNew[k]] = pNew[k][1];
		fPyjets->P[2][kNew[k]] = pNew[k][2];
		fPyjets->P[3][kNew[k]] = pNew[k][3];
	    }
	    //
	    // Add the gluons
	    //
	    Int_t ish = 0;    
	    Int_t iGlu;
	    if (!quenched[isys]) continue;
//
//      Last parton from shower i
	    Int_t in = klast[isys];
//
//      Continue if no parton in shower i selected
	    if (in == -1) continue;
//  
//      If this is the second initial parton and it is behind the first move pointer by previous ish
	    if (isys == 1 && klast[1] > klast[0]) in += ish;
//
//      Starting index
	    
//	    jmin = in - 1;
// How many additional gluons will be generated
	    ish  = 1;
	    if (p2[isys][4] > 0.05) ish = 2;
//
//      Position of gluons
	    iGlu = numpart;
	    if (iglu == 0) igMin = iGlu;
	    igMax = iGlu;
	    numpart += ish;
	    (fPyjets->N) += ish;
	    
	    if (ish == 1) {
		fPyjets->P[0][iGlu] = p2[isys][0];
		fPyjets->P[1][iGlu] = p2[isys][1];
		fPyjets->P[2][iGlu] = p2[isys][2];
		fPyjets->P[3][iGlu] = p2[isys][3];
		fPyjets->P[4][iGlu] = p2[isys][4];
		
		fPyjets->K[0][iGlu] = 1;
		if (iglu == nGluon[isys] - 1) fPyjets->K[0][iGlu] = 1;
		fPyjets->K[1][iGlu] = 21;	
		fPyjets->K[2][iGlu] = fPyjets->K[2][in] + 1000;
		fPyjets->K[3][iGlu] = -1;	
		fPyjets->K[4][iGlu] = -1;
		
		pg[0] += p2[isys][0];
		pg[1] += p2[isys][1];
		pg[2] += p2[isys][2];
		pg[3] += p2[isys][3];
	    } else {
		//
		// Split gluon in rest frame.
		//
		Double_t bx   =  p2[isys][0] / p2[isys][3];
		Double_t by   =  p2[isys][1] / p2[isys][3];
		Double_t bz   =  p2[isys][2] / p2[isys][3];
		Double_t pst  =  p2[isys][4] / 2.;
		//
		// Isotropic decay ????
		Double_t cost = 2. * gRandom->Rndm() - 1.;
		Double_t sint = TMath::Sqrt((1.-cost)*(1.+cost));
		Double_t phis =  2. * TMath::Pi() * gRandom->Rndm();
		
		Double_t pz1 =   pst * cost;
		Double_t pz2 =  -pst * cost;
		Double_t pt1 =   pst * sint;
		Double_t pt2 =  -pst * sint;
		Double_t px1 =   pt1 * TMath::Cos(phis);
		Double_t py1 =   pt1 * TMath::Sin(phis);	    
		Double_t px2 =   pt2 * TMath::Cos(phis);
		Double_t py2 =   pt2 * TMath::Sin(phis);	    
		
		fPyjets->P[0][iGlu] = px1;
		fPyjets->P[1][iGlu] = py1;
		fPyjets->P[2][iGlu] = pz1;
		fPyjets->P[3][iGlu] = pst;
		fPyjets->P[4][iGlu] = 0.;
		
		fPyjets->K[0][iGlu] = 1 ;
		fPyjets->K[1][iGlu] = 21;	
		fPyjets->K[2][iGlu] = fPyjets->K[2][in] + 1000;
		fPyjets->K[3][iGlu] = -1;	
		fPyjets->K[4][iGlu] = -1;
		
		fPyjets->P[0][iGlu+1] = px2;
		fPyjets->P[1][iGlu+1] = py2;
		fPyjets->P[2][iGlu+1] = pz2;
		fPyjets->P[3][iGlu+1] = pst;
		fPyjets->P[4][iGlu+1] = 0.;
		
		fPyjets->K[0][iGlu+1] = 1;
		if (iglu == nGluon[isys] - 1) fPyjets->K[0][iGlu+1] = 1;
		fPyjets->K[1][iGlu+1] = 21;	
		fPyjets->K[2][iGlu+1] = fPyjets->K[2][in] + 1000;
		fPyjets->K[3][iGlu+1] = -1;	
		fPyjets->K[4][iGlu+1] = -1;
		SetMSTU(1,0);
		SetMSTU(2,0);
		//
		// Boost back
		//
		Pyrobo(iGlu + 1, iGlu + 2, 0., 0., bx, by, bz);
	    }
/*    
	    for (Int_t ig = iGlu; ig < iGlu+ish; ig++) {
		Double_t px, py, pz;
		px = fPyjets->P[0][ig]; 
		py = fPyjets->P[1][ig]; 
		pz = fPyjets->P[2][ig]; 
		TVector3 v(px, py, pz);
		v.RotateZ(-phiq[isys]);
		v.RotateY(-thetaq[isys]);
		Double_t pxs     = v.X(); Double_t pys = v.Y(); Double_t pzs  = v.Z();	   
		Double_t r       = AliPythiaRndm::GetPythiaRandom()->Rndm();
		Double_t jtKick  = 0.3 * TMath::Sqrt(-TMath::Log(r));
		if (ish == 2)   jtKick  = wjtKick[i] * TMath::Sqrt(-TMath::Log(r)) / TMath::Sqrt(2.);
		Double_t phiKick = 2. * TMath::Pi() * AliPythiaRndm::GetPythiaRandom()->Rndm();
		pxs += jtKick * TMath::Cos(phiKick);
		pys += jtKick * TMath::Sin(phiKick);
		TVector3 w(pxs, pys, pzs);
		w.RotateY(thetaq[isys]);
		w.RotateZ(phiq[isys]);
		fPyjets->P[0][ig] = w.X(); 
		fPyjets->P[1][ig] = w.Y(); 
		fPyjets->P[2][ig] = w.Z(); 
		fPyjets->P[2][ig] = w.Mag();
	    }
*/
	} // kGluon	    
	
	
    // Check energy conservation
	Double_t pxs = 0.;
	Double_t pys = 0.;
	Double_t pzs = 0.;	
	Double_t es  = 14000.;
	
	for (Int_t i = 0; i < numpart; i++)
	{
	    kst =  fPyjets->K[0][i];
	    if (kst != 1 && kst != 2) continue;
	    pxs += fPyjets->P[0][i];
	    pys += fPyjets->P[1][i];
	    pzs += fPyjets->P[2][i];	    
	    es  -= fPyjets->P[3][i];	    
	}
	if (TMath::Abs(pxs) > 1.e-2 ||
	    TMath::Abs(pys) > 1.e-2 ||
	    TMath::Abs(pzs) > 1.e-1) {
	    printf("%e %e %e %e\n", pxs, pys, pzs, es);
//		Fatal("Quench()", "4-Momentum non-conservation");
	}
	
    } // end quenching loop (systems)
// Clean-up
    for (Int_t i = 0; i < numpart; i++)
    {
	imo =  fPyjets->K[2][i];
	if (imo > 1000) {
	    fPyjets->K[2][i] = fPyjets->K[2][i] % 1000;
	}
    }
//	this->Pylist(1);
} // end quench


void AliPythia6::Pyquen(Double_t a, Int_t ibf, Double_t b)
{
    // Igor Lokthine's quenching routine
    // http://lokhtin.web.cern.ch/lokhtin/pyquen/pyquen.txt

    pyquen(a, ibf, b);
}

void AliPythia6::SetPyquenParameters(Double_t t0, Double_t tau0, Int_t nf, Int_t iengl, Int_t iangl)
{
    // Set the parameters for the PYQUEN package.
    // See comments in PyquenCommon.h
    
    
    PYQPAR.t0    = t0;
    PYQPAR.tau0  = tau0;
    PYQPAR.nf    = nf;
    PYQPAR.iengl = iengl;
    PYQPAR.iangl = iangl;
}

void  AliPythia6::LoadEvent(AliStack* stack, Int_t flag, Int_t reHadr)
{
//
// Load event into Pythia Common Block
//

    Int_t npart = stack -> GetNprimary();
    Int_t n0 = 0;
    
    if (!flag) {
	GetPyjets()->N = npart;
    } else {
	n0 = GetPyjets()->N;
	GetPyjets()->N = n0 + npart;
    }
    
    
    for (Int_t part = 0; part < npart; part++) {
	TParticle *mPart = stack->Particle(part);
	
	Int_t kf     =  mPart->GetPdgCode();
	Int_t ks     =  mPart->GetStatusCode();
	Int_t idf    =  mPart->GetFirstDaughter();
	Int_t idl    =  mPart->GetLastDaughter();
	
	if (reHadr) {
	    if (ks == 11 || ks == 12) {
		ks  -= 10;
		idf  = -1;
		idl  = -1;
	    }
	}
	
	Float_t px = mPart->Px();
	Float_t py = mPart->Py();
	Float_t pz = mPart->Pz();
	Float_t e  = mPart->Energy();
	Float_t m  = mPart->GetCalcMass();
	
	
	(GetPyjets())->P[0][part+n0] = px;
	(GetPyjets())->P[1][part+n0] = py;
	(GetPyjets())->P[2][part+n0] = pz;
	(GetPyjets())->P[3][part+n0] = e;
	(GetPyjets())->P[4][part+n0] = m;
	
	(GetPyjets())->K[1][part+n0] = kf;
	(GetPyjets())->K[0][part+n0] = ks;
	(GetPyjets())->K[3][part+n0] = idf + 1;
	(GetPyjets())->K[4][part+n0] = idl + 1;
	(GetPyjets())->K[2][part+n0] = mPart->GetFirstMother() + 1;
    }
}


void AliPythia6::Pyevnw()
{
    // New multiple interaction scenario
    pyevnw();
}

void AliPythia6::GetQuenchingParameters(Double_t& xp, Double_t& yp, Double_t z[4])
{
    // Return event specific quenching parameters
    xp = fXJet;
    yp = fYJet;
    for (Int_t i = 0; i < 4; i++) z[i] = fZQuench[i];

}

void AliPythia6::ConfigHeavyFlavor()
{
    //
    // Default configuration for Heavy Flavor production
    //
    // All QCD processes
    //
    SetMSEL(1);
    
    // No multiple interactions
    SetMSTP(81,0);
    SetPARP(81, 0.);
    SetPARP(82, 0.);    
    // Initial/final parton shower on (Pythia default)
    SetMSTP(61,1);
    SetMSTP(71,1);
    
    // 2nd order alpha_s
    SetMSTP(2,2);
    
    // QCD scales
    SetMSTP(32,2);
    SetPARP(34,1.0);
}

void AliPythia6::AtlasTuning()
{
    //
    // Configuration for the ATLAS tuning
	SetMSTP(51,AliStructFuncType::PDFsetIndex(kCTEQ5L));
	SetMSTP(81,1);             // Multiple Interactions ON
	SetMSTP(82,4);             // Double Gaussian Model
	SetPARP(81,1.9);           // Min. pt for multiple interactions (default in 6.2-14) 
	SetPARP(82,1.8);           // [GeV]    PT_min at Ref. energy
	SetPARP(89,1000.);         // [GeV]   Ref. energy
	SetPARP(90,0.16);          // 2*epsilon (exponent in power law)
	SetPARP(83,0.5);           // Core density in proton matter distribution (def.value)
	SetPARP(84,0.5);           // Core radius
	SetPARP(85,0.33);          // Regulates gluon prod. mechanism
	SetPARP(86,0.66);          // Regulates gluon prod. mechanism
	SetPARP(67,1);             // Regulates Initial State Radiation
}

void AliPythia6::AtlasTuningMC09()
{
    //
    // Configuration for the ATLAS tuning
    printf("ATLAS New TUNE MC09\n");
    SetMSTP(81,21);             // treatment for MI, ISR, FSR and beam remnants: MI on, new model
    SetMSTP(82, 4);             // Double Gaussian Model
    SetMSTP(52, 2);             // External PDF
    SetMSTP(51, 20650);         // MRST LO*
  
    
    SetMSTP(70, 0);             // (was 2: def manual 1, def code 0) virtuality scale for ISR 
    SetMSTP(72, 1);             // (was 0: def 1) maximum scale for FSR
    SetMSTP(88, 1);             // (was 0: def 1) strategy for qq junction to di-quark or baryon in beam remnant
    SetMSTP(90, 0);             // (was 1: def 0) strategy of compensate the primordial kT

    SetPARP(78, 0.3);           // the amount of color reconnection in the final state
    SetPARP(80, 0.1);           // probability of color partons kicked out from beam remnant
    SetPARP(82, 2.3);           // [GeV]    PT_min at Ref. energy    
    SetPARP(83, 0.8);           // Core density in proton matter distribution (def.value)    
    SetPARP(84, 0.7);           // Core radius
    SetPARP(90, 0.25);          //  2*epsilon (exponent in power law)
    SetPARJ(81, 0.29);          // (was 0.14: def 0.29) Labmda value in running alpha_s for parton showers

    SetMSTP(95, 6);
    SetPARJ(41, 0.3);           // a and b parameters of the symmm. Lund FF
    SetPARJ(42, 0.58);
    SetPARJ(46, 0.75);          // mod. of the Lund FF for heavy end-point quarks
    SetPARP(89,1800.);         // [GeV]   Ref. energy
}

void AliPythia6::SetWeightPower(Double_t pow)
{
    setpowwght(pow);
    SetMSTP(142, 1); // Tell Pythia to use pyevwt to calculate event wghts
}

void AliPythia6::SetPtHardRange(Float_t ptmin, Float_t ptmax)
{
    // Set the pt hard range
    SetCKIN(3, ptmin);
    SetCKIN(4, ptmax);
}

void AliPythia6::SetYHardRange(Float_t ymin, Float_t ymax)
{
    // Set the y hard range
    SetCKIN(7, ymin);
    SetCKIN(8, ymax);
}


void AliPythia6::SetFragmentation(Int_t flag)
{
    // Switch fragmentation on/off
    SetMSTP(111, flag);
}

void AliPythia6::SetInitialAndFinalStateRadiation(Int_t flag1, Int_t flag2)
{
//  initial state radiation    
    SetMSTP(61, flag1);
//  final state radiation
    SetMSTP(71, flag2);
}

void AliPythia6::SetIntrinsicKt(Float_t kt)
{
    // Set the inreinsic kt
    if (kt > 0.) {
	SetMSTP(91,1);
	SetPARP(91,kt);	
	SetPARP(93, 4. * kt);
    } else {
	SetMSTP(91,0);
    }
}

void AliPythia6::SwitchHFOff()
{
    // Switch off heavy flavor
    // Maximum number of quark flavours used in pdf 
    SetMSTP(58, 3);
    // Maximum number of flavors that can be used in showers
    SetMSTJ(45, 3);	
}

void AliPythia6::SetPycellParameters(Float_t etamax, Int_t neta, Int_t nphi,
				       Float_t thresh, Float_t etseed, Float_t minet, Float_t r)
{
// Set pycell parameters
    SetPARU(51, etamax);
    SetMSTU(51, neta);
    SetMSTU(52, nphi);
    SetPARU(58, thresh);
    SetPARU(52, etseed);
    SetPARU(53, minet);
    SetPARU(54, r);
    SetMSTU(54,  2);
}

void AliPythia6::ModifiedSplitting()
{
    // Modified splitting probability as a model for quenching
    SetPARJ(200, 0.8);
    SetMSTJ(41, 1);  // QCD radiation only
    SetMSTJ(42, 2);  // angular ordering
    SetMSTJ(44, 2);  // option to run alpha_s
    SetMSTJ(47, 0);  // No correction back to hard scattering element
    SetMSTJ(50, 0);  // No coherence in first branching
    SetPARJ(82, 1.); // Cut off for parton showers
}

void AliPythia6::SwitchHadronisationOff()
{
    // Switch off hadronisarion
    SetMSTJ(1, 0);
}

void AliPythia6::SwitchHadronisationOn()
{
    // Switch on hadronisarion
    SetMSTJ(1, 1);
}


void AliPythia6::GetXandQ(Float_t& x1, Float_t& x2, Float_t& q)
{
    // Get x1, x2 and Q for this event
    
    q  = GetVINT(51);
    x1 = GetVINT(41);
    x2 = GetVINT(42);
}

Float_t AliPythia6::GetXSection()
{
    // Get the total cross-section
    return (GetPARI(1));
}

Float_t AliPythia6::GetPtHard()
{
    // Get the pT hard for this event
    return GetVINT(47);
}

Int_t AliPythia6::ProcessCode()
{
    // Get the subprocess code
    return GetMSTI(1);
}

void AliPythia6::PrintStatistics()
{
    // End of run statistics
    Pystat(1);
}

void AliPythia6::EventListing()
{
    // End of run statistics
    Pylist(2);
}

AliPythia6& AliPythia6::operator=(const  AliPythia6& rhs)
{
// Assignment operator
    rhs.Copy(*this);
    return *this;
}

 void AliPythia6::Copy(TObject&) const
{
    //
    // Copy 
    //
    Fatal("Copy","Not implemented!\n");
}
 AliPythia6.cxx:1
 AliPythia6.cxx:2
 AliPythia6.cxx:3
 AliPythia6.cxx:4
 AliPythia6.cxx:5
 AliPythia6.cxx:6
 AliPythia6.cxx:7
 AliPythia6.cxx:8
 AliPythia6.cxx:9
 AliPythia6.cxx:10
 AliPythia6.cxx:11
 AliPythia6.cxx:12
 AliPythia6.cxx:13
 AliPythia6.cxx:14
 AliPythia6.cxx:15
 AliPythia6.cxx:16
 AliPythia6.cxx:17
 AliPythia6.cxx:18
 AliPythia6.cxx:19
 AliPythia6.cxx:20
 AliPythia6.cxx:21
 AliPythia6.cxx:22
 AliPythia6.cxx:23
 AliPythia6.cxx:24
 AliPythia6.cxx:25
 AliPythia6.cxx:26
 AliPythia6.cxx:27
 AliPythia6.cxx:28
 AliPythia6.cxx:29
 AliPythia6.cxx:30
 AliPythia6.cxx:31
 AliPythia6.cxx:32
 AliPythia6.cxx:33
 AliPythia6.cxx:34
 AliPythia6.cxx:35
 AliPythia6.cxx:36
 AliPythia6.cxx:37
 AliPythia6.cxx:38
 AliPythia6.cxx:39
 AliPythia6.cxx:40
 AliPythia6.cxx:41
 AliPythia6.cxx:42
 AliPythia6.cxx:43
 AliPythia6.cxx:44
 AliPythia6.cxx:45
 AliPythia6.cxx:46
 AliPythia6.cxx:47
 AliPythia6.cxx:48
 AliPythia6.cxx:49
 AliPythia6.cxx:50
 AliPythia6.cxx:51
 AliPythia6.cxx:52
 AliPythia6.cxx:53
 AliPythia6.cxx:54
 AliPythia6.cxx:55
 AliPythia6.cxx:56
 AliPythia6.cxx:57
 AliPythia6.cxx:58
 AliPythia6.cxx:59
 AliPythia6.cxx:60
 AliPythia6.cxx:61
 AliPythia6.cxx:62
 AliPythia6.cxx:63
 AliPythia6.cxx:64
 AliPythia6.cxx:65
 AliPythia6.cxx:66
 AliPythia6.cxx:67
 AliPythia6.cxx:68
 AliPythia6.cxx:69
 AliPythia6.cxx:70
 AliPythia6.cxx:71
 AliPythia6.cxx:72
 AliPythia6.cxx:73
 AliPythia6.cxx:74
 AliPythia6.cxx:75
 AliPythia6.cxx:76
 AliPythia6.cxx:77
 AliPythia6.cxx:78
 AliPythia6.cxx:79
 AliPythia6.cxx:80
 AliPythia6.cxx:81
 AliPythia6.cxx:82
 AliPythia6.cxx:83
 AliPythia6.cxx:84
 AliPythia6.cxx:85
 AliPythia6.cxx:86
 AliPythia6.cxx:87
 AliPythia6.cxx:88
 AliPythia6.cxx:89
 AliPythia6.cxx:90
 AliPythia6.cxx:91
 AliPythia6.cxx:92
 AliPythia6.cxx:93
 AliPythia6.cxx:94
 AliPythia6.cxx:95
 AliPythia6.cxx:96
 AliPythia6.cxx:97
 AliPythia6.cxx:98
 AliPythia6.cxx:99
 AliPythia6.cxx:100
 AliPythia6.cxx:101
 AliPythia6.cxx:102
 AliPythia6.cxx:103
 AliPythia6.cxx:104
 AliPythia6.cxx:105
 AliPythia6.cxx:106
 AliPythia6.cxx:107
 AliPythia6.cxx:108
 AliPythia6.cxx:109
 AliPythia6.cxx:110
 AliPythia6.cxx:111
 AliPythia6.cxx:112
 AliPythia6.cxx:113
 AliPythia6.cxx:114
 AliPythia6.cxx:115
 AliPythia6.cxx:116
 AliPythia6.cxx:117
 AliPythia6.cxx:118
 AliPythia6.cxx:119
 AliPythia6.cxx:120
 AliPythia6.cxx:121
 AliPythia6.cxx:122
 AliPythia6.cxx:123
 AliPythia6.cxx:124
 AliPythia6.cxx:125
 AliPythia6.cxx:126
 AliPythia6.cxx:127
 AliPythia6.cxx:128
 AliPythia6.cxx:129
 AliPythia6.cxx:130
 AliPythia6.cxx:131
 AliPythia6.cxx:132
 AliPythia6.cxx:133
 AliPythia6.cxx:134
 AliPythia6.cxx:135
 AliPythia6.cxx:136
 AliPythia6.cxx:137
 AliPythia6.cxx:138
 AliPythia6.cxx:139
 AliPythia6.cxx:140
 AliPythia6.cxx:141
 AliPythia6.cxx:142
 AliPythia6.cxx:143
 AliPythia6.cxx:144
 AliPythia6.cxx:145
 AliPythia6.cxx:146
 AliPythia6.cxx:147
 AliPythia6.cxx:148
 AliPythia6.cxx:149
 AliPythia6.cxx:150
 AliPythia6.cxx:151
 AliPythia6.cxx:152
 AliPythia6.cxx:153
 AliPythia6.cxx:154
 AliPythia6.cxx:155
 AliPythia6.cxx:156
 AliPythia6.cxx:157
 AliPythia6.cxx:158
 AliPythia6.cxx:159
 AliPythia6.cxx:160
 AliPythia6.cxx:161
 AliPythia6.cxx:162
 AliPythia6.cxx:163
 AliPythia6.cxx:164
 AliPythia6.cxx:165
 AliPythia6.cxx:166
 AliPythia6.cxx:167
 AliPythia6.cxx:168
 AliPythia6.cxx:169
 AliPythia6.cxx:170
 AliPythia6.cxx:171
 AliPythia6.cxx:172
 AliPythia6.cxx:173
 AliPythia6.cxx:174
 AliPythia6.cxx:175
 AliPythia6.cxx:176
 AliPythia6.cxx:177
 AliPythia6.cxx:178
 AliPythia6.cxx:179
 AliPythia6.cxx:180
 AliPythia6.cxx:181
 AliPythia6.cxx:182
 AliPythia6.cxx:183
 AliPythia6.cxx:184
 AliPythia6.cxx:185
 AliPythia6.cxx:186
 AliPythia6.cxx:187
 AliPythia6.cxx:188
 AliPythia6.cxx:189
 AliPythia6.cxx:190
 AliPythia6.cxx:191
 AliPythia6.cxx:192
 AliPythia6.cxx:193
 AliPythia6.cxx:194
 AliPythia6.cxx:195
 AliPythia6.cxx:196
 AliPythia6.cxx:197
 AliPythia6.cxx:198
 AliPythia6.cxx:199
 AliPythia6.cxx:200
 AliPythia6.cxx:201
 AliPythia6.cxx:202
 AliPythia6.cxx:203
 AliPythia6.cxx:204
 AliPythia6.cxx:205
 AliPythia6.cxx:206
 AliPythia6.cxx:207
 AliPythia6.cxx:208
 AliPythia6.cxx:209
 AliPythia6.cxx:210
 AliPythia6.cxx:211
 AliPythia6.cxx:212
 AliPythia6.cxx:213
 AliPythia6.cxx:214
 AliPythia6.cxx:215
 AliPythia6.cxx:216
 AliPythia6.cxx:217
 AliPythia6.cxx:218
 AliPythia6.cxx:219
 AliPythia6.cxx:220
 AliPythia6.cxx:221
 AliPythia6.cxx:222
 AliPythia6.cxx:223
 AliPythia6.cxx:224
 AliPythia6.cxx:225
 AliPythia6.cxx:226
 AliPythia6.cxx:227
 AliPythia6.cxx:228
 AliPythia6.cxx:229
 AliPythia6.cxx:230
 AliPythia6.cxx:231
 AliPythia6.cxx:232
 AliPythia6.cxx:233
 AliPythia6.cxx:234
 AliPythia6.cxx:235
 AliPythia6.cxx:236
 AliPythia6.cxx:237
 AliPythia6.cxx:238
 AliPythia6.cxx:239
 AliPythia6.cxx:240
 AliPythia6.cxx:241
 AliPythia6.cxx:242
 AliPythia6.cxx:243
 AliPythia6.cxx:244
 AliPythia6.cxx:245
 AliPythia6.cxx:246
 AliPythia6.cxx:247
 AliPythia6.cxx:248
 AliPythia6.cxx:249
 AliPythia6.cxx:250
 AliPythia6.cxx:251
 AliPythia6.cxx:252
 AliPythia6.cxx:253
 AliPythia6.cxx:254
 AliPythia6.cxx:255
 AliPythia6.cxx:256
 AliPythia6.cxx:257
 AliPythia6.cxx:258
 AliPythia6.cxx:259
 AliPythia6.cxx:260
 AliPythia6.cxx:261
 AliPythia6.cxx:262
 AliPythia6.cxx:263
 AliPythia6.cxx:264
 AliPythia6.cxx:265
 AliPythia6.cxx:266
 AliPythia6.cxx:267
 AliPythia6.cxx:268
 AliPythia6.cxx:269
 AliPythia6.cxx:270
 AliPythia6.cxx:271
 AliPythia6.cxx:272
 AliPythia6.cxx:273
 AliPythia6.cxx:274
 AliPythia6.cxx:275
 AliPythia6.cxx:276
 AliPythia6.cxx:277
 AliPythia6.cxx:278
 AliPythia6.cxx:279
 AliPythia6.cxx:280
 AliPythia6.cxx:281
 AliPythia6.cxx:282
 AliPythia6.cxx:283
 AliPythia6.cxx:284
 AliPythia6.cxx:285
 AliPythia6.cxx:286
 AliPythia6.cxx:287
 AliPythia6.cxx:288
 AliPythia6.cxx:289
 AliPythia6.cxx:290
 AliPythia6.cxx:291
 AliPythia6.cxx:292
 AliPythia6.cxx:293
 AliPythia6.cxx:294
 AliPythia6.cxx:295
 AliPythia6.cxx:296
 AliPythia6.cxx:297
 AliPythia6.cxx:298
 AliPythia6.cxx:299
 AliPythia6.cxx:300
 AliPythia6.cxx:301
 AliPythia6.cxx:302
 AliPythia6.cxx:303
 AliPythia6.cxx:304
 AliPythia6.cxx:305
 AliPythia6.cxx:306
 AliPythia6.cxx:307
 AliPythia6.cxx:308
 AliPythia6.cxx:309
 AliPythia6.cxx:310
 AliPythia6.cxx:311
 AliPythia6.cxx:312
 AliPythia6.cxx:313
 AliPythia6.cxx:314
 AliPythia6.cxx:315
 AliPythia6.cxx:316
 AliPythia6.cxx:317
 AliPythia6.cxx:318
 AliPythia6.cxx:319
 AliPythia6.cxx:320
 AliPythia6.cxx:321
 AliPythia6.cxx:322
 AliPythia6.cxx:323
 AliPythia6.cxx:324
 AliPythia6.cxx:325
 AliPythia6.cxx:326
 AliPythia6.cxx:327
 AliPythia6.cxx:328
 AliPythia6.cxx:329
 AliPythia6.cxx:330
 AliPythia6.cxx:331
 AliPythia6.cxx:332
 AliPythia6.cxx:333
 AliPythia6.cxx:334
 AliPythia6.cxx:335
 AliPythia6.cxx:336
 AliPythia6.cxx:337
 AliPythia6.cxx:338
 AliPythia6.cxx:339
 AliPythia6.cxx:340
 AliPythia6.cxx:341
 AliPythia6.cxx:342
 AliPythia6.cxx:343
 AliPythia6.cxx:344
 AliPythia6.cxx:345
 AliPythia6.cxx:346
 AliPythia6.cxx:347
 AliPythia6.cxx:348
 AliPythia6.cxx:349
 AliPythia6.cxx:350
 AliPythia6.cxx:351
 AliPythia6.cxx:352
 AliPythia6.cxx:353
 AliPythia6.cxx:354
 AliPythia6.cxx:355
 AliPythia6.cxx:356
 AliPythia6.cxx:357
 AliPythia6.cxx:358
 AliPythia6.cxx:359
 AliPythia6.cxx:360
 AliPythia6.cxx:361
 AliPythia6.cxx:362
 AliPythia6.cxx:363
 AliPythia6.cxx:364
 AliPythia6.cxx:365
 AliPythia6.cxx:366
 AliPythia6.cxx:367
 AliPythia6.cxx:368
 AliPythia6.cxx:369
 AliPythia6.cxx:370
 AliPythia6.cxx:371
 AliPythia6.cxx:372
 AliPythia6.cxx:373
 AliPythia6.cxx:374
 AliPythia6.cxx:375
 AliPythia6.cxx:376
 AliPythia6.cxx:377
 AliPythia6.cxx:378
 AliPythia6.cxx:379
 AliPythia6.cxx:380
 AliPythia6.cxx:381
 AliPythia6.cxx:382
 AliPythia6.cxx:383
 AliPythia6.cxx:384
 AliPythia6.cxx:385
 AliPythia6.cxx:386
 AliPythia6.cxx:387
 AliPythia6.cxx:388
 AliPythia6.cxx:389
 AliPythia6.cxx:390
 AliPythia6.cxx:391
 AliPythia6.cxx:392
 AliPythia6.cxx:393
 AliPythia6.cxx:394
 AliPythia6.cxx:395
 AliPythia6.cxx:396
 AliPythia6.cxx:397
 AliPythia6.cxx:398
 AliPythia6.cxx:399
 AliPythia6.cxx:400
 AliPythia6.cxx:401
 AliPythia6.cxx:402
 AliPythia6.cxx:403
 AliPythia6.cxx:404
 AliPythia6.cxx:405
 AliPythia6.cxx:406
 AliPythia6.cxx:407
 AliPythia6.cxx:408
 AliPythia6.cxx:409
 AliPythia6.cxx:410
 AliPythia6.cxx:411
 AliPythia6.cxx:412
 AliPythia6.cxx:413
 AliPythia6.cxx:414
 AliPythia6.cxx:415
 AliPythia6.cxx:416
 AliPythia6.cxx:417
 AliPythia6.cxx:418
 AliPythia6.cxx:419
 AliPythia6.cxx:420
 AliPythia6.cxx:421
 AliPythia6.cxx:422
 AliPythia6.cxx:423
 AliPythia6.cxx:424
 AliPythia6.cxx:425
 AliPythia6.cxx:426
 AliPythia6.cxx:427
 AliPythia6.cxx:428
 AliPythia6.cxx:429
 AliPythia6.cxx:430
 AliPythia6.cxx:431
 AliPythia6.cxx:432
 AliPythia6.cxx:433
 AliPythia6.cxx:434
 AliPythia6.cxx:435
 AliPythia6.cxx:436
 AliPythia6.cxx:437
 AliPythia6.cxx:438
 AliPythia6.cxx:439
 AliPythia6.cxx:440
 AliPythia6.cxx:441
 AliPythia6.cxx:442
 AliPythia6.cxx:443
 AliPythia6.cxx:444
 AliPythia6.cxx:445
 AliPythia6.cxx:446
 AliPythia6.cxx:447
 AliPythia6.cxx:448
 AliPythia6.cxx:449
 AliPythia6.cxx:450
 AliPythia6.cxx:451
 AliPythia6.cxx:452
 AliPythia6.cxx:453
 AliPythia6.cxx:454
 AliPythia6.cxx:455
 AliPythia6.cxx:456
 AliPythia6.cxx:457
 AliPythia6.cxx:458
 AliPythia6.cxx:459
 AliPythia6.cxx:460
 AliPythia6.cxx:461
 AliPythia6.cxx:462
 AliPythia6.cxx:463
 AliPythia6.cxx:464
 AliPythia6.cxx:465
 AliPythia6.cxx:466
 AliPythia6.cxx:467
 AliPythia6.cxx:468
 AliPythia6.cxx:469
 AliPythia6.cxx:470
 AliPythia6.cxx:471
 AliPythia6.cxx:472
 AliPythia6.cxx:473
 AliPythia6.cxx:474
 AliPythia6.cxx:475
 AliPythia6.cxx:476
 AliPythia6.cxx:477
 AliPythia6.cxx:478
 AliPythia6.cxx:479
 AliPythia6.cxx:480
 AliPythia6.cxx:481
 AliPythia6.cxx:482
 AliPythia6.cxx:483
 AliPythia6.cxx:484
 AliPythia6.cxx:485
 AliPythia6.cxx:486
 AliPythia6.cxx:487
 AliPythia6.cxx:488
 AliPythia6.cxx:489
 AliPythia6.cxx:490
 AliPythia6.cxx:491
 AliPythia6.cxx:492
 AliPythia6.cxx:493
 AliPythia6.cxx:494
 AliPythia6.cxx:495
 AliPythia6.cxx:496
 AliPythia6.cxx:497
 AliPythia6.cxx:498
 AliPythia6.cxx:499
 AliPythia6.cxx:500
 AliPythia6.cxx:501
 AliPythia6.cxx:502
 AliPythia6.cxx:503
 AliPythia6.cxx:504
 AliPythia6.cxx:505
 AliPythia6.cxx:506
 AliPythia6.cxx:507
 AliPythia6.cxx:508
 AliPythia6.cxx:509
 AliPythia6.cxx:510
 AliPythia6.cxx:511
 AliPythia6.cxx:512
 AliPythia6.cxx:513
 AliPythia6.cxx:514
 AliPythia6.cxx:515
 AliPythia6.cxx:516
 AliPythia6.cxx:517
 AliPythia6.cxx:518
 AliPythia6.cxx:519
 AliPythia6.cxx:520
 AliPythia6.cxx:521
 AliPythia6.cxx:522
 AliPythia6.cxx:523
 AliPythia6.cxx:524
 AliPythia6.cxx:525
 AliPythia6.cxx:526
 AliPythia6.cxx:527
 AliPythia6.cxx:528
 AliPythia6.cxx:529
 AliPythia6.cxx:530
 AliPythia6.cxx:531
 AliPythia6.cxx:532
 AliPythia6.cxx:533
 AliPythia6.cxx:534
 AliPythia6.cxx:535
 AliPythia6.cxx:536
 AliPythia6.cxx:537
 AliPythia6.cxx:538
 AliPythia6.cxx:539
 AliPythia6.cxx:540
 AliPythia6.cxx:541
 AliPythia6.cxx:542
 AliPythia6.cxx:543
 AliPythia6.cxx:544
 AliPythia6.cxx:545
 AliPythia6.cxx:546
 AliPythia6.cxx:547
 AliPythia6.cxx:548
 AliPythia6.cxx:549
 AliPythia6.cxx:550
 AliPythia6.cxx:551
 AliPythia6.cxx:552
 AliPythia6.cxx:553
 AliPythia6.cxx:554
 AliPythia6.cxx:555
 AliPythia6.cxx:556
 AliPythia6.cxx:557
 AliPythia6.cxx:558
 AliPythia6.cxx:559
 AliPythia6.cxx:560
 AliPythia6.cxx:561
 AliPythia6.cxx:562
 AliPythia6.cxx:563
 AliPythia6.cxx:564
 AliPythia6.cxx:565
 AliPythia6.cxx:566
 AliPythia6.cxx:567
 AliPythia6.cxx:568
 AliPythia6.cxx:569
 AliPythia6.cxx:570
 AliPythia6.cxx:571
 AliPythia6.cxx:572
 AliPythia6.cxx:573
 AliPythia6.cxx:574
 AliPythia6.cxx:575
 AliPythia6.cxx:576
 AliPythia6.cxx:577
 AliPythia6.cxx:578
 AliPythia6.cxx:579
 AliPythia6.cxx:580
 AliPythia6.cxx:581
 AliPythia6.cxx:582
 AliPythia6.cxx:583
 AliPythia6.cxx:584
 AliPythia6.cxx:585
 AliPythia6.cxx:586
 AliPythia6.cxx:587
 AliPythia6.cxx:588
 AliPythia6.cxx:589
 AliPythia6.cxx:590
 AliPythia6.cxx:591
 AliPythia6.cxx:592
 AliPythia6.cxx:593
 AliPythia6.cxx:594
 AliPythia6.cxx:595
 AliPythia6.cxx:596
 AliPythia6.cxx:597
 AliPythia6.cxx:598
 AliPythia6.cxx:599
 AliPythia6.cxx:600
 AliPythia6.cxx:601
 AliPythia6.cxx:602
 AliPythia6.cxx:603
 AliPythia6.cxx:604
 AliPythia6.cxx:605
 AliPythia6.cxx:606
 AliPythia6.cxx:607
 AliPythia6.cxx:608
 AliPythia6.cxx:609
 AliPythia6.cxx:610
 AliPythia6.cxx:611
 AliPythia6.cxx:612
 AliPythia6.cxx:613
 AliPythia6.cxx:614
 AliPythia6.cxx:615
 AliPythia6.cxx:616
 AliPythia6.cxx:617
 AliPythia6.cxx:618
 AliPythia6.cxx:619
 AliPythia6.cxx:620
 AliPythia6.cxx:621
 AliPythia6.cxx:622
 AliPythia6.cxx:623
 AliPythia6.cxx:624
 AliPythia6.cxx:625
 AliPythia6.cxx:626
 AliPythia6.cxx:627
 AliPythia6.cxx:628
 AliPythia6.cxx:629
 AliPythia6.cxx:630
 AliPythia6.cxx:631
 AliPythia6.cxx:632
 AliPythia6.cxx:633
 AliPythia6.cxx:634
 AliPythia6.cxx:635
 AliPythia6.cxx:636
 AliPythia6.cxx:637
 AliPythia6.cxx:638
 AliPythia6.cxx:639
 AliPythia6.cxx:640
 AliPythia6.cxx:641
 AliPythia6.cxx:642
 AliPythia6.cxx:643
 AliPythia6.cxx:644
 AliPythia6.cxx:645
 AliPythia6.cxx:646
 AliPythia6.cxx:647
 AliPythia6.cxx:648
 AliPythia6.cxx:649
 AliPythia6.cxx:650
 AliPythia6.cxx:651
 AliPythia6.cxx:652
 AliPythia6.cxx:653
 AliPythia6.cxx:654
 AliPythia6.cxx:655
 AliPythia6.cxx:656
 AliPythia6.cxx:657
 AliPythia6.cxx:658
 AliPythia6.cxx:659
 AliPythia6.cxx:660
 AliPythia6.cxx:661
 AliPythia6.cxx:662
 AliPythia6.cxx:663
 AliPythia6.cxx:664
 AliPythia6.cxx:665
 AliPythia6.cxx:666
 AliPythia6.cxx:667
 AliPythia6.cxx:668
 AliPythia6.cxx:669
 AliPythia6.cxx:670
 AliPythia6.cxx:671
 AliPythia6.cxx:672
 AliPythia6.cxx:673
 AliPythia6.cxx:674
 AliPythia6.cxx:675
 AliPythia6.cxx:676
 AliPythia6.cxx:677
 AliPythia6.cxx:678
 AliPythia6.cxx:679
 AliPythia6.cxx:680
 AliPythia6.cxx:681
 AliPythia6.cxx:682
 AliPythia6.cxx:683
 AliPythia6.cxx:684
 AliPythia6.cxx:685
 AliPythia6.cxx:686
 AliPythia6.cxx:687
 AliPythia6.cxx:688
 AliPythia6.cxx:689
 AliPythia6.cxx:690
 AliPythia6.cxx:691
 AliPythia6.cxx:692
 AliPythia6.cxx:693
 AliPythia6.cxx:694
 AliPythia6.cxx:695
 AliPythia6.cxx:696
 AliPythia6.cxx:697
 AliPythia6.cxx:698
 AliPythia6.cxx:699
 AliPythia6.cxx:700
 AliPythia6.cxx:701
 AliPythia6.cxx:702
 AliPythia6.cxx:703
 AliPythia6.cxx:704
 AliPythia6.cxx:705
 AliPythia6.cxx:706
 AliPythia6.cxx:707
 AliPythia6.cxx:708
 AliPythia6.cxx:709
 AliPythia6.cxx:710
 AliPythia6.cxx:711
 AliPythia6.cxx:712
 AliPythia6.cxx:713
 AliPythia6.cxx:714
 AliPythia6.cxx:715
 AliPythia6.cxx:716
 AliPythia6.cxx:717
 AliPythia6.cxx:718
 AliPythia6.cxx:719
 AliPythia6.cxx:720
 AliPythia6.cxx:721
 AliPythia6.cxx:722
 AliPythia6.cxx:723
 AliPythia6.cxx:724
 AliPythia6.cxx:725
 AliPythia6.cxx:726
 AliPythia6.cxx:727
 AliPythia6.cxx:728
 AliPythia6.cxx:729
 AliPythia6.cxx:730
 AliPythia6.cxx:731
 AliPythia6.cxx:732
 AliPythia6.cxx:733
 AliPythia6.cxx:734
 AliPythia6.cxx:735
 AliPythia6.cxx:736
 AliPythia6.cxx:737
 AliPythia6.cxx:738
 AliPythia6.cxx:739
 AliPythia6.cxx:740
 AliPythia6.cxx:741
 AliPythia6.cxx:742
 AliPythia6.cxx:743
 AliPythia6.cxx:744
 AliPythia6.cxx:745
 AliPythia6.cxx:746
 AliPythia6.cxx:747
 AliPythia6.cxx:748
 AliPythia6.cxx:749
 AliPythia6.cxx:750
 AliPythia6.cxx:751
 AliPythia6.cxx:752
 AliPythia6.cxx:753
 AliPythia6.cxx:754
 AliPythia6.cxx:755
 AliPythia6.cxx:756
 AliPythia6.cxx:757
 AliPythia6.cxx:758
 AliPythia6.cxx:759
 AliPythia6.cxx:760
 AliPythia6.cxx:761
 AliPythia6.cxx:762
 AliPythia6.cxx:763
 AliPythia6.cxx:764
 AliPythia6.cxx:765
 AliPythia6.cxx:766
 AliPythia6.cxx:767
 AliPythia6.cxx:768
 AliPythia6.cxx:769
 AliPythia6.cxx:770
 AliPythia6.cxx:771
 AliPythia6.cxx:772
 AliPythia6.cxx:773
 AliPythia6.cxx:774
 AliPythia6.cxx:775
 AliPythia6.cxx:776
 AliPythia6.cxx:777
 AliPythia6.cxx:778
 AliPythia6.cxx:779
 AliPythia6.cxx:780
 AliPythia6.cxx:781
 AliPythia6.cxx:782
 AliPythia6.cxx:783
 AliPythia6.cxx:784
 AliPythia6.cxx:785
 AliPythia6.cxx:786
 AliPythia6.cxx:787
 AliPythia6.cxx:788
 AliPythia6.cxx:789
 AliPythia6.cxx:790
 AliPythia6.cxx:791
 AliPythia6.cxx:792
 AliPythia6.cxx:793
 AliPythia6.cxx:794
 AliPythia6.cxx:795
 AliPythia6.cxx:796
 AliPythia6.cxx:797
 AliPythia6.cxx:798
 AliPythia6.cxx:799
 AliPythia6.cxx:800
 AliPythia6.cxx:801
 AliPythia6.cxx:802
 AliPythia6.cxx:803
 AliPythia6.cxx:804
 AliPythia6.cxx:805
 AliPythia6.cxx:806
 AliPythia6.cxx:807
 AliPythia6.cxx:808
 AliPythia6.cxx:809
 AliPythia6.cxx:810
 AliPythia6.cxx:811
 AliPythia6.cxx:812
 AliPythia6.cxx:813
 AliPythia6.cxx:814
 AliPythia6.cxx:815
 AliPythia6.cxx:816
 AliPythia6.cxx:817
 AliPythia6.cxx:818
 AliPythia6.cxx:819
 AliPythia6.cxx:820
 AliPythia6.cxx:821
 AliPythia6.cxx:822
 AliPythia6.cxx:823
 AliPythia6.cxx:824
 AliPythia6.cxx:825
 AliPythia6.cxx:826
 AliPythia6.cxx:827
 AliPythia6.cxx:828
 AliPythia6.cxx:829
 AliPythia6.cxx:830
 AliPythia6.cxx:831
 AliPythia6.cxx:832
 AliPythia6.cxx:833
 AliPythia6.cxx:834
 AliPythia6.cxx:835
 AliPythia6.cxx:836
 AliPythia6.cxx:837
 AliPythia6.cxx:838
 AliPythia6.cxx:839
 AliPythia6.cxx:840
 AliPythia6.cxx:841
 AliPythia6.cxx:842
 AliPythia6.cxx:843
 AliPythia6.cxx:844
 AliPythia6.cxx:845
 AliPythia6.cxx:846
 AliPythia6.cxx:847
 AliPythia6.cxx:848
 AliPythia6.cxx:849
 AliPythia6.cxx:850
 AliPythia6.cxx:851
 AliPythia6.cxx:852
 AliPythia6.cxx:853
 AliPythia6.cxx:854
 AliPythia6.cxx:855
 AliPythia6.cxx:856
 AliPythia6.cxx:857
 AliPythia6.cxx:858
 AliPythia6.cxx:859
 AliPythia6.cxx:860
 AliPythia6.cxx:861
 AliPythia6.cxx:862
 AliPythia6.cxx:863
 AliPythia6.cxx:864
 AliPythia6.cxx:865
 AliPythia6.cxx:866
 AliPythia6.cxx:867
 AliPythia6.cxx:868
 AliPythia6.cxx:869
 AliPythia6.cxx:870
 AliPythia6.cxx:871
 AliPythia6.cxx:872
 AliPythia6.cxx:873
 AliPythia6.cxx:874
 AliPythia6.cxx:875
 AliPythia6.cxx:876
 AliPythia6.cxx:877
 AliPythia6.cxx:878
 AliPythia6.cxx:879
 AliPythia6.cxx:880
 AliPythia6.cxx:881
 AliPythia6.cxx:882
 AliPythia6.cxx:883
 AliPythia6.cxx:884
 AliPythia6.cxx:885
 AliPythia6.cxx:886
 AliPythia6.cxx:887
 AliPythia6.cxx:888
 AliPythia6.cxx:889
 AliPythia6.cxx:890
 AliPythia6.cxx:891
 AliPythia6.cxx:892
 AliPythia6.cxx:893
 AliPythia6.cxx:894
 AliPythia6.cxx:895
 AliPythia6.cxx:896
 AliPythia6.cxx:897
 AliPythia6.cxx:898
 AliPythia6.cxx:899
 AliPythia6.cxx:900
 AliPythia6.cxx:901
 AliPythia6.cxx:902
 AliPythia6.cxx:903
 AliPythia6.cxx:904
 AliPythia6.cxx:905
 AliPythia6.cxx:906
 AliPythia6.cxx:907
 AliPythia6.cxx:908
 AliPythia6.cxx:909
 AliPythia6.cxx:910
 AliPythia6.cxx:911
 AliPythia6.cxx:912
 AliPythia6.cxx:913
 AliPythia6.cxx:914
 AliPythia6.cxx:915
 AliPythia6.cxx:916
 AliPythia6.cxx:917
 AliPythia6.cxx:918
 AliPythia6.cxx:919
 AliPythia6.cxx:920
 AliPythia6.cxx:921
 AliPythia6.cxx:922
 AliPythia6.cxx:923
 AliPythia6.cxx:924
 AliPythia6.cxx:925
 AliPythia6.cxx:926
 AliPythia6.cxx:927
 AliPythia6.cxx:928
 AliPythia6.cxx:929
 AliPythia6.cxx:930
 AliPythia6.cxx:931
 AliPythia6.cxx:932
 AliPythia6.cxx:933
 AliPythia6.cxx:934
 AliPythia6.cxx:935
 AliPythia6.cxx:936
 AliPythia6.cxx:937
 AliPythia6.cxx:938
 AliPythia6.cxx:939
 AliPythia6.cxx:940
 AliPythia6.cxx:941
 AliPythia6.cxx:942
 AliPythia6.cxx:943
 AliPythia6.cxx:944
 AliPythia6.cxx:945
 AliPythia6.cxx:946
 AliPythia6.cxx:947
 AliPythia6.cxx:948
 AliPythia6.cxx:949
 AliPythia6.cxx:950
 AliPythia6.cxx:951
 AliPythia6.cxx:952
 AliPythia6.cxx:953
 AliPythia6.cxx:954
 AliPythia6.cxx:955
 AliPythia6.cxx:956
 AliPythia6.cxx:957
 AliPythia6.cxx:958
 AliPythia6.cxx:959
 AliPythia6.cxx:960
 AliPythia6.cxx:961
 AliPythia6.cxx:962
 AliPythia6.cxx:963
 AliPythia6.cxx:964
 AliPythia6.cxx:965
 AliPythia6.cxx:966
 AliPythia6.cxx:967
 AliPythia6.cxx:968
 AliPythia6.cxx:969
 AliPythia6.cxx:970
 AliPythia6.cxx:971
 AliPythia6.cxx:972
 AliPythia6.cxx:973
 AliPythia6.cxx:974
 AliPythia6.cxx:975
 AliPythia6.cxx:976
 AliPythia6.cxx:977
 AliPythia6.cxx:978
 AliPythia6.cxx:979
 AliPythia6.cxx:980
 AliPythia6.cxx:981
 AliPythia6.cxx:982
 AliPythia6.cxx:983
 AliPythia6.cxx:984
 AliPythia6.cxx:985
 AliPythia6.cxx:986
 AliPythia6.cxx:987
 AliPythia6.cxx:988
 AliPythia6.cxx:989
 AliPythia6.cxx:990
 AliPythia6.cxx:991
 AliPythia6.cxx:992
 AliPythia6.cxx:993
 AliPythia6.cxx:994
 AliPythia6.cxx:995
 AliPythia6.cxx:996
 AliPythia6.cxx:997
 AliPythia6.cxx:998
 AliPythia6.cxx:999
 AliPythia6.cxx:1000
 AliPythia6.cxx:1001
 AliPythia6.cxx:1002
 AliPythia6.cxx:1003
 AliPythia6.cxx:1004
 AliPythia6.cxx:1005
 AliPythia6.cxx:1006
 AliPythia6.cxx:1007
 AliPythia6.cxx:1008
 AliPythia6.cxx:1009
 AliPythia6.cxx:1010
 AliPythia6.cxx:1011
 AliPythia6.cxx:1012
 AliPythia6.cxx:1013
 AliPythia6.cxx:1014
 AliPythia6.cxx:1015
 AliPythia6.cxx:1016
 AliPythia6.cxx:1017
 AliPythia6.cxx:1018
 AliPythia6.cxx:1019
 AliPythia6.cxx:1020
 AliPythia6.cxx:1021
 AliPythia6.cxx:1022
 AliPythia6.cxx:1023
 AliPythia6.cxx:1024
 AliPythia6.cxx:1025
 AliPythia6.cxx:1026
 AliPythia6.cxx:1027
 AliPythia6.cxx:1028
 AliPythia6.cxx:1029
 AliPythia6.cxx:1030
 AliPythia6.cxx:1031
 AliPythia6.cxx:1032
 AliPythia6.cxx:1033
 AliPythia6.cxx:1034
 AliPythia6.cxx:1035
 AliPythia6.cxx:1036
 AliPythia6.cxx:1037
 AliPythia6.cxx:1038
 AliPythia6.cxx:1039
 AliPythia6.cxx:1040
 AliPythia6.cxx:1041
 AliPythia6.cxx:1042
 AliPythia6.cxx:1043
 AliPythia6.cxx:1044
 AliPythia6.cxx:1045
 AliPythia6.cxx:1046
 AliPythia6.cxx:1047
 AliPythia6.cxx:1048
 AliPythia6.cxx:1049
 AliPythia6.cxx:1050
 AliPythia6.cxx:1051
 AliPythia6.cxx:1052
 AliPythia6.cxx:1053
 AliPythia6.cxx:1054
 AliPythia6.cxx:1055
 AliPythia6.cxx:1056
 AliPythia6.cxx:1057
 AliPythia6.cxx:1058
 AliPythia6.cxx:1059
 AliPythia6.cxx:1060
 AliPythia6.cxx:1061
 AliPythia6.cxx:1062
 AliPythia6.cxx:1063
 AliPythia6.cxx:1064
 AliPythia6.cxx:1065
 AliPythia6.cxx:1066
 AliPythia6.cxx:1067
 AliPythia6.cxx:1068
 AliPythia6.cxx:1069
 AliPythia6.cxx:1070
 AliPythia6.cxx:1071
 AliPythia6.cxx:1072
 AliPythia6.cxx:1073
 AliPythia6.cxx:1074
 AliPythia6.cxx:1075
 AliPythia6.cxx:1076
 AliPythia6.cxx:1077
 AliPythia6.cxx:1078
 AliPythia6.cxx:1079
 AliPythia6.cxx:1080
 AliPythia6.cxx:1081
 AliPythia6.cxx:1082
 AliPythia6.cxx:1083
 AliPythia6.cxx:1084
 AliPythia6.cxx:1085
 AliPythia6.cxx:1086
 AliPythia6.cxx:1087
 AliPythia6.cxx:1088
 AliPythia6.cxx:1089
 AliPythia6.cxx:1090
 AliPythia6.cxx:1091
 AliPythia6.cxx:1092
 AliPythia6.cxx:1093
 AliPythia6.cxx:1094
 AliPythia6.cxx:1095
 AliPythia6.cxx:1096
 AliPythia6.cxx:1097
 AliPythia6.cxx:1098
 AliPythia6.cxx:1099
 AliPythia6.cxx:1100
 AliPythia6.cxx:1101
 AliPythia6.cxx:1102
 AliPythia6.cxx:1103
 AliPythia6.cxx:1104
 AliPythia6.cxx:1105
 AliPythia6.cxx:1106
 AliPythia6.cxx:1107
 AliPythia6.cxx:1108
 AliPythia6.cxx:1109
 AliPythia6.cxx:1110
 AliPythia6.cxx:1111
 AliPythia6.cxx:1112
 AliPythia6.cxx:1113
 AliPythia6.cxx:1114
 AliPythia6.cxx:1115
 AliPythia6.cxx:1116
 AliPythia6.cxx:1117
 AliPythia6.cxx:1118
 AliPythia6.cxx:1119
 AliPythia6.cxx:1120
 AliPythia6.cxx:1121
 AliPythia6.cxx:1122
 AliPythia6.cxx:1123
 AliPythia6.cxx:1124
 AliPythia6.cxx:1125
 AliPythia6.cxx:1126
 AliPythia6.cxx:1127
 AliPythia6.cxx:1128
 AliPythia6.cxx:1129
 AliPythia6.cxx:1130
 AliPythia6.cxx:1131
 AliPythia6.cxx:1132
 AliPythia6.cxx:1133
 AliPythia6.cxx:1134
 AliPythia6.cxx:1135
 AliPythia6.cxx:1136
 AliPythia6.cxx:1137
 AliPythia6.cxx:1138
 AliPythia6.cxx:1139
 AliPythia6.cxx:1140
 AliPythia6.cxx:1141
 AliPythia6.cxx:1142
 AliPythia6.cxx:1143
 AliPythia6.cxx:1144
 AliPythia6.cxx:1145
 AliPythia6.cxx:1146
 AliPythia6.cxx:1147
 AliPythia6.cxx:1148
 AliPythia6.cxx:1149
 AliPythia6.cxx:1150
 AliPythia6.cxx:1151
 AliPythia6.cxx:1152
 AliPythia6.cxx:1153
 AliPythia6.cxx:1154
 AliPythia6.cxx:1155
 AliPythia6.cxx:1156
 AliPythia6.cxx:1157
 AliPythia6.cxx:1158
 AliPythia6.cxx:1159
 AliPythia6.cxx:1160
 AliPythia6.cxx:1161
 AliPythia6.cxx:1162
 AliPythia6.cxx:1163
 AliPythia6.cxx:1164
 AliPythia6.cxx:1165
 AliPythia6.cxx:1166
 AliPythia6.cxx:1167
 AliPythia6.cxx:1168
 AliPythia6.cxx:1169
 AliPythia6.cxx:1170
 AliPythia6.cxx:1171
 AliPythia6.cxx:1172
 AliPythia6.cxx:1173
 AliPythia6.cxx:1174
 AliPythia6.cxx:1175
 AliPythia6.cxx:1176
 AliPythia6.cxx:1177
 AliPythia6.cxx:1178
 AliPythia6.cxx:1179
 AliPythia6.cxx:1180
 AliPythia6.cxx:1181
 AliPythia6.cxx:1182
 AliPythia6.cxx:1183
 AliPythia6.cxx:1184
 AliPythia6.cxx:1185
 AliPythia6.cxx:1186
 AliPythia6.cxx:1187
 AliPythia6.cxx:1188
 AliPythia6.cxx:1189
 AliPythia6.cxx:1190
 AliPythia6.cxx:1191
 AliPythia6.cxx:1192
 AliPythia6.cxx:1193
 AliPythia6.cxx:1194
 AliPythia6.cxx:1195
 AliPythia6.cxx:1196
 AliPythia6.cxx:1197
 AliPythia6.cxx:1198
 AliPythia6.cxx:1199
 AliPythia6.cxx:1200
 AliPythia6.cxx:1201
 AliPythia6.cxx:1202
 AliPythia6.cxx:1203
 AliPythia6.cxx:1204
 AliPythia6.cxx:1205
 AliPythia6.cxx:1206
 AliPythia6.cxx:1207
 AliPythia6.cxx:1208
 AliPythia6.cxx:1209
 AliPythia6.cxx:1210
 AliPythia6.cxx:1211
 AliPythia6.cxx:1212
 AliPythia6.cxx:1213
 AliPythia6.cxx:1214
 AliPythia6.cxx:1215
 AliPythia6.cxx:1216
 AliPythia6.cxx:1217
 AliPythia6.cxx:1218
 AliPythia6.cxx:1219
 AliPythia6.cxx:1220
 AliPythia6.cxx:1221
 AliPythia6.cxx:1222
 AliPythia6.cxx:1223
 AliPythia6.cxx:1224
 AliPythia6.cxx:1225
 AliPythia6.cxx:1226
 AliPythia6.cxx:1227
 AliPythia6.cxx:1228
 AliPythia6.cxx:1229
 AliPythia6.cxx:1230
 AliPythia6.cxx:1231
 AliPythia6.cxx:1232
 AliPythia6.cxx:1233
 AliPythia6.cxx:1234
 AliPythia6.cxx:1235
 AliPythia6.cxx:1236
 AliPythia6.cxx:1237
 AliPythia6.cxx:1238
 AliPythia6.cxx:1239
 AliPythia6.cxx:1240
 AliPythia6.cxx:1241
 AliPythia6.cxx:1242
 AliPythia6.cxx:1243
 AliPythia6.cxx:1244
 AliPythia6.cxx:1245
 AliPythia6.cxx:1246
 AliPythia6.cxx:1247
 AliPythia6.cxx:1248
 AliPythia6.cxx:1249
 AliPythia6.cxx:1250
 AliPythia6.cxx:1251
 AliPythia6.cxx:1252
 AliPythia6.cxx:1253
 AliPythia6.cxx:1254
 AliPythia6.cxx:1255
 AliPythia6.cxx:1256
 AliPythia6.cxx:1257
 AliPythia6.cxx:1258
 AliPythia6.cxx:1259
 AliPythia6.cxx:1260
 AliPythia6.cxx:1261
 AliPythia6.cxx:1262
 AliPythia6.cxx:1263
 AliPythia6.cxx:1264
 AliPythia6.cxx:1265
 AliPythia6.cxx:1266
 AliPythia6.cxx:1267
 AliPythia6.cxx:1268
 AliPythia6.cxx:1269
 AliPythia6.cxx:1270
 AliPythia6.cxx:1271
 AliPythia6.cxx:1272
 AliPythia6.cxx:1273
 AliPythia6.cxx:1274
 AliPythia6.cxx:1275
 AliPythia6.cxx:1276
 AliPythia6.cxx:1277
 AliPythia6.cxx:1278
 AliPythia6.cxx:1279
 AliPythia6.cxx:1280
 AliPythia6.cxx:1281
 AliPythia6.cxx:1282
 AliPythia6.cxx:1283
 AliPythia6.cxx:1284
 AliPythia6.cxx:1285
 AliPythia6.cxx:1286
 AliPythia6.cxx:1287
 AliPythia6.cxx:1288
 AliPythia6.cxx:1289
 AliPythia6.cxx:1290
 AliPythia6.cxx:1291
 AliPythia6.cxx:1292
 AliPythia6.cxx:1293
 AliPythia6.cxx:1294
 AliPythia6.cxx:1295
 AliPythia6.cxx:1296
 AliPythia6.cxx:1297
 AliPythia6.cxx:1298
 AliPythia6.cxx:1299
 AliPythia6.cxx:1300
 AliPythia6.cxx:1301
 AliPythia6.cxx:1302
 AliPythia6.cxx:1303
 AliPythia6.cxx:1304
 AliPythia6.cxx:1305
 AliPythia6.cxx:1306
 AliPythia6.cxx:1307
 AliPythia6.cxx:1308
 AliPythia6.cxx:1309
 AliPythia6.cxx:1310
 AliPythia6.cxx:1311
 AliPythia6.cxx:1312
 AliPythia6.cxx:1313
 AliPythia6.cxx:1314
 AliPythia6.cxx:1315
 AliPythia6.cxx:1316
 AliPythia6.cxx:1317
 AliPythia6.cxx:1318
 AliPythia6.cxx:1319
 AliPythia6.cxx:1320
 AliPythia6.cxx:1321
 AliPythia6.cxx:1322
 AliPythia6.cxx:1323
 AliPythia6.cxx:1324
 AliPythia6.cxx:1325
 AliPythia6.cxx:1326
 AliPythia6.cxx:1327
 AliPythia6.cxx:1328
 AliPythia6.cxx:1329
 AliPythia6.cxx:1330
 AliPythia6.cxx:1331
 AliPythia6.cxx:1332
 AliPythia6.cxx:1333
 AliPythia6.cxx:1334
 AliPythia6.cxx:1335
 AliPythia6.cxx:1336
 AliPythia6.cxx:1337
 AliPythia6.cxx:1338
 AliPythia6.cxx:1339
 AliPythia6.cxx:1340
 AliPythia6.cxx:1341
 AliPythia6.cxx:1342
 AliPythia6.cxx:1343
 AliPythia6.cxx:1344
 AliPythia6.cxx:1345
 AliPythia6.cxx:1346
 AliPythia6.cxx:1347
 AliPythia6.cxx:1348
 AliPythia6.cxx:1349
 AliPythia6.cxx:1350
 AliPythia6.cxx:1351
 AliPythia6.cxx:1352
 AliPythia6.cxx:1353
 AliPythia6.cxx:1354
 AliPythia6.cxx:1355
 AliPythia6.cxx:1356
 AliPythia6.cxx:1357
 AliPythia6.cxx:1358
 AliPythia6.cxx:1359
 AliPythia6.cxx:1360
 AliPythia6.cxx:1361
 AliPythia6.cxx:1362
 AliPythia6.cxx:1363
 AliPythia6.cxx:1364
 AliPythia6.cxx:1365
 AliPythia6.cxx:1366
 AliPythia6.cxx:1367
 AliPythia6.cxx:1368
 AliPythia6.cxx:1369
 AliPythia6.cxx:1370
 AliPythia6.cxx:1371
 AliPythia6.cxx:1372
 AliPythia6.cxx:1373
 AliPythia6.cxx:1374
 AliPythia6.cxx:1375
 AliPythia6.cxx:1376
 AliPythia6.cxx:1377
 AliPythia6.cxx:1378
 AliPythia6.cxx:1379
 AliPythia6.cxx:1380
 AliPythia6.cxx:1381
 AliPythia6.cxx:1382
 AliPythia6.cxx:1383
 AliPythia6.cxx:1384
 AliPythia6.cxx:1385
 AliPythia6.cxx:1386
 AliPythia6.cxx:1387
 AliPythia6.cxx:1388
 AliPythia6.cxx:1389
 AliPythia6.cxx:1390
 AliPythia6.cxx:1391
 AliPythia6.cxx:1392
 AliPythia6.cxx:1393
 AliPythia6.cxx:1394
 AliPythia6.cxx:1395
 AliPythia6.cxx:1396
 AliPythia6.cxx:1397
 AliPythia6.cxx:1398
 AliPythia6.cxx:1399
 AliPythia6.cxx:1400
 AliPythia6.cxx:1401
 AliPythia6.cxx:1402
 AliPythia6.cxx:1403
 AliPythia6.cxx:1404
 AliPythia6.cxx:1405
 AliPythia6.cxx:1406
 AliPythia6.cxx:1407
 AliPythia6.cxx:1408
 AliPythia6.cxx:1409
 AliPythia6.cxx:1410
 AliPythia6.cxx:1411
 AliPythia6.cxx:1412
 AliPythia6.cxx:1413
 AliPythia6.cxx:1414
 AliPythia6.cxx:1415
 AliPythia6.cxx:1416
 AliPythia6.cxx:1417
 AliPythia6.cxx:1418
 AliPythia6.cxx:1419
 AliPythia6.cxx:1420
 AliPythia6.cxx:1421
 AliPythia6.cxx:1422
 AliPythia6.cxx:1423
 AliPythia6.cxx:1424
 AliPythia6.cxx:1425
 AliPythia6.cxx:1426
 AliPythia6.cxx:1427
 AliPythia6.cxx:1428
 AliPythia6.cxx:1429
 AliPythia6.cxx:1430
 AliPythia6.cxx:1431
 AliPythia6.cxx:1432
 AliPythia6.cxx:1433
 AliPythia6.cxx:1434
 AliPythia6.cxx:1435
 AliPythia6.cxx:1436
 AliPythia6.cxx:1437
 AliPythia6.cxx:1438
 AliPythia6.cxx:1439
 AliPythia6.cxx:1440
 AliPythia6.cxx:1441
 AliPythia6.cxx:1442
 AliPythia6.cxx:1443
 AliPythia6.cxx:1444
 AliPythia6.cxx:1445
 AliPythia6.cxx:1446
 AliPythia6.cxx:1447
 AliPythia6.cxx:1448
 AliPythia6.cxx:1449
 AliPythia6.cxx:1450
 AliPythia6.cxx:1451
 AliPythia6.cxx:1452
 AliPythia6.cxx:1453
 AliPythia6.cxx:1454
 AliPythia6.cxx:1455
 AliPythia6.cxx:1456
 AliPythia6.cxx:1457
 AliPythia6.cxx:1458
 AliPythia6.cxx:1459
 AliPythia6.cxx:1460
 AliPythia6.cxx:1461
 AliPythia6.cxx:1462
 AliPythia6.cxx:1463
 AliPythia6.cxx:1464
 AliPythia6.cxx:1465
 AliPythia6.cxx:1466
 AliPythia6.cxx:1467
 AliPythia6.cxx:1468
 AliPythia6.cxx:1469
 AliPythia6.cxx:1470
 AliPythia6.cxx:1471
 AliPythia6.cxx:1472
 AliPythia6.cxx:1473
 AliPythia6.cxx:1474
 AliPythia6.cxx:1475
 AliPythia6.cxx:1476
 AliPythia6.cxx:1477
 AliPythia6.cxx:1478
 AliPythia6.cxx:1479
 AliPythia6.cxx:1480
 AliPythia6.cxx:1481
 AliPythia6.cxx:1482
 AliPythia6.cxx:1483
 AliPythia6.cxx:1484
 AliPythia6.cxx:1485
 AliPythia6.cxx:1486
 AliPythia6.cxx:1487
 AliPythia6.cxx:1488
 AliPythia6.cxx:1489
 AliPythia6.cxx:1490
 AliPythia6.cxx:1491
 AliPythia6.cxx:1492
 AliPythia6.cxx:1493
 AliPythia6.cxx:1494
 AliPythia6.cxx:1495
 AliPythia6.cxx:1496
 AliPythia6.cxx:1497
 AliPythia6.cxx:1498
 AliPythia6.cxx:1499
 AliPythia6.cxx:1500
 AliPythia6.cxx:1501
 AliPythia6.cxx:1502
 AliPythia6.cxx:1503
 AliPythia6.cxx:1504
 AliPythia6.cxx:1505
 AliPythia6.cxx:1506
 AliPythia6.cxx:1507
 AliPythia6.cxx:1508
 AliPythia6.cxx:1509
 AliPythia6.cxx:1510
 AliPythia6.cxx:1511
 AliPythia6.cxx:1512
 AliPythia6.cxx:1513
 AliPythia6.cxx:1514
 AliPythia6.cxx:1515
 AliPythia6.cxx:1516
 AliPythia6.cxx:1517
 AliPythia6.cxx:1518
 AliPythia6.cxx:1519
 AliPythia6.cxx:1520
 AliPythia6.cxx:1521
 AliPythia6.cxx:1522
 AliPythia6.cxx:1523
 AliPythia6.cxx:1524
 AliPythia6.cxx:1525
 AliPythia6.cxx:1526
 AliPythia6.cxx:1527
 AliPythia6.cxx:1528
 AliPythia6.cxx:1529
 AliPythia6.cxx:1530
 AliPythia6.cxx:1531
 AliPythia6.cxx:1532
 AliPythia6.cxx:1533
 AliPythia6.cxx:1534
 AliPythia6.cxx:1535
 AliPythia6.cxx:1536
 AliPythia6.cxx:1537
 AliPythia6.cxx:1538
 AliPythia6.cxx:1539
 AliPythia6.cxx:1540
 AliPythia6.cxx:1541
 AliPythia6.cxx:1542
 AliPythia6.cxx:1543
 AliPythia6.cxx:1544
 AliPythia6.cxx:1545
 AliPythia6.cxx:1546
 AliPythia6.cxx:1547
 AliPythia6.cxx:1548
 AliPythia6.cxx:1549
 AliPythia6.cxx:1550
 AliPythia6.cxx:1551
 AliPythia6.cxx:1552
 AliPythia6.cxx:1553
 AliPythia6.cxx:1554
 AliPythia6.cxx:1555
 AliPythia6.cxx:1556
 AliPythia6.cxx:1557
 AliPythia6.cxx:1558
 AliPythia6.cxx:1559
 AliPythia6.cxx:1560
 AliPythia6.cxx:1561
 AliPythia6.cxx:1562
 AliPythia6.cxx:1563
 AliPythia6.cxx:1564
 AliPythia6.cxx:1565
 AliPythia6.cxx:1566
 AliPythia6.cxx:1567
 AliPythia6.cxx:1568
 AliPythia6.cxx:1569
 AliPythia6.cxx:1570
 AliPythia6.cxx:1571
 AliPythia6.cxx:1572
 AliPythia6.cxx:1573
 AliPythia6.cxx:1574
 AliPythia6.cxx:1575
 AliPythia6.cxx:1576
 AliPythia6.cxx:1577
 AliPythia6.cxx:1578
 AliPythia6.cxx:1579
 AliPythia6.cxx:1580
 AliPythia6.cxx:1581
 AliPythia6.cxx:1582
 AliPythia6.cxx:1583
 AliPythia6.cxx:1584
 AliPythia6.cxx:1585
 AliPythia6.cxx:1586
 AliPythia6.cxx:1587
 AliPythia6.cxx:1588
 AliPythia6.cxx:1589
 AliPythia6.cxx:1590
 AliPythia6.cxx:1591
 AliPythia6.cxx:1592
 AliPythia6.cxx:1593
 AliPythia6.cxx:1594
 AliPythia6.cxx:1595
 AliPythia6.cxx:1596
 AliPythia6.cxx:1597
 AliPythia6.cxx:1598
 AliPythia6.cxx:1599
 AliPythia6.cxx:1600
 AliPythia6.cxx:1601
 AliPythia6.cxx:1602
 AliPythia6.cxx:1603
 AliPythia6.cxx:1604
 AliPythia6.cxx:1605
 AliPythia6.cxx:1606
 AliPythia6.cxx:1607
 AliPythia6.cxx:1608
 AliPythia6.cxx:1609
 AliPythia6.cxx:1610
 AliPythia6.cxx:1611
 AliPythia6.cxx:1612
 AliPythia6.cxx:1613
 AliPythia6.cxx:1614
 AliPythia6.cxx:1615
 AliPythia6.cxx:1616
 AliPythia6.cxx:1617
 AliPythia6.cxx:1618
 AliPythia6.cxx:1619
 AliPythia6.cxx:1620
 AliPythia6.cxx:1621
 AliPythia6.cxx:1622
 AliPythia6.cxx:1623
 AliPythia6.cxx:1624
 AliPythia6.cxx:1625
 AliPythia6.cxx:1626
 AliPythia6.cxx:1627
 AliPythia6.cxx:1628
 AliPythia6.cxx:1629
 AliPythia6.cxx:1630
 AliPythia6.cxx:1631
 AliPythia6.cxx:1632
 AliPythia6.cxx:1633
 AliPythia6.cxx:1634
 AliPythia6.cxx:1635
 AliPythia6.cxx:1636
 AliPythia6.cxx:1637
 AliPythia6.cxx:1638
 AliPythia6.cxx:1639
 AliPythia6.cxx:1640
 AliPythia6.cxx:1641
 AliPythia6.cxx:1642
 AliPythia6.cxx:1643
 AliPythia6.cxx:1644
 AliPythia6.cxx:1645
 AliPythia6.cxx:1646
 AliPythia6.cxx:1647
 AliPythia6.cxx:1648
 AliPythia6.cxx:1649
 AliPythia6.cxx:1650
 AliPythia6.cxx:1651
 AliPythia6.cxx:1652
 AliPythia6.cxx:1653
 AliPythia6.cxx:1654
 AliPythia6.cxx:1655
 AliPythia6.cxx:1656
 AliPythia6.cxx:1657
 AliPythia6.cxx:1658
 AliPythia6.cxx:1659
 AliPythia6.cxx:1660
 AliPythia6.cxx:1661