Fixed a few problems
[u/mrichter/AliRoot.git] / FMD / Config.C
index 39fb3d85cd81968c22e94d867f2501b007634b78..056501ba788ce6447ad33c3ecc2bdda23bb1fc93 100644 (file)
-//____________________________________________________________________
-//
-// $Id$
-//
-// One can use the configuration macro in compiled mode by
-// root [0] gSystem->Load("libgeant321");
-// root [0] gSystem->SetIncludePath("-I$ROOTSYS/include -I$ALICE_ROOT/include\
-//                   -I$ALICE_ROOT -I$ALICE/geant3/TGeant3");
-// root [0] .x grun.C(1,"ConfigPPR.C++")
-//
-#if !defined(__CINT__) || defined(__MAKECINT__)
-#include <Riostream.h>
-#include <TRandom.h>
-#include <TSystem.h>
-#include <TVirtualMC.h>
-#include <TGeant3.h>
-#include "STEER/AliRunLoader.h"
-#include "STEER/AliRun.h"
-#include "STEER/AliConfig.h"
-#include "STEER/AliGenerator.h"
-#include "PYTHIA6/AliDecayerPythia.h"
-#include "EVGEN/AliGenHIJINGpara.h"
-#include "THijing/AliGenHijing.h"
-#include "EVGEN/AliGenCocktail.h"
-#include "EVGEN/AliGenSlowNucleons.h"
-#include "EVGEN/AliSlowNucleonModelExp.h"
-#include "EVGEN/AliGenParam.h"
-#include "EVGEN/AliGenMUONlib.h"
-#include "EVGEN/AliGenMUONCocktail.h"
-#include "PYTHIA6/AliGenPythia.h"
-#include "STEER/AliMagFMaps.h"
-#include "STRUCT/AliBODY.h"
-#include "STRUCT/AliMAG.h"
-#include "STRUCT/AliABSOv0.h"
-#include "STRUCT/AliDIPOv2.h"
-#include "STRUCT/AliHALL.h"
-#include "STRUCT/AliFRAMEv2.h"
-#include "STRUCT/AliSHILv2.h"
-#include "STRUCT/AliPIPEv0.h"
-#include "ITS/AliITSvPPRasymmFMD.h"
-#include "TPC/AliTPCv2.h"
-#include "TOF/AliTOFv4T0.h"
-#include "RICH/AliRICHv1.h"
-#include "ZDC/AliZDCv2.h"
-#include "TRD/AliTRDv1.h"
-#include "FMD/AliFMDv1.h"
-#include "MUON/AliMUONv1.h"
-#include "MUON/AliMUONSt1GeometryBuilderV2.h"
-#include "MUON/AliMUONSt2GeometryBuilder.h"
-#include "MUON/AliMUONSlatGeometryBuilder.h"
-#include "MUON/AliMUONTriggerGeometryBuilder.h"
-#include "PHOS/AliPHOSv1.h"
-#include "PMD/AliPMDv1.h"
-#include "START/AliSTARTv1.h"
-#include "EMCAL/AliEMCALv1.h"
-#include "CRT/AliCRTv0.h"
-#include "VZERO/AliVZEROv2.h"
-#endif
+static Int_t    eventsPerRun = 1;
+static Int_t    nParticles   = 100;
 
-//____________________________________________________________________
-// 
-// Generator types 
-//
 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,
-  kRunMax
+  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, 
+  kPythia6Jets, 
+  kD0PbPb5500, 
+  kD_TRD, 
+  kB_TRD, 
+  kJpsi_TRD,
+  kU_TRD, 
+  kPyJJ, 
+  kPyGJ
 };
 
-//____________________________________________________________________
-// 
-// Generator types names
-//
-const char* pprRunName[kRunMax] = {
-  "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"
-};
-
-//____________________________________________________________________
 enum PprGeo_t {
-  kHoles,                      //
-  kNoHoles                     //
+  kHoles, 
+  kNoHoles
 };
 
-//____________________________________________________________________
 enum PprRad_t {
-  kGluonRadiation,             //
-  kNoGluonRadiation            //
+  kGluonRadiation, 
+  kNoGluonRadiation
 };
 
-//____________________________________________________________________
 enum PprMag_t {
-  k2kG,                                //
-  k4kG,                                //
-  k5kG                         //
+  k2kG, 
+  k4kG, 
+  k5kG
 };
 
-//____________________________________________________________________
 enum MC_t {
   kFLUKA, 
   kGEANT3, 
   kGEANT4
 };
 
-//____________________________________________________________________
-// This part for configuration    
-//static PprRun_t srun = test50;
-static PprRun_t srun  = kParam_8000;
-static PprGeo_t sgeo  = kNoHoles;
-static PprRad_t srad  = kGluonRadiation;
-static PprMag_t smag  = k5kG;
-static Int_t    sseed = 12345; //Set 0 to use the current time
-static MC_t     smc   = kGEANT3;
-
 
-//____________________________________________________________________
-// Comment line 
+// This part for configuration
+//static PprRun_t srun = test50;
+static PprRun_t srun = kPythia6;
+static PprGeo_t sgeo = kHoles;
+static PprRad_t srad = kGluonRadiation;
+static PprMag_t smag = k5kG;
+// static MC_t     smc  = kFLUKA;
+static MC_t     smc  = kGEANT3;
+
+// Comment line
 static TString  comment;
 
-//____________________________________________________________________
 // Functions
-Float_t       EtaToTheta(Float_t arg);
-AliGenerator* GeneratorFactory(PprRun_t srun);
-AliGenHijing* HijingStandard();
-void          ProcessEnvironmentVars();
-
-//____________________________________________________________________
-void 
-Config()
-{
-  // ThetaRange is (0., 180.). It was (0.28,179.72) 7/12/00 09:00
-  // Theta range given through pseudorapidity limits 22/6/2001
+Float_t EtaToTheta(Float_t arg);
 
-  // Get settings from environment variables
-  ProcessEnvironmentVars();
 
+void Config()
+{
+  cout << "==> Config.C..." << endl;
+  
   // Set Random Number seed
-  gRandom->SetSeed(sseed);
-  cout<<"Seed for random number generation= "<<gRandom->GetSeed()<<endl; 
-
+  gRandom->SetSeed(12345);
+  cout<<"Seed for random number generation= "<<gRandom->GetSeed()<<endl;
 
-  //__________________________________________________________________
   switch (smc) {
   case kFLUKA: 
     // 
@@ -266,14 +112,14 @@ Config()
     gAlice->Fatal("Config.C", "No MC type chosen");
     return;
   }
-
-  //__________________________________________________________________
-  AliRunLoader* rl = 0;
-
+  
+  //
+  // Run loader
+  //
   cout<<"Config.C: Creating Run Loader ..."<<endl;
-  rl = AliRunLoader::Open("galice.root",
-                         AliConfig::GetDefaultEventFolderName(),
-                         "recreate");
+  AliRunLoader* rl = AliRunLoader::Open("galice.root",
+                                       AliConfig::GetDefaultEventFolderName(),
+                                       "recreate");
   if (!rl) {
     gAlice->Fatal("Config.C","Can not instatiate the Run Loader");
     return;
@@ -282,8 +128,6 @@ Config()
   rl->SetNumberOfEventsPerFile(3);
   gAlice->SetRunLoader(rl);
 
-  //__________________________________________________________________
-  // For FLUKA 
   switch (smc) {
   case kFLUKA: 
     {
@@ -298,51 +142,33 @@ Config()
     }
     break;
   }
-
+  
+     
   //
   // Set External decayer
+  // 
   AliDecayer *decayer = new AliDecayerPythia();
-
-
-  switch (srun) {
-  case kD0PbPb5500:
-    decayer->SetForceDecay(kHadronicD);
-    break;
-  case kCharmSemiElPbPb5500:
-    decayer->SetForceDecay(kSemiElectronic);
-    break;
-  case kBeautySemiElPbPb5500:
-    decayer->SetForceDecay(kSemiElectronic);
-    break;
-  default:
-    decayer->SetForceDecay(kAll);
-    break;
-  }
+  decayer->SetForceDecay(kAll);
   decayer->Init();
   gMC->SetExternalDecayer(decayer);
 
-  //
-  //
-  //=======================================================================
-  //
-  //=======================================================================
-  // ************* STEERING parameters FOR ALICE SIMULATION **************
-  // --- Specify event type to be tracked through the ALICE setup
-  // --- All positions are in cm, angles in degrees, and P and E in GeV
 
+  //
+  // Physics process control
+  // 
   gMC->SetProcess("DCAY",1);
   gMC->SetProcess("PAIR",1);
   gMC->SetProcess("COMP",1);
   gMC->SetProcess("PHOT",1);
   gMC->SetProcess("PFIS",0);
-  gMC->SetProcess("DRAY",0);
+  gMC->SetProcess("DRAY",1);
   gMC->SetProcess("ANNI",1);
   gMC->SetProcess("BREM",1);
   gMC->SetProcess("MUNU",1);
-  gMC->SetProcess("CKOV",1);
+  gMC->SetProcess("CKOV",1); 
   gMC->SetProcess("HADR",1);
   gMC->SetProcess("LOSS",2);
-  gMC->SetProcess("MULS",1);
+  gMC->SetProcess("MULS",1);  
   gMC->SetProcess("RAYL",1);
 
   Float_t cut = 1.e-3;        // 1MeV cut by default
@@ -353,24 +179,42 @@ Config()
   gMC->SetCut("CUTNEU", cut);
   gMC->SetCut("CUTHAD", cut);
   gMC->SetCut("CUTMUO", cut);
-  gMC->SetCut("BCUTE",  cut); 
-  gMC->SetCut("BCUTM",  cut); 
-  gMC->SetCut("DCUTE",  cut); 
-  gMC->SetCut("DCUTM",  cut); 
+  gMC->SetCut("BCUTE",  cut);
+  gMC->SetCut("BCUTM",  cut);
+  gMC->SetCut("DCUTE",  cut);
+  gMC->SetCut("DCUTM",  cut);
   gMC->SetCut("PPCUTM", cut);
-  gMC->SetCut("TOFMAX", tofmax); 
-
+  gMC->SetCut("TOFMAX", tofmax);
 
-  // Generator Configuration
-  gAlice->SetDebug(0);
-  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);
+  //
+  //=======================================================================
+  // STEERING parameters FOR ALICE SIMULATION 
+  // 
+  // Specify event type to be tracked through the ALICE setup.  All
+  // positions are in cm, angles in degrees, and P and E in GeV
+  // 
+  if (gSystem->Getenv("CONFIG_NPARTICLES"))
+    nParticles = atoi(gSystem->Getenv("CONFIG_NPARTICLES"));
+
+  cout << "\t* Creating and configuring generator for " << nParticles 
+       << " particles..." << endl;
+  AliGenHIJINGpara *gener = new AliGenHIJINGpara(nParticles);
+  gener->SetMomentumRange(0., 999);
+  gener->SetPhiRange(0, 360);
+
+  // Set pseudorapidity range from -6 to 6.
+  Float_t thmin = EtaToTheta( 6.);   // theta min. <---> eta max
+  Float_t thmax = EtaToTheta(-6.);   // theta max. <---> eta min 
+  gener->SetThetaRange(thmin,thmax);
+  gener->SetOrigin(0, 0, 0);  //vertex position
+  gener->SetSigma(0, 0, 0);   //Sigma in (X,Y,Z) (cm) on IP position
   gener->Init();
-    
+  // 
+  // Activate this line if you want the vertex smearing to happen
+  // track by track
+  //
+  gAlice->SetDebug(10);
+
   // 
   // Comments 
   // 
@@ -394,12 +238,13 @@ Config()
 
   std::cout << "\n\n Comment: " << comment << "\n" << std::endl;
 
-  //__________________________________________________________________
+  // 
   // Field (L3 0.4 T)
+  // 
   AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., smag);
   field->SetL3ConstField(0); //Using const. field in the barrel
   rl->CdGAFile();
-  gAlice->SetField(field);    
+  gAlice->SetField(field);
 
   // 
   // Used detectors 
@@ -661,909 +506,8 @@ Config()
   }
 }
 
-//____________________________________________________________________
 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 = 0;
-  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.);
-      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.)
-      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.)
-      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.)
-      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.)
-      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.)
-      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.)
-      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.)
-      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.)
-      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.)
-      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.)
-      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);
-      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);
-      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);
-      gGener=gener;
-    }
-    break;
-  case kCocktailTRD:
-    {
-      comment = comment.Append(" Cocktail for TRD at 5.5 TeV");
-      AliGenCocktail *gener  = new AliGenCocktail();
-
-      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);
-
-      gener->AddGenerator(jpsi,"J/psi",1);
-      gener->AddGenerator(ups,"Upsilon",1);
-      gener->AddGenerator(charm,"Charm",1);
-      gener->AddGenerator(beauty,"Beauty",1);
-      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);
-      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);
-      gGener=gener;
-    }
-    break;
-  case kMuonCocktailCent1:
-    {
-      comment = comment.Append(" Muon Cocktail Cent1");
-      AliGenMUONCocktail * gener = new AliGenMUONCocktail();
-      gener->SetPtRange(1.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->SetNumberOfCollisions(1626.);  //Centrality class Cent1 for PDC04
-      gener->SetNumberOfParticipants(359.4);//Centrality class Cent1 for PDC04
-      gGener=gener;
-    }
-    break;
-  case kMuonCocktailPer1:
-    {
-      comment = comment.Append(" Muon Cocktail Per1");
-      AliGenMUONCocktail * gener = new AliGenMUONCocktail();
-      gener->SetPtRange(1.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->SetNumberOfCollisions(820.0);//Centrality class Per1 for PDC04
-      gener->SetNumberOfParticipants(229.3);//Centrality class Per1 for PDC04
-      gGener=gener;
-    }
-    break;
-  case kMuonCocktailPer4:
-    {
-      comment = comment.Append(" Muon Cocktail Per4");
-      AliGenMUONCocktail * gener = new AliGenMUONCocktail();
-      gener->SetPtRange(1.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->SetNumberOfCollisions(13.6);//Centrality class Per4 for PDC04
-      gener->SetNumberOfParticipants(13.3);//Centrality class Per4 for PDC04
-      gGener=gener;
-    }
-    break;
-  case kMuonCocktailCent1HighPt:
-    {
-      comment = comment.Append(" Muon Cocktail HighPt Cent1");
-      AliGenMUONCocktail * gener = new AliGenMUONCocktail();
-      gener->SetPtRange(1.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->SetNumberOfCollisions(1626.);  //Centrality class Cent1 for PDC04
-      gener->SetNumberOfParticipants(359.4);//Centrality class Cent1 for PDC04
-      gGener=gener;
-    }
-    break;
-  case kMuonCocktailPer1HighPt :
-    {
-      comment = comment.Append(" Muon Cocktail HighPt Per1");
-      AliGenMUONCocktail * gener = new AliGenMUONCocktail();
-      gener->SetPtRange(1.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->SetNumberOfCollisions(820.0);//Centrality class Per1 for PDC04
-      gener->SetNumberOfParticipants(229.3);//Centrality class Per1 for PDC04
-      gGener=gener;
-    }
-    break;
-  case kMuonCocktailPer4HighPt:
-    {
-      comment = comment.Append(" Muon Cocktail HighPt Per4");
-      AliGenMUONCocktail * gener = new AliGenMUONCocktail();
-      gener->SetPtRange(1.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->SetNumberOfCollisions(13.6);//Centrality class Per4 for PDC04
-      gener->SetNumberOfParticipants(13.3);//Centrality class Per4 for PDC04
-      gGener=gener;
-    }
-    break;
-  case kMuonCocktailCent1Single:
-    {
-      comment = comment.Append(" Muon Cocktail Single Cent1");
-      AliGenMUONCocktail * gener = new AliGenMUONCocktail();
-      gener->SetPtRange(1.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->SetNumberOfCollisions(1626.);  //Centrality class Cent1 for PDC04
-      gener->SetNumberOfParticipants(359.4);//Centrality class Cent1 for PDC04
-      gGener=gener;
-    }
-    break;
-  case kMuonCocktailPer1Single :
-    {
-      comment = comment.Append(" Muon Cocktail Single Per1");
-      AliGenMUONCocktail * gener = new AliGenMUONCocktail();
-      gener->SetPtRange(1.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->SetNumberOfCollisions(820.0);//Centrality class Per1 for PDC04
-      gener->SetNumberOfParticipants(229.3);//Centrality class Per1 for PDC04
-      gGener=gener;
-    }
-    break;
-  case kMuonCocktailPer4Single:
-    {
-      comment = comment.Append(" Muon Cocktail Single Per4");
-      AliGenMUONCocktail * gener = new AliGenMUONCocktail();
-      gener->SetPtRange(1.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->SetNumberOfCollisions(13.6);//Centrality class Per4 for PDC04
-      gener->SetNumberOfParticipants(13.3);//Centrality class Per4 for PDC04
-      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;
-}
-
-
-//____________________________________________________________________
-void 
-ProcessEnvironmentVars()
-{
-  // Run type
-  if (gSystem->Getenv("CONFIG_RUN_TYPE")) {
-    for (Int_t iRun = 0; iRun < kRunMax; iRun++) {
-      if (strcmp(gSystem->Getenv("CONFIG_RUN_TYPE"), pprRunName[iRun])==0) {
-       srun = (PprRun_t)iRun;
-       cout<<"Run type set to "<<pprRunName[iRun]<<endl;
-      }
-    }
-  }
-
-  // Random Number seed
-  if (gSystem->Getenv("CONFIG_SEED")) {
-    sseed = atoi(gSystem->Getenv("CONFIG_SEED"));
-  }
-}
-
-//____________________________________________________________________
-//
-// EOF
-//