]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Fixed a few problems
authoralla <alla@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 25 Oct 2004 15:19:53 +0000 (15:19 +0000)
committeralla <alla@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 25 Oct 2004 15:19:53 +0000 (15:19 +0000)
FMD/AliFMD.cxx
FMD/AliFMDDigitizer.cxx
FMD/AliFMDRing.cxx
FMD/AliFMDv1.cxx
FMD/Config.C

index 2dd5a4bbdbb47c03ee93c49eec12749489f5b57c..abf41da5dd461f8103fc2b61f99e088411fb3470 100644 (file)
@@ -173,7 +173,17 @@ AliFMD::AliFMD()
     fOuter(0),
     fFMD1(0),
     fFMD2(0), 
     fOuter(0),
     fFMD1(0),
     fFMD2(0), 
-    fFMD3(0)
+    fFMD3(0), 
+    fSDigits(0), 
+    fNsdigits(0),
+    fSiDensity(0),
+    fPrintboardRotationId(0),
+    fIdentityRotationId(0),
+    fShortLegId(0),
+    fLongLegId(0),
+    fLegLength(0),
+    fLegRadius(0),
+    fModuleSpacing(0)
 {
   //
   // Default constructor for class AliFMD
 {
   //
   // Default constructor for class AliFMD
@@ -181,8 +191,6 @@ AliFMD::AliFMD()
   AliDebug(0, "Default CTOR");
   fHits     = 0;
   fDigits   = 0;
   AliDebug(0, "Default CTOR");
   fHits     = 0;
   fDigits   = 0;
-  fSDigits  = 0;
-  fNsdigits = 0;
   fIshunt   = 0;
 }
 
   fIshunt   = 0;
 }
 
@@ -193,7 +201,17 @@ AliFMD::AliFMD(const char *name, const char *title, bool detailed)
     fOuter(0),
     fFMD1(0),
     fFMD2(0), 
     fOuter(0),
     fFMD1(0),
     fFMD2(0), 
-    fFMD3(0)
+    fFMD3(0),
+    fSDigits(0),
+    fNsdigits(0),
+    fSiDensity(0),
+    fPrintboardRotationId(0),
+    fIdentityRotationId(0),
+    fShortLegId(0),
+    fLongLegId(0),
+    fLegLength(0),
+    fLegRadius(0),
+    fModuleSpacing(0)
 {
   //
   // Standard constructor for Forward Multiplicity Detector
 {
   //
   // Standard constructor for Forward Multiplicity Detector
@@ -651,8 +669,7 @@ AliFMD::MakeBranch(Option_t * option)
 void 
 AliFMD::SetTreeAddress()
 {
 void 
 AliFMD::SetTreeAddress()
 {
-  // Set branch address for the Hits and Digits Tree.
-
+  // Set branch address for the Hits, Digits, and SDigits Tree.
   if (fLoader->TreeH()) HitsArray();
   AliDetector::SetTreeAddress();
 
   if (fLoader->TreeH()) HitsArray();
   AliDetector::SetTreeAddress();
 
index a273ad33f44e0a4ee36e5c22da937c690bdf8c77..b664af6a36d1ce12285d174f2128af3d87ffcfed 100644 (file)
@@ -612,6 +612,7 @@ AliFMDSDigitizer::AliFMDSDigitizer(const Char_t* headerFile,
 
   // Add task to tasks folder 
   loader->PostSDigitizer(this);
 
   // Add task to tasks folder 
   loader->PostSDigitizer(this);
+
 }
 
 //____________________________________________________________________
 }
 
 //____________________________________________________________________
index 1d7e8999a83b97a00032018294b1128358b6f232..da0a5ae2777431198fbc6fc6438e87d9ae0834fe 100644 (file)
@@ -413,7 +413,7 @@ AliFMDRing::SetupGeometry(Int_t vacuumId, Int_t siId, Int_t pcbId,
     dz   =  w / 2 - fSiThickness - fPrintboardThickness / 2;
     gMC->Gspos(name.Data(), id, name2.Data(), 
               fLowR + pbBotL + pbTopL / 2, 0, dz, pbRotId, "ONLY");
     dz   =  w / 2 - fSiThickness - fPrintboardThickness / 2;
     gMC->Gspos(name.Data(), id, name2.Data(), 
               fLowR + pbBotL + pbTopL / 2, 0, dz, pbRotId, "ONLY");
-    name = Form(kPrintboardFormat, fId);
+    name = Form(kPrintboardFormat, 'B', fId);
     gMC->Gspos(name.Data(), id, name2.Data(), 
               fLowR + pbBotL / 2, 0, dz, pbRotId, "ONLY");
 
     gMC->Gspos(name.Data(), id, name2.Data(), 
               fLowR + pbBotL / 2, 0, dz, pbRotId, "ONLY");
 
index 60d04c26dc6712af94022c59aa3008896edd6bed..2e9436a4bded7013e9c00be121b05b74ba95ad75 100644 (file)
@@ -120,21 +120,19 @@ AliFMDv1::StepManager()
   // Only process charged particles 
   if(TMath::Abs(gMC->TrackCharge()) <= 0) return; 
 
   // Only process charged particles 
   if(TMath::Abs(gMC->TrackCharge()) <= 0) return; 
 
-  TString vol(gMC->CurrentVolName());
-  std::cout << "Is inside " << vol << " ... " << std::endl;
+  // TString vol(gMC->CurrentVolName());
+  // std::cout << "Is inside " << vol << " ... " << std::endl;
   // Only do stuff is the track is in one of the strips. 
   // TString vol(gMC->CurrentVolName());
   // if (!vol.Contains("STR")) return;
   Int_t copy;
   Int_t volumeId = gMC->CurrentVolID(copy);
   // Only do stuff is the track is in one of the strips. 
   // TString vol(gMC->CurrentVolName());
   // if (!vol.Contains("STR")) return;
   Int_t copy;
   Int_t volumeId = gMC->CurrentVolID(copy);
-  if (volumeId != fInner->GetStripId() || volumeId != fOuter->GetStripId()) {
-    std::cout << "Not a FMD strip volume: " 
-             << volumeId << " != " << fInner->GetStripId() << " or " 
-             << fOuter->GetStripId() << std::endl;
-    return;
-  }
-  std::cout << "OK, an FMD strip volume!" << std::endl;
-  
+  // The ring ID is encoded in the volume name 
+  Char_t ring = '\0';
+  if (volumeId == fInner->GetStripId())      ring = 'I';
+  else if (volumeId == fOuter->GetStripId()) ring = 'O'; 
+  else                                       return;
+
   // Get the strip number.  Note, that GEANT numbers divisions from 1,
   // so we subtract one 
   Int_t strip = copy - 1;
   // Get the strip number.  Note, that GEANT numbers divisions from 1,
   // so we subtract one 
   Int_t strip = copy - 1;
@@ -161,9 +159,7 @@ AliFMDv1::StepManager()
   // The sector number, calculated from module and phi division # 
   Int_t  sector =  2 * module + phiDiv - 1;
 
   // The sector number, calculated from module and phi division # 
   Int_t  sector =  2 * module + phiDiv - 1;
 
-  // The ring ID is encoded in the volume name 
-  Char_t ring = vol[3];
-
+  
   // Get a pointer to the sub detector structure 
   AliFMDSubDetector* det = 0;
   switch (detector) {
   // Get a pointer to the sub detector structure 
   AliFMDSubDetector* det = 0;
   switch (detector) {
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,
 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 {
 enum PprGeo_t {
-  kHoles,                      //
-  kNoHoles                     //
+  kHoles, 
+  kNoHoles
 };
 
 };
 
-//____________________________________________________________________
 enum PprRad_t {
 enum PprRad_t {
-  kGluonRadiation,             //
-  kNoGluonRadiation            //
+  kGluonRadiation, 
+  kNoGluonRadiation
 };
 
 };
 
-//____________________________________________________________________
 enum PprMag_t {
 enum PprMag_t {
-  k2kG,                                //
-  k4kG,                                //
-  k5kG                         //
+  k2kG, 
+  k4kG, 
+  k5kG
 };
 
 };
 
-//____________________________________________________________________
 enum MC_t {
   kFLUKA, 
   kGEANT3, 
   kGEANT4
 };
 
 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;
 
 static TString  comment;
 
-//____________________________________________________________________
 // Functions
 // 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
   // 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: 
     // 
   switch (smc) {
   case kFLUKA: 
     // 
@@ -266,14 +112,14 @@ Config()
     gAlice->Fatal("Config.C", "No MC type chosen");
     return;
   }
     gAlice->Fatal("Config.C", "No MC type chosen");
     return;
   }
-
-  //__________________________________________________________________
-  AliRunLoader* rl = 0;
-
+  
+  //
+  // Run loader
+  //
   cout<<"Config.C: Creating Run Loader ..."<<endl;
   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;
   if (!rl) {
     gAlice->Fatal("Config.C","Can not instatiate the Run Loader");
     return;
@@ -282,8 +128,6 @@ Config()
   rl->SetNumberOfEventsPerFile(3);
   gAlice->SetRunLoader(rl);
 
   rl->SetNumberOfEventsPerFile(3);
   gAlice->SetRunLoader(rl);
 
-  //__________________________________________________________________
-  // For FLUKA 
   switch (smc) {
   case kFLUKA: 
     {
   switch (smc) {
   case kFLUKA: 
     {
@@ -298,51 +142,33 @@ Config()
     }
     break;
   }
     }
     break;
   }
-
+  
+     
   //
   // Set External decayer
   //
   // Set External decayer
+  // 
   AliDecayer *decayer = new AliDecayerPythia();
   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);
 
   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("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("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("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
   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("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("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();
   gener->Init();
-    
+  // 
+  // Activate this line if you want the vertex smearing to happen
+  // track by track
+  //
+  gAlice->SetDebug(10);
+
   // 
   // Comments 
   // 
   // 
   // Comments 
   // 
@@ -394,12 +238,13 @@ Config()
 
   std::cout << "\n\n Comment: " << comment << "\n" << std::endl;
 
 
   std::cout << "\n\n Comment: " << comment << "\n" << std::endl;
 
-  //__________________________________________________________________
+  // 
   // Field (L3 0.4 T)
   // 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();
   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 
 
   // 
   // Used detectors 
@@ -661,909 +506,8 @@ Config()
   }
 }
 
   }
 }
 
-//____________________________________________________________________
 Float_t EtaToTheta(Float_t arg)
 {
   return (180./TMath::Pi())*2.*atan(exp(-arg));
 }
 
 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
-//