ROOT logo
/// $Id$
//
// Event generator configuration for ppbench test
//
// Extracted from G3 specific Config.C in test/ppbench.
// by I. Hrivnacova, IPN Orsay

enum PprRun_t 
{
    test50,
    kParam_8000,   kParam_4000,  kParam_2000, 
    kHijing_cent1, kHijing_cent2, 
    kHijing_per1,  kHijing_per2, kHijing_per3, kHijing_per4,  kHijing_per5,
    kHijing_jj25,  kHijing_jj50, kHijing_jj75, kHijing_jj100, kHijing_jj200, 
    kHijing_gj25,  kHijing_gj50, kHijing_gj75, kHijing_gj100, kHijing_gj200,
    kHijing_pA, kPythia6, 
    kPythia6Jets20_24,   kPythia6Jets24_29,   kPythia6Jets29_35,
    kPythia6Jets35_42,   kPythia6Jets42_50,   kPythia6Jets50_60,
    kPythia6Jets60_72,   kPythia6Jets72_86,   kPythia6Jets86_104,
    kPythia6Jets104_125, kPythia6Jets125_150, kPythia6Jets150_180,
    kD0PbPb5500, kCharmSemiElPbPb5500, kBeautySemiElPbPb5500,
    kCocktailTRD, kPyJJ, kPyGJ, 
    kMuonCocktailCent1, kMuonCocktailPer1, kMuonCocktailPer4, 
    kMuonCocktailCent1HighPt, kMuonCocktailPer1HighPt, kMuonCocktailPer4HighPt,
    kMuonCocktailCent1Single, kMuonCocktailPer1Single, kMuonCocktailPer4Single,
    kFlow_2_2000, kFlow_10_2000, kFlow_6_2000, kFlow_6_5000,
    kHIJINGplus, kRunMax
};

const char* pprRunName[] = {
    "test50",
    "kParam_8000",   "kParam_4000",  "kParam_2000", 
    "kHijing_cent1", "kHijing_cent2", 
    "kHijing_per1",  "kHijing_per2", "kHijing_per3", "kHijing_per4",  
    "kHijing_per5",
    "kHijing_jj25",  "kHijing_jj50", "kHijing_jj75", "kHijing_jj100", 
    "kHijing_jj200", 
    "kHijing_gj25",  "kHijing_gj50", "kHijing_gj75", "kHijing_gj100", 
    "kHijing_gj200", "kHijing_pA", "kPythia6", 
    "kPythia6Jets20_24",   "kPythia6Jets24_29",   "kPythia6Jets29_35",
    "kPythia6Jets35_42",   "kPythia6Jets42_50",   "kPythia6Jets50_60",
    "kPythia6Jets60_72",   "kPythia6Jets72_86",   "kPythia6Jets86_104",
    "kPythia6Jets104_125", "kPythia6Jets125_150", "kPythia6Jets150_180",
    "kD0PbPb5500", "kCharmSemiElPbPb5500", "kBeautySemiElPbPb5500",
    "kCocktailTRD", "kPyJJ", "kPyGJ", 
    "kMuonCocktailCent1", "kMuonCocktailPer1", "kMuonCocktailPer4",  
    "kMuonCocktailCent1HighPt", "kMuonCocktailPer1HighPt", "kMuonCocktailPer4HighPt",
    "kMuonCocktailCent1Single", "kMuonCocktailPer1Single", "kMuonCocktailPer4Single",
    "kFlow_2_2000", "kFlow_10_2000", "kFlow_6_2000", "kFlow_6_5000", "kHIJINGplus"
};

enum PprRad_t
{
    kGluonRadiation, kNoGluonRadiation
};

enum PprTrigConf_t
{
    kDefaultPPTrig, kDefaultPbPbTrig
};

const char * pprTrigConfName[] = {
    "p-p","Pb-Pb"
};

// This part for configuration    

static PprRun_t srun = kPythia6;
static PprRad_t srad = kGluonRadiation;

// Comment line 
static TString  comment;

// Functions
Float_t EtaToTheta(Float_t arg);
AliGenerator* GeneratorFactory(PprRun_t srun);
AliGenHijing* HijingStandard();
AliGenGeVSim* GeVSimStandard(Float_t, Float_t);

// Generator 
AliGenerator* genPPbenchConfig()
{
  cout << "Running genPPbenchConfig.C ... " << endl;

  AliGenerator* gener = GeneratorFactory(srun);
  gener->SetOrigin(0, 0, 0);    // vertex position
  gener->SetSigma(0, 0, 5.3);   // Sigma in (X,Y,Z) (cm) on IP position
  gener->SetCutVertexZ(1.);     // Truncate at 1 sigma
  gener->SetVertexSmear(kPerEvent); 
  gener->SetTrackingFlag(1);
  gener->Init();
  
  if (srad == kGluonRadiation)
  {
      comment = comment.Append(" | Gluon Radiation On");

  } else {
      comment = comment.Append(" | Gluon Radiation Off");
  }

  printf("\n \n Comment: %s \n \n", comment.Data());

  return gener;
  
  cout << "Running genGunConfig.C finished ... " << endl;
}


// Functions implementation

Float_t EtaToTheta(Float_t arg){
  return (180./TMath::Pi())*2.*atan(exp(-arg));
}



AliGenerator* GeneratorFactory(PprRun_t srun) {
    Int_t isw = 3;
    if (srad == kNoGluonRadiation) isw = 0;
    

    AliGenerator * gGener = 0x0;
    switch (srun) {
    case test50:
      {
	comment = comment.Append(":HIJINGparam test 50 particles");
	AliGenHIJINGpara *gener = new AliGenHIJINGpara(50);
	gener->SetMomentumRange(0, 999999.);
	gener->SetPhiRange(0., 360.);
	// Set pseudorapidity range from -8 to 8.
	Float_t thmin = EtaToTheta(8);   // theta min. <---> eta max
	Float_t thmax = EtaToTheta(-8);  // theta max. <---> eta min 
	gener->SetThetaRange(thmin,thmax);
	gGener=gener;
      }
      break;
    case kParam_8000:
      {
	comment = comment.Append(":HIJINGparam N=8000");
	AliGenHIJINGpara *gener = new AliGenHIJINGpara(86030);
	gener->SetMomentumRange(0, 999999.);
	gener->SetPhiRange(0., 360.);
	// Set pseudorapidity range from -8 to 8.
	Float_t thmin = EtaToTheta(8);   // theta min. <---> eta max
	Float_t thmax = EtaToTheta(-8);  // theta max. <---> eta min 
	gener->SetThetaRange(thmin,thmax);
	gGener=gener;
      }
      break;
    case kParam_4000:
      {
	comment = comment.Append("HIJINGparam N=4000");
	AliGenHIJINGpara *gener = new AliGenHIJINGpara(43015);
	gener->SetMomentumRange(0, 999999.);
	gener->SetPhiRange(0., 360.);
	// Set pseudorapidity range from -8 to 8.
	Float_t thmin = EtaToTheta(8);   // theta min. <---> eta max
	Float_t thmax = EtaToTheta(-8);  // theta max. <---> eta min 
	gener->SetThetaRange(thmin,thmax);
	gGener=gener;
      }
	break;
    case kParam_2000:
      {
	comment = comment.Append("HIJINGparam N=2000");
	AliGenHIJINGpara *gener = new AliGenHIJINGpara(21507);
	gener->SetMomentumRange(0, 999999.);
	gener->SetPhiRange(0., 360.);
	// Set pseudorapidity range from -8 to 8.
	Float_t thmin = EtaToTheta(8);   // theta min. <---> eta max
	Float_t thmax = EtaToTheta(-8);  // theta max. <---> eta min 
	gener->SetThetaRange(thmin,thmax);
	gGener=gener;
      }
      break;
//
//  Hijing Central
//
    case kHijing_cent1:
      {
	comment = comment.Append("HIJING cent1");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 5.);
	gGener=gener;
      }
      break;
    case kHijing_cent2:
      {
	comment = comment.Append("HIJING cent2");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 2.);
	gGener=gener;
      }
      break;
//
// Hijing Peripheral 
//
    case kHijing_per1:
      {
	comment = comment.Append("HIJING per1");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(5., 8.6);
	gGener=gener;
      }
      break;
    case kHijing_per2:
      {
	comment = comment.Append("HIJING per2");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(8.6, 11.2);
	gGener=gener;
      }
      break;
    case kHijing_per3:
      {
	comment = comment.Append("HIJING per3");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(11.2, 13.2);
	gGener=gener;
      }
      break;
    case kHijing_per4:
      {
	comment = comment.Append("HIJING per4");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(13.2, 15.);
	gGener=gener;
      }
      break;
    case kHijing_per5:
      {
	comment = comment.Append("HIJING per5");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(15., 100.);
	gGener=gener;
      }
      break;
//
//  Jet-Jet
//
    case kHijing_jj25:
      {
	comment = comment.Append("HIJING Jet 25 GeV");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 5.);
	// trigger
	gener->SetTrigger(1);
	gener->SetPtJet(25.);
	gener->SetRadiation(isw);
	gener->SetSimpleJets(!isw);
	gener->SetJetEtaRange(-0.3,0.3);
	gener->SetJetPhiRange(75., 165.);   
	gGener=gener;
      }
      break;

    case kHijing_jj50:
      {
	comment = comment.Append("HIJING Jet 50 GeV");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 5.);
	// trigger
	gener->SetTrigger(1);
	gener->SetPtJet(50.);
	gener->SetRadiation(isw);
	gener->SetSimpleJets(!isw);
	gener->SetJetEtaRange(-0.3,0.3);
	gener->SetJetPhiRange(75., 165.);   
	gGener=gener;
      }
	break;

    case kHijing_jj75:
      {
	comment = comment.Append("HIJING Jet 75 GeV");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 5.);
	// trigger
	gener->SetTrigger(1);
	gener->SetPtJet(75.);
	gener->SetRadiation(isw);
	gener->SetSimpleJets(!isw);
	gener->SetJetEtaRange(-0.3,0.3);
	gener->SetJetPhiRange(75., 165.);   
	gGener=gener;
      }
      break;

    case kHijing_jj100:
      {
	comment = comment.Append("HIJING Jet 100 GeV");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 5.);
	// trigger
	gener->SetTrigger(1);
	gener->SetPtJet(100.);
	gener->SetRadiation(isw);
	gener->SetSimpleJets(!isw);
	gener->SetJetEtaRange(-0.3,0.3);
	gener->SetJetPhiRange(75., 165.);   
	gGener=gener;
      }
      break;

    case kHijing_jj200:
      {
	comment = comment.Append("HIJING Jet 200 GeV");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 5.);
	// trigger
	gener->SetTrigger(1);
	gener->SetPtJet(200.);
	gener->SetRadiation(isw);
	gener->SetSimpleJets(!isw);
	gener->SetJetEtaRange(-0.3,0.3);
	gener->SetJetPhiRange(75., 165.);   
	gGener=gener;
      }
      break;
//
// Gamma-Jet
//
    case kHijing_gj25:
      {
	comment = comment.Append("HIJING Gamma 25 GeV");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 5.);
	// trigger
	gener->SetTrigger(2);
	gener->SetPtJet(25.);
	gener->SetRadiation(isw);
	gener->SetSimpleJets(!isw);
	gener->SetJetEtaRange(-0.12, 0.12);
        gener->SetJetPhiRange(220., 320.);
	gGener=gener;
      }
      break;

    case kHijing_gj50:
      {
	comment = comment.Append("HIJING Gamma 50 GeV");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 5.);
	// trigger
	gener->SetTrigger(2);
	gener->SetPtJet(50.);
	gener->SetRadiation(isw);
	gener->SetSimpleJets(!isw);
	gener->SetJetEtaRange(-0.12, 0.12);
        gener->SetJetPhiRange(220., 320.);
	gGener=gener;
      }
      break;

    case kHijing_gj75:
      {
	comment = comment.Append("HIJING Gamma 75 GeV");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 5.);
	// trigger
	gener->SetTrigger(2);
	gener->SetPtJet(75.);
	gener->SetRadiation(isw);
	gener->SetSimpleJets(!isw);
	gener->SetJetEtaRange(-0.12, 0.12);
        gener->SetJetPhiRange(220., 320.);
	gGener=gener;
      }
      break;

    case kHijing_gj100:
      {
	comment = comment.Append("HIJING Gamma 100 GeV");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 5.);
	// trigger
	gener->SetTrigger(2);
	gener->SetPtJet(100.);
	gener->SetRadiation(isw);
	gener->SetSimpleJets(!isw);
	gener->SetJetEtaRange(-0.12, 0.12);
        gener->SetJetPhiRange(220., 320.);
	gGener=gener;
      }
      break;

    case kHijing_gj200:
      {
	comment = comment.Append("HIJING Gamma 200 GeV");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 5.);
	// trigger
	gener->SetTrigger(2);
	gener->SetPtJet(200.);
	gener->SetRadiation(isw);
	gener->SetSimpleJets(!isw);
	gener->SetJetEtaRange(-0.12, 0.12);
        gener->SetJetPhiRange(220., 320.);
	gGener=gener;
      }
      break;
    case kHijing_pA:
      {
	comment = comment.Append("HIJING pA");

	AliGenCocktail *gener  = new AliGenCocktail();

	AliGenHijing   *hijing = new AliGenHijing(-1);
// centre of mass energy 
	hijing->SetEnergyCMS(TMath::Sqrt(82./208.) * 14000.);
// impact parameter range
	hijing->SetImpactParameterRange(0., 15.);
// reference frame
	hijing->SetReferenceFrame("CMS");
	hijing->SetBoostLHC(1);
// projectile
	hijing->SetProjectile("P", 1, 1);
	hijing->SetTarget    ("A", 208, 82);
// tell hijing to keep the full parent child chain
	hijing->KeepFullEvent();
// enable jet quenching
	hijing->SetJetQuenching(0);
// enable shadowing
	hijing->SetShadowing(1);
// Don't track spectators
	hijing->SetSpectators(0);
// kinematic selection
	hijing->SetSelectAll(0);
//
	AliGenSlowNucleons*  gray    = new AliGenSlowNucleons(1);
	AliSlowNucleonModel* model   = new AliSlowNucleonModelExp();
	gray->SetSlowNucleonModel(model);
	gray->SetDebug(1);
	gener->AddGenerator(hijing,"Hijing pPb", 1);
	gener->AddGenerator(gray,  "Gray Particles",1);
	gGener=gener;
      }
      break;
      case kPythia6:
      {
        comment = comment.Append(":Pythia p-p @ 14 TeV");
        AliGenPythia *gener = new AliGenPythia(-1); 
        gener->SetMomentumRange(0,999999);
        gener->SetThetaRange(0., 180.);
        gener->SetYRange(-12,12);
        gener->SetPtRange(0,1000);
        gener->SetProcess(kPyMb);
        gener->SetEnergyCMS(14000.);
        gener->SetProjectile("p", 1, 1) ; 
        gener->SetTarget("p", 1, 1) ; 
        gGener=gener;
      }
        break;
      case kPythia6Jets20_24:
      {
        comment = comment.Append(":Pythia jets 20-24 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
        gener->SetEnergyCMS(5500.);//        Centre of mass energy
        gener->SetProcess(kPyJets);//        Process type
        gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
        gener->SetJetPhiRange(0., 360.);
        gener->SetJetEtRange(10., 1000.);
        gener->SetGluonRadiation(1,1);
        //    gener->SetPtKick(0.);
        //   Structure function
        gener->SetStrucFunc(kCTEQ4L);
        gener->SetPtHard(20., 24.);// Pt transfer of the hard scattering
        gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
        gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
        gener->SetProjectile("p", 1, 1) ; 
        gener->SetTarget("p", 1, 1) ; 
        gGener=gener;
      }
        break;
      case kPythia6Jets24_29:
      {
        comment = comment.Append(":Pythia jets 24-29 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
        gener->SetEnergyCMS(5500.);//        Centre of mass energy
        gener->SetProcess(kPyJets);//        Process type
        gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
        gener->SetJetPhiRange(0., 360.);
        gener->SetJetEtRange(10., 1000.);
        gener->SetGluonRadiation(1,1);
        //    gener->SetPtKick(0.);
        //   Structure function
        gener->SetStrucFunc(kCTEQ4L);
        gener->SetPtHard(24., 29.);// Pt transfer of the hard scattering
        gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
        gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
        gener->SetProjectile("p", 1, 1) ; 
        gener->SetTarget("p", 1, 1) ; 
        gGener=gener;
      }
        break;
      case kPythia6Jets29_35:
      {
        comment = comment.Append(":Pythia jets 29-35 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
        gener->SetEnergyCMS(5500.);//        Centre of mass energy
        gener->SetProcess(kPyJets);//        Process type
        gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
        gener->SetJetPhiRange(0., 360.);
        gener->SetJetEtRange(10., 1000.);
        gener->SetGluonRadiation(1,1);
        //    gener->SetPtKick(0.);
        //   Structure function
        gener->SetStrucFunc(kCTEQ4L);
        gener->SetPtHard(29., 35.);// Pt transfer of the hard scattering
        gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
        gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
        gener->SetProjectile("p", 1, 1) ; 
        gener->SetTarget("p", 1, 1) ; 
        gGener=gener;
      }
        break;
      case kPythia6Jets35_42:
      {
        comment = comment.Append(":Pythia jets 35-42 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
        gener->SetEnergyCMS(5500.);//        Centre of mass energy
        gener->SetProcess(kPyJets);//        Process type
        gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
        gener->SetJetPhiRange(0., 360.);
        gener->SetJetEtRange(10., 1000.);
        gener->SetGluonRadiation(1,1);
        //    gener->SetPtKick(0.);
        //   Structure function
        gener->SetStrucFunc(kCTEQ4L);
        gener->SetPtHard(35., 42.);// Pt transfer of the hard scattering
        gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
        gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
        gener->SetProjectile("p", 1, 1) ; 
        gener->SetTarget("p", 1, 1) ; 
        gGener=gener;
      }
        break;
      case kPythia6Jets42_50:
      {
        comment = comment.Append(":Pythia jets 42-50 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
        gener->SetEnergyCMS(5500.);//        Centre of mass energy
        gener->SetProcess(kPyJets);//        Process type
        gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
        gener->SetJetPhiRange(0., 360.);
        gener->SetJetEtRange(10., 1000.);
        gener->SetGluonRadiation(1,1);
        //    gener->SetPtKick(0.);
        //   Structure function
        gener->SetStrucFunc(kCTEQ4L);
        gener->SetPtHard(42., 50.);// Pt transfer of the hard scattering
        gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
        gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
        gener->SetProjectile("p", 1, 1) ; 
        gener->SetTarget("p", 1, 1) ; 
        gGener=gener;
      }
      break;
      case kPythia6Jets50_60:
      {
        comment = comment.Append(":Pythia jets 50-60 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
        gener->SetEnergyCMS(5500.);//        Centre of mass energy
        gener->SetProcess(kPyJets);//        Process type
        gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
        gener->SetJetPhiRange(0., 360.);
        gener->SetJetEtRange(10., 1000.);
        gener->SetGluonRadiation(1,1);
        //    gener->SetPtKick(0.);
        //   Structure function
        gener->SetStrucFunc(kCTEQ4L);
        gener->SetPtHard(50., 60.);// Pt transfer of the hard scattering
        gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
        gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
        gGener=gener;
      }
        break;
      case kPythia6Jets60_72:
      {
        comment = comment.Append(":Pythia jets 60-72 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
        gener->SetEnergyCMS(5500.);//        Centre of mass energy
        gener->SetProcess(kPyJets);//        Process type
        gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
        gener->SetJetPhiRange(0., 360.);
        gener->SetJetEtRange(10., 1000.);
        gener->SetGluonRadiation(1,1);
        //    gener->SetPtKick(0.);
        //   Structure function
        gener->SetStrucFunc(kCTEQ4L);
        gener->SetPtHard(60., 72.);// Pt transfer of the hard scattering
        gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
        gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
        gener->SetProjectile("p", 1, 1) ; 
        gener->SetTarget("p", 1, 1) ; 
        gGener=gener;
      }
        break;
      case kPythia6Jets72_86:
      {
        comment = comment.Append(":Pythia jets 72-86 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
        gener->SetEnergyCMS(5500.);//        Centre of mass energy
        gener->SetProcess(kPyJets);//        Process type
        gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
        gener->SetJetPhiRange(0., 360.);
        gener->SetJetEtRange(10., 1000.);
        gener->SetGluonRadiation(1,1);
        //    gener->SetPtKick(0.);
        //   Structure function
        gener->SetStrucFunc(kCTEQ4L);
        gener->SetPtHard(72., 86.);// Pt transfer of the hard scattering
        gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
        gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
        gener->SetProjectile("p", 1, 1) ; 
        gener->SetTarget("p", 1, 1) ; 
        gGener=gener;
      }
      break;
      case kPythia6Jets86_104:
      {
        comment = comment.Append(":Pythia jets 86-104 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
        gener->SetEnergyCMS(5500.);//        Centre of mass energy
        gener->SetProcess(kPyJets);//        Process type
        gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
        gener->SetJetPhiRange(0., 360.);
        gener->SetJetEtRange(10., 1000.);
        gener->SetGluonRadiation(1,1);
        //    gener->SetPtKick(0.);
        //   Structure function
        gener->SetStrucFunc(kCTEQ4L);
        gener->SetPtHard(86., 104.);// Pt transfer of the hard scattering
        gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
        gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
        gener->SetProjectile("p", 1, 1) ; 
        gener->SetTarget("p", 1, 1) ; 
        gGener=gener;
      }
      break;
    case kPythia6Jets104_125:
      {
        comment = comment.Append(":Pythia jets 105-125 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
        gener->SetEnergyCMS(5500.);//        Centre of mass energy
        gener->SetProcess(kPyJets);//        Process type
        gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
        gener->SetJetPhiRange(0., 360.);
        gener->SetJetEtRange(10., 1000.);
        gener->SetGluonRadiation(1,1);
        //    gener->SetPtKick(0.);
        //   Structure function
        gener->SetStrucFunc(kCTEQ4L);
        gener->SetPtHard(104., 125.);// Pt transfer of the hard scattering
        gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
        gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
        gener->SetProjectile("p", 1, 1) ; 
        gener->SetTarget("p", 1, 1) ; 
        gGener=gener;
      }
        break;
      case kPythia6Jets125_150:
      {
        comment = comment.Append(":Pythia jets 125-150 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
        gener->SetEnergyCMS(5500.);//        Centre of mass energy
        gener->SetProcess(kPyJets);//        Process type
        gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
        gener->SetJetPhiRange(0., 360.);
        gener->SetJetEtRange(10., 1000.);
        gener->SetGluonRadiation(1,1);
        //    gener->SetPtKick(0.);
        //   Structure function
        gener->SetStrucFunc(kCTEQ4L);
        gener->SetPtHard(125., 150.);// Pt transfer of the hard scattering
        gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
        gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
        gGener=gener;
      }
        break;
      case kPythia6Jets150_180:
      {
        comment = comment.Append(":Pythia jets 150-180 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
        gener->SetEnergyCMS(5500.);//        Centre of mass energy
        gener->SetProcess(kPyJets);//        Process type
        gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
        gener->SetJetPhiRange(0., 360.);
        gener->SetJetEtRange(10., 1000.);
        gener->SetGluonRadiation(1,1);
        //    gener->SetPtKick(0.);
        //   Structure function
        gener->SetStrucFunc(kCTEQ4L);
        gener->SetPtHard(150., 180.);// Pt transfer of the hard scattering
        gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
        gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
        gener->SetProjectile("p", 1, 1) ; 
        gener->SetTarget("p", 1, 1) ; 
        gGener=gener;
      }
      break;
      case kD0PbPb5500:
      {
        comment = comment.Append(" D0 in Pb-Pb at 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(10);
        gener->SetProcess(kPyD0PbPbMNR);
        gener->SetStrucFunc(kCTEQ4L);
        gener->SetPtHard(2.1,-1.0);
        gener->SetEnergyCMS(5500.);
        gener->SetNuclei(208,208);
        gener->SetForceDecay(kHadronicD);
        gener->SetYRange(-2,2);
        gener->SetFeedDownHigherFamily(kFALSE);
        gener->SetStackFillOpt(AliGenPythia::kParentSelection);
        gener->SetCountMode(AliGenPythia::kCountParents);
        gener->SetProjectile("A", 208, 82) ; 
        gener->SetTarget("A", 208, 82) ; 
        gGener=gener;
      }
      break;
    case kCharmSemiElPbPb5500:
      {
        comment = comment.Append(" Charm in Pb-Pb at 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(10);
        gener->SetProcess(kPyCharmPbPbMNR);
        gener->SetStrucFunc(kCTEQ4L);
        gener->SetPtHard(2.1,-1.0);
        gener->SetEnergyCMS(5500.);
        gener->SetNuclei(208,208);
        gener->SetForceDecay(kSemiElectronic);
        gener->SetYRange(-2,2);
        gener->SetFeedDownHigherFamily(kFALSE);
        gener->SetCountMode(AliGenPythia::kCountParents);
        gener->SetProjectile("A", 208, 82) ; 
        gener->SetTarget("A", 208, 82) ; 
        gGener=gener;
      }
      break;
      case kBeautySemiElPbPb5500:
      {
        comment = comment.Append(" Beauty in Pb-Pb at 5.5 TeV");
        AliGenPythia *gener = new AliGenPythia(10);
        gener->SetProcess(kPyBeautyPbPbMNR);
        gener->SetStrucFunc(kCTEQ4L);
        gener->SetPtHard(2.75,-1.0);
        gener->SetEnergyCMS(5500.);
        gener->SetNuclei(208,208);
        gener->SetForceDecay(kSemiElectronic);
        gener->SetYRange(-2,2);
        gener->SetFeedDownHigherFamily(kFALSE);
        gener->SetCountMode(AliGenPythia::kCountParents);
        gener->SetProjectile("A", 208, 82) ; 
        gener->SetTarget("A", 208, 82) ; 
        gGener=gener;
      }
        break;
      case kCocktailTRD:
      {
        comment = comment.Append(" Cocktail for TRD at 5.5 TeV");
        AliGenCocktail *gener  = new AliGenCocktail();
        
        AliGenParam *phi = new AliGenParam(10,
                                           new AliGenMUONlib(),
                                           AliGenMUONlib::kPhi,
                                           "Vogt PbPb");
        
        phi->SetPtRange(0, 100);
        phi->SetYRange(-1., +1.);
        phi->SetForceDecay(kDiElectron);
        
        AliGenParam *omega = new AliGenParam(10,
                                             new AliGenMUONlib(),
                                             AliGenMUONlib::kOmega,
                                             "Vogt PbPb");
        
        omega->SetPtRange(0, 100);
        omega->SetYRange(-1., +1.);
        omega->SetForceDecay(kDiElectron);
        
        AliGenParam *jpsi = new AliGenParam(10,
                                            new AliGenMUONlib(),
                                            AliGenMUONlib::kJpsiFamily,
                                            "Vogt PbPb");
        
        jpsi->SetPtRange(0, 100);
        jpsi->SetYRange(-1., +1.);
        jpsi->SetForceDecay(kDiElectron);
        
        AliGenParam *ups = new AliGenParam(10,
                                           new AliGenMUONlib(),
                                           AliGenMUONlib::kUpsilonFamily,
                                           "Vogt PbPb");
        ups->SetPtRange(0, 100);
        ups->SetYRange(-1., +1.);
        ups->SetForceDecay(kDiElectron);
        
        AliGenParam *charm = new AliGenParam(10,
                                             new AliGenMUONlib(), 
                                             AliGenMUONlib::kCharm,
                                             "central");
        charm->SetPtRange(0, 100);
        charm->SetYRange(-1.5, +1.5);
        charm->SetForceDecay(kSemiElectronic);
        
        
        AliGenParam *beauty = new AliGenParam(10,
                                              new AliGenMUONlib(), 
                                              AliGenMUONlib::kBeauty,
                                              "central");
        beauty->SetPtRange(0, 100);
        beauty->SetYRange(-1.5, +1.5);
        beauty->SetForceDecay(kSemiElectronic);
        
        AliGenParam *beautyJ = new AliGenParam(10,
                                               new AliGenMUONlib(), 
                                               AliGenMUONlib::kBeauty,
                                               "central");
        beautyJ->SetPtRange(0, 100);
        beautyJ->SetYRange(-1.5, +1.5);
        beautyJ->SetForceDecay(kBJpsiDiElectron);
        
        gener->AddGenerator(phi,"Phi",1);
        gener->AddGenerator(omega,"Omega",1);
        gener->AddGenerator(jpsi,"J/psi",1);
        gener->AddGenerator(ups,"Upsilon",1);
        gener->AddGenerator(charm,"Charm",1);
        gener->AddGenerator(beauty,"Beauty",1);
        gener->AddGenerator(beautyJ,"J/Psi from Beauty",1);
        gener->SetProjectile("A", 208, 82) ; 
        gener->SetTarget("A", 208, 82) ; 
        gGener=gener;
      }
      break;
    case kPyJJ:
      {
        comment = comment.Append(" Jet-jet at 5.5 TeV");
        AliGenPythia *gener = new AliGenPythia(-1);
        gener->SetEnergyCMS(5500.);
        gener->SetProcess(kPyJets);
        Double_t ptHardMin=10.0, ptHardMax=-1.0;
        gener->SetPtHard(ptHardMin,ptHardMax);
        gener->SetYHard(-0.7,0.7);
        gener->SetJetEtaRange(-0.2,0.2);
        gener->SetEventListRange(0,1);
        gener->SetProjectile("p", 1, 1) ; 
        gener->SetTarget("p", 1, 1) ; 
        gGener=gener;
      }
        break;
      case kPyGJ:
      {
        comment = comment.Append(" Gamma-jet at 5.5 TeV");
        AliGenPythia *gener = new AliGenPythia(-1);
        gener->SetEnergyCMS(5500.);
        gener->SetProcess(kPyDirectGamma);
        Double_t ptHardMin=10.0, ptHardMax=-1.0;
        gener->SetPtHard(ptHardMin,ptHardMax);
        gener->SetYHard(-1.0,1.0);
        gener->SetGammaEtaRange(-0.13,0.13);
        gener->SetGammaPhiRange(210.,330.);
        gener->SetEventListRange(0,1);
        gener->SetProjectile("p", 1, 1) ; 
        gener->SetTarget("p", 1, 1) ; 
        gGener=gener;
      }
        break;
      case kMuonCocktailCent1:
      {
        comment = comment.Append(" Muon Cocktail Cent1");
        AliGenMUONCocktail * gener = new AliGenMUONCocktail();
        gener->SetPtRange(0.4,100.);       // Transverse momentum range   
        gener->SetPhiRange(0.,360.);    // Azimuthal angle range  
        gener->SetYRange(-4.0,-2.4);
        gener->SetMuonPtCut(0.8);
        gener->SetMuonThetaCut(171.,178.);
        gener->SetMuonMultiplicity(2);
        gener->SetImpactParameterRange(0.,5.);  //Centrality class Cent1 for PDC04
        gGener=gener;
        gener->SetProjectile("A", 208, 82) ; 
        gener->SetTarget("A", 208, 82) ; 
      }
        break;
      case kMuonCocktailPer1:
      {
        comment = comment.Append(" Muon Cocktail Per1");
        AliGenMUONCocktail * gener = new AliGenMUONCocktail();
        gener->SetPtRange(0.0,100.);       // Transverse momentum range   
        gener->SetPhiRange(0.,360.);    // Azimuthal angle range  
        gener->SetYRange(-4.0,-2.4);
        gener->SetMuonPtCut(0.8);
        gener->SetMuonThetaCut(171.,178.);
        gener->SetMuonMultiplicity(2);
        gener->SetImpactParameterRange(5.,8.6);//Centrality class Per1 for PDC04
        gener->SetProjectile("A", 208, 82) ; 
        gener->SetTarget("A", 208, 82) ; 
        gGener=gener;
      }
      break;
    case kMuonCocktailPer4:
      {
        comment = comment.Append(" Muon Cocktail Per4");
        AliGenMUONCocktail * gener = new AliGenMUONCocktail();
        gener->SetPtRange(0.0,100.);       // Transverse momentum range   
        gener->SetPhiRange(0.,360.);    // Azimuthal angle range  
        gener->SetYRange(-4.0,-2.4);
        gener->SetMuonPtCut(0.8);
        gener->SetMuonThetaCut(171.,178.);
        gener->SetMuonMultiplicity(2);
        gener->SetImpactParameterRange(13.2,15.0);//Centrality class Per4 for PDC04
        gener->SetProjectile("A", 208, 82) ; 
        gener->SetTarget("A", 208, 82) ; 
        gGener=gener;
      }
        break;
      case kMuonCocktailCent1HighPt:
      {
        comment = comment.Append(" Muon Cocktail HighPt Cent1");
        AliGenMUONCocktail * gener = new AliGenMUONCocktail();
        gener->SetPtRange(0.0,100.);       // Transverse momentum range   
        gener->SetPhiRange(0.,360.);    // Azimuthal angle range  
        gener->SetYRange(-4.0,-2.4);
        gener->SetMuonPtCut(2.5);
        gener->SetMuonThetaCut(171.,178.);
        gener->SetMuonMultiplicity(2);
        gener->SetImpactParameterRange(0.,5.);  //Centrality class Cent1 for PDC04
        gener->SetProjectile("A", 208, 82) ; 
        gener->SetTarget("A", 208, 82) ; 
       gGener=gener;
      }
        break;
      case kMuonCocktailPer1HighPt :
      {
        comment = comment.Append(" Muon Cocktail HighPt Per1");
        AliGenMUONCocktail * gener = new AliGenMUONCocktail();
        gener->SetPtRange(0.0,100.);       // Transverse momentum range   
        gener->SetPhiRange(0.,360.);    // Azimuthal angle range  
        gener->SetYRange(-4.0,-2.4);
        gener->SetMuonPtCut(2.5);
        gener->SetMuonThetaCut(171.,178.);
        gener->SetMuonMultiplicity(2);
        gener->SetImpactParameterRange(5.,8.6);//Centrality class Per1 for PDC04
        gener->SetProjectile("A", 208, 82) ; 
        gener->SetTarget("A", 208, 82) ; 
        gGener=gener;
      }
        break;
      case kMuonCocktailPer4HighPt:
      {
        comment = comment.Append(" Muon Cocktail HighPt Per4");
        AliGenMUONCocktail * gener = new AliGenMUONCocktail();
        gener->SetPtRange(0.0,100.);       // Transverse momentum range   
        gener->SetPhiRange(0.,360.);    // Azimuthal angle range  
        gener->SetYRange(-4.0,-2.4);
        gener->SetMuonPtCut(2.5);
        gener->SetMuonThetaCut(171.,178.);
        gener->SetMuonMultiplicity(2);
        gener->SetImpactParameterRange(13.2,15.0);//Centrality class Per4 for PDC04
        gener->SetProjectile("A", 208, 82) ; 
        gener->SetTarget("A", 208, 82) ; 
        gGener=gener;
      }
        break;
      case kMuonCocktailCent1Single:
      {
        comment = comment.Append(" Muon Cocktail Single Cent1");
        AliGenMUONCocktail * gener = new AliGenMUONCocktail();
        gener->SetPtRange(0.0,100.);       // Transverse momentum range   
        gener->SetPhiRange(0.,360.);    // Azimuthal angle range  
        gener->SetYRange(-4.0,-2.4);
        gener->SetMuonPtCut(0.8);
        gener->SetMuonThetaCut(171.,178.);
        gener->SetMuonMultiplicity(1);
        gener->SetImpactParameterRange(0.,5.);  //Centrality class Cent1 for PDC04
        gener->SetProjectile("A", 208, 82) ; 
        gener->SetTarget("A", 208, 82) ; 
        gGener=gener;
      }
        break;
      case kMuonCocktailPer1Single :
      {
        comment = comment.Append(" Muon Cocktail Single Per1");
        AliGenMUONCocktail * gener = new AliGenMUONCocktail();
        gener->SetPtRange(0.0,100.);       // Transverse momentum range   
        gener->SetPhiRange(0.,360.);    // Azimuthal angle range  
        gener->SetYRange(-4.0,-2.4);
        gener->SetMuonPtCut(0.8);
        gener->SetMuonThetaCut(171.,178.);
        gener->SetMuonMultiplicity(1);
        gener->SetImpactParameterRange(5.,8.6);//Centrality class Per1 for PDC04
        gener->SetNumberOfParticipants(229.3);//Centrality class Per1 for PDC04
        gener->SetProjectile("A", 208, 82) ; 
        gener->SetTarget("A", 208, 82) ; 
        gGener=gener;
      }
        break;
      case kMuonCocktailPer4Single:
      {
        comment = comment.Append(" Muon Cocktail Single Per4");
        AliGenMUONCocktail * gener = new AliGenMUONCocktail();
        gener->SetPtRange(0.0,100.);       // Transverse momentum range   
        gener->SetPhiRange(0.,360.);    // Azimuthal angle range  
        gener->SetYRange(-4.0,-2.4);
        gener->SetMuonPtCut(0.8);
        gener->SetMuonThetaCut(171.,178.);
        gener->SetMuonMultiplicity(1);
        gener->SetImpactParameterRange(13.2,15.0);//Centrality class Per4 for PDC04
        gener->SetProjectile("A", 208, 82) ; 
        gener->SetTarget("A", 208, 82) ; 
        gGener=gener;
      }
        break;
      case kFlow_2_2000:
      {
        comment = comment.Append(" Flow with dN/deta  = 2000, vn = 2%");
        gGener = GeVSimStandard(2000., 2.);
      }
        break;
        
      case kFlow_10_2000:
      {
        comment = comment.Append(" Flow with dN/deta  = 2000, vn = 10%");
        gGener = GeVSimStandard(2000., 10.);
      }
        break;
        
      case kFlow_6_2000:
      {
        comment = comment.Append(" Flow with dN/deta  = 2000, vn = 6%");
        gGener = GeVSimStandard(2000., 6.);
      }
        break;
        
      case kFlow_6_5000:
      {
        comment = comment.Append(" Flow with dN/deta  = 5000, vn = 6%");
        gGener = GeVSimStandard(5000., 6.);
      }
        break;
      case kHIJINGplus:
      {
        //
        // The cocktail
        AliGenCocktail *gener  = new AliGenCocktail();
        
        //
        // Charm production by Pythia
        AliGenPythia * genpyc = new AliGenPythia(230);
        genpyc->SetProcess(kPyCharmPbPbMNR);
        genpyc->SetStrucFunc(kCTEQ4L);
        genpyc->SetPtHard(2.1,-1.0);
        genpyc->SetEnergyCMS(5500.);
        genpyc->SetNuclei(208,208);
        genpyc->SetYRange(-999,999);
        genpyc->SetForceDecay(kAll);
        genpyc->SetFeedDownHigherFamily(kFALSE);
        genpyc->SetCountMode(AliGenPythia::kCountParents);
        //
        // Beauty production by Pythia
        AliGenPythia * genpyb = new AliGenPythia(9);
        genpyb->SetProcess(kPyBeautyPbPbMNR);
        genpyb->SetStrucFunc(kCTEQ4L);
        genpyb->SetPtHard(2.75,-1.0);
        genpyb->SetEnergyCMS(5500.);
        genpyb->SetNuclei(208,208);
        genpyb->SetYRange(-999,999);
        genpyb->SetForceDecay(kAll);
        genpyb->SetFeedDownHigherFamily(kFALSE);
        genpyb->SetCountMode(AliGenPythia::kCountParents);
        //
        // Hyperons
        //
        AliGenSTRANGElib *lib = new AliGenSTRANGElib();
        Int_t particle;
        // Xi
        particle = kXiMinus;
        AliGenParam *genXi = new AliGenParam(16,particle,lib->GetPt(particle),lib->GetY(particle),lib->GetIp(particle));
        genXi->SetPtRange(0., 12.);
        genXi->SetYRange(-1.1, 1.1);
        genXi->SetForceDecay(kNoDecay);	
        
        //
        // Omega
        particle = kOmegaMinus;
        AliGenParam *genOmega = new AliGenParam(10,particle,lib->GetPt(particle),lib->GetY(particle),lib->GetIp(particle));     
        genOmega->SetPtRange(0, 12.);
        genOmega->SetYRange(-1.1, 1.1);
        genOmega->SetForceDecay(kNoDecay);
        
        //
        // Central Hijing 
        AliGenHijing *genHi = HijingStandard();
        genHi->SwitchOffHeavyQuarks(kTRUE);
        genHi->SetImpactParameterRange(0.,5.);
        //
        // Add everything to the cocktail and shake ...
        gener->AddGenerator(genHi,    "Hijing cent1", 1);
        gener->AddGenerator(genpyc,   "Extra charm",  1);
        gener->AddGenerator(genpyb,   "Extra beauty", 1);
        gener->AddGenerator(genXi,    "Xi"          , 1);
        gener->AddGenerator(genOmega, "Omega",        1);
        gener->SetProjectile("A", 208, 82) ; 
        gener->SetTarget("A", 208, 82) ; 
        gGener = gener;
      }
        break;
      default: break;
    }
  
  return gGener;
}

AliGenHijing* HijingStandard()
{
  AliGenHijing *gener = new AliGenHijing(-1);
  // centre of mass energy 
  gener->SetEnergyCMS(5500.);
  // reference frame
  gener->SetReferenceFrame("CMS");
  // projectile
  gener->SetProjectile("A", 208, 82);
  gener->SetTarget    ("A", 208, 82);
  // tell hijing to keep the full parent child chain
  gener->KeepFullEvent();
  // enable jet quenching
  gener->SetJetQuenching(1);
  // enable shadowing
  gener->SetShadowing(1);
  // neutral pion and heavy particle decays switched off
  gener->SetDecaysOff(1);
  // Don't track spectators
  gener->SetSpectators(0);
  // kinematic selection
  gener->SetSelectAll(0);
  return gener;
}

AliGenGeVSim* GeVSimStandard(Float_t mult, Float_t vn)
{
  AliGenGeVSim* gener = new AliGenGeVSim(0);
  //
  // Mult is the number of charged particles in |eta| < 0.5
  // Vn is in (%)
  //
  // Sigma of the Gaussian dN/deta
  Float_t sigma_eta  = 2.75;
  //
  // Maximum eta
  Float_t etamax     = 7.00;
  //
  //
  // Scale from multiplicity in |eta| < 0.5 to |eta| < |etamax|	
  Float_t mm = mult * (TMath::Erf(etamax/sigma_eta/sqrt(2.)) / TMath::Erf(0.5/sigma_eta/sqrt(2.))); 
  //
  // Scale from charged to total multiplicity
  // 
  mm *= 1.587;
  //
  // Vn 
  vn /= 100.;    	 
  //
  // Define particles
  //
  //
  // 78% Pions (26% pi+, 26% pi-, 26% p0)              T = 250 MeV
  AliGeVSimParticle *pp =  new AliGeVSimParticle(kPiPlus,  1, 0.26 * mm, 0.25, sigma_eta) ;
  AliGeVSimParticle *pm =  new AliGeVSimParticle(kPiMinus, 1, 0.26 * mm, 0.25, sigma_eta) ;
  AliGeVSimParticle *p0 =  new AliGeVSimParticle(kPi0,     1, 0.26 * mm, 0.25, sigma_eta) ;
  //
  // 12% Kaons (3% K0short, 3% K0long, 3% K+, 3% K-)   T = 300 MeV
  AliGeVSimParticle *ks =  new AliGeVSimParticle(kK0Short, 1, 0.03 * mm, 0.30, sigma_eta) ;
  AliGeVSimParticle *kl =  new AliGeVSimParticle(kK0Long,  1, 0.03 * mm, 0.30, sigma_eta) ;
  AliGeVSimParticle *kp =  new AliGeVSimParticle(kKPlus,   1, 0.03 * mm, 0.30, sigma_eta) ;
  AliGeVSimParticle *km =  new AliGeVSimParticle(kKMinus,  1, 0.03 * mm, 0.30, sigma_eta) ;
  //
  // 10% Protons / Neutrons (5% Protons, 5% Neutrons)  T = 250 MeV
  AliGeVSimParticle *pr =  new AliGeVSimParticle(kProton,  1, 0.05 * mm, 0.25, sigma_eta) ;
  AliGeVSimParticle *ne =  new AliGeVSimParticle(kNeutron, 1, 0.05 * mm, 0.25, sigma_eta) ;
  //
  // Set Elliptic Flow properties 	
  
  Float_t pTsaturation = 2. ;
  
  pp->SetEllipticParam(vn,pTsaturation,0.) ;
  pm->SetEllipticParam(vn,pTsaturation,0.) ;
  p0->SetEllipticParam(vn,pTsaturation,0.) ;
  pr->SetEllipticParam(vn,pTsaturation,0.) ;
  ne->SetEllipticParam(vn,pTsaturation,0.) ;
  ks->SetEllipticParam(vn,pTsaturation,0.) ;
  kl->SetEllipticParam(vn,pTsaturation,0.) ;
  kp->SetEllipticParam(vn,pTsaturation,0.) ;
  km->SetEllipticParam(vn,pTsaturation,0.) ;
  //
  // Set Direct Flow properties	
  pp->SetDirectedParam(vn,1.0,0.) ;
  pm->SetDirectedParam(vn,1.0,0.) ;
  p0->SetDirectedParam(vn,1.0,0.) ;
  pr->SetDirectedParam(vn,1.0,0.) ;
  ne->SetDirectedParam(vn,1.0,0.) ;
  ks->SetDirectedParam(vn,1.0,0.) ;
  kl->SetDirectedParam(vn,1.0,0.) ;
  kp->SetDirectedParam(vn,1.0,0.) ;
  km->SetDirectedParam(vn,1.0,0.) ;
  //
  // Add particles to the list
  gener->AddParticleType(pp) ;
  gener->AddParticleType(pm) ;
  gener->AddParticleType(p0) ;
  gener->AddParticleType(pr) ;
  gener->AddParticleType(ne) ;
  gener->AddParticleType(ks) ;
  gener->AddParticleType(kl) ;
  gener->AddParticleType(kp) ;
  gener->AddParticleType(km) ;
  //	
  // Random Ev.Plane ----------------------------------
  TF1 *rpa = new TF1("gevsimPsiRndm","1", 0, 360);
  // --------------------------------------------------
  gener->SetPtRange(0., 9.) ; // Use a resonable range! (used for bin size in numerical integration)
  gener->SetPhiRange(0, 360);
  //
  // Set pseudorapidity range 
  Float_t thmin = EtaToTheta(+etamax);   
  Float_t thmax = EtaToTheta(-etamax);   
  gener->SetThetaRange(thmin,thmax);     
  return gener;
}

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