X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=test%2Fppbench%2FConfig.C;h=579bac6ee62b278b7fad56ca73943344005790ed;hp=6010a9c792bf3f3b9837102bad291fbcd72fcdad;hb=99c7d4955868923607f3b8344f93cfd54e6eb400;hpb=cd33bb3e66cef00321443e939dea76ad938cde97 diff --git a/test/ppbench/Config.C b/test/ppbench/Config.C index 6010a9c792b..579bac6ee62 100644 --- a/test/ppbench/Config.C +++ b/test/ppbench/Config.C @@ -31,7 +31,7 @@ #include "EVGEN/AliGenGeVSim.h" #include "EVGEN/AliGeVSimParticle.h" #include "PYTHIA6/AliGenPythia.h" -#include "STEER/AliMagWrapCheb.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -105,11 +105,6 @@ enum PprRad_t kGluonRadiation, kNoGluonRadiation }; -enum PprMag_t -{ - k2kG, k4kG, k5kG -}; - enum PprTrigConf_t { kDefaultPPTrig, kDefaultPbPbTrig @@ -123,7 +118,7 @@ const char * pprTrigConfName[] = { static PprRun_t srun = kPythia6; static PprRad_t srad = kGluonRadiation; -static PprMag_t smag = k5kG; +static AliMagF::BMap_t smag = AliMagF::k5kG; static Int_t sseed = 12345; //Set 0 to use the current time static PprTrigConf_t strig = kDefaultPPTrig; // default pp trigger configuration @@ -253,11 +248,9 @@ void Config() gener->SetTrackingFlag(1); gener->Init(); - if (smag == k2kG) { + if (smag == AliMagF::k2kG) { comment = comment.Append(" | L3 field 0.2 T"); - } else if (smag == k4kG) { - comment = comment.Append(" | L3 field 0.4 T"); - } else if (smag == k5kG) { + } else if (smag == AliMagF::k5kG) { comment = comment.Append(" | L3 field 0.5 T"); } @@ -274,9 +267,9 @@ void Config() // Field - AliMagWrapCheb* field = new AliMagWrapCheb("Maps","Maps", 2, 1., 10., smag); + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, -1., -1., 10., smag)); + rl->CdGAFile(); - gAlice->SetField(field); // Int_t iABSO = 1; Int_t iDIPO = 1; @@ -298,7 +291,7 @@ void Config() Int_t iZDC = 1; Int_t iEMCAL = 1; Int_t iVZERO = 1; - Int_t iACORDE = 0; + Int_t iACORDE = 1; //=================== Alice BODY parameters ============================= AliBODY *BODY = new AliBODY("BODY", "Alice envelop"); @@ -797,7 +790,7 @@ AliGenerator* GeneratorFactory(PprRun_t srun) { gGener=gener; } break; - case kPythia6: + case kPythia6: { comment = comment.Append(":Pythia p-p @ 14 TeV"); AliGenPythia *gener = new AliGenPythia(-1); @@ -807,729 +800,783 @@ AliGenerator* GeneratorFactory(PprRun_t srun) { gener->SetPtRange(0,1000); gener->SetProcess(kPyMb); gener->SetEnergyCMS(14000.); - gGener=gener; + gener->SetProjectile("p", 1, 1) ; + gener->SetTarget("p", 1, 1) ; + gGener=gener; } - break; - case kPythia6Jets20_24: + 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; + gener->SetEnergyCMS(5500.);// Centre of mass energy + gener->SetProcess(kPyJets);// Process type + gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts + gener->SetJetPhiRange(0., 360.); + gener->SetJetEtRange(10., 1000.); + gener->SetGluonRadiation(1,1); + // gener->SetPtKick(0.); + // Structure function + gener->SetStrucFunc(kCTEQ4L); + gener->SetPtHard(20., 24.);// Pt transfer of the hard scattering + gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0); + gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.) + gener->SetProjectile("p", 1, 1) ; + gener->SetTarget("p", 1, 1) ; + gGener=gener; } - break; - case kPythia6Jets24_29: + 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; + gener->SetEnergyCMS(5500.);// Centre of mass energy + gener->SetProcess(kPyJets);// Process type + gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts + gener->SetJetPhiRange(0., 360.); + gener->SetJetEtRange(10., 1000.); + gener->SetGluonRadiation(1,1); + // gener->SetPtKick(0.); + // Structure function + gener->SetStrucFunc(kCTEQ4L); + gener->SetPtHard(24., 29.);// Pt transfer of the hard scattering + gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0); + gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.) + gener->SetProjectile("p", 1, 1) ; + gener->SetTarget("p", 1, 1) ; + gGener=gener; } - break; - case kPythia6Jets29_35: + 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; + gener->SetEnergyCMS(5500.);// Centre of mass energy + gener->SetProcess(kPyJets);// Process type + gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts + gener->SetJetPhiRange(0., 360.); + gener->SetJetEtRange(10., 1000.); + gener->SetGluonRadiation(1,1); + // gener->SetPtKick(0.); + // Structure function + gener->SetStrucFunc(kCTEQ4L); + gener->SetPtHard(29., 35.);// Pt transfer of the hard scattering + gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0); + gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.) + gener->SetProjectile("p", 1, 1) ; + gener->SetTarget("p", 1, 1) ; + gGener=gener; } - break; - case kPythia6Jets35_42: + 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; + gener->SetEnergyCMS(5500.);// Centre of mass energy + gener->SetProcess(kPyJets);// Process type + gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts + gener->SetJetPhiRange(0., 360.); + gener->SetJetEtRange(10., 1000.); + gener->SetGluonRadiation(1,1); + // gener->SetPtKick(0.); + // Structure function + gener->SetStrucFunc(kCTEQ4L); + gener->SetPtHard(35., 42.);// Pt transfer of the hard scattering + gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0); + gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.) + gener->SetProjectile("p", 1, 1) ; + gener->SetTarget("p", 1, 1) ; + gGener=gener; } - break; - case kPythia6Jets42_50: + 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; + gener->SetEnergyCMS(5500.);// Centre of mass energy + gener->SetProcess(kPyJets);// Process type + gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts + gener->SetJetPhiRange(0., 360.); + gener->SetJetEtRange(10., 1000.); + gener->SetGluonRadiation(1,1); + // gener->SetPtKick(0.); + // Structure function + gener->SetStrucFunc(kCTEQ4L); + gener->SetPtHard(42., 50.);// Pt transfer of the hard scattering + gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0); + gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.) + gener->SetProjectile("p", 1, 1) ; + gener->SetTarget("p", 1, 1) ; + gGener=gener; } break; - case kPythia6Jets50_60: + 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; + 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: + 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; + gener->SetEnergyCMS(5500.);// Centre of mass energy + gener->SetProcess(kPyJets);// Process type + gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts + gener->SetJetPhiRange(0., 360.); + gener->SetJetEtRange(10., 1000.); + gener->SetGluonRadiation(1,1); + // gener->SetPtKick(0.); + // Structure function + gener->SetStrucFunc(kCTEQ4L); + gener->SetPtHard(60., 72.);// Pt transfer of the hard scattering + gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0); + gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.) + gener->SetProjectile("p", 1, 1) ; + gener->SetTarget("p", 1, 1) ; + gGener=gener; } - break; - case kPythia6Jets72_86: + 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; + gener->SetEnergyCMS(5500.);// Centre of mass energy + gener->SetProcess(kPyJets);// Process type + gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts + gener->SetJetPhiRange(0., 360.); + gener->SetJetEtRange(10., 1000.); + gener->SetGluonRadiation(1,1); + // gener->SetPtKick(0.); + // Structure function + gener->SetStrucFunc(kCTEQ4L); + gener->SetPtHard(72., 86.);// Pt transfer of the hard scattering + gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0); + gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.) + gener->SetProjectile("p", 1, 1) ; + gener->SetTarget("p", 1, 1) ; + gGener=gener; } break; - case kPythia6Jets86_104: + 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; + gener->SetEnergyCMS(5500.);// Centre of mass energy + gener->SetProcess(kPyJets);// Process type + gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts + gener->SetJetPhiRange(0., 360.); + gener->SetJetEtRange(10., 1000.); + gener->SetGluonRadiation(1,1); + // gener->SetPtKick(0.); + // Structure function + gener->SetStrucFunc(kCTEQ4L); + gener->SetPtHard(86., 104.);// Pt transfer of the hard scattering + gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0); + gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.) + gener->SetProjectile("p", 1, 1) ; + gener->SetTarget("p", 1, 1) ; + gGener=gener; } break; case kPythia6Jets104_125: { comment = comment.Append(":Pythia jets 105-125 GeV @ 5.5 TeV"); AliGenPythia * gener = new AliGenPythia(-1); - gener->SetEnergyCMS(5500.);// Centre of mass energy - gener->SetProcess(kPyJets);// Process type - gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts - gener->SetJetPhiRange(0., 360.); - gener->SetJetEtRange(10., 1000.); - gener->SetGluonRadiation(1,1); - // gener->SetPtKick(0.); - // Structure function - gener->SetStrucFunc(kCTEQ4L); - gener->SetPtHard(104., 125.);// Pt transfer of the hard scattering - gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0); - gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.) - gGener=gener; + gener->SetEnergyCMS(5500.);// Centre of mass energy + gener->SetProcess(kPyJets);// Process type + gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts + gener->SetJetPhiRange(0., 360.); + gener->SetJetEtRange(10., 1000.); + gener->SetGluonRadiation(1,1); + // gener->SetPtKick(0.); + // Structure function + gener->SetStrucFunc(kCTEQ4L); + gener->SetPtHard(104., 125.);// Pt transfer of the hard scattering + gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0); + gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.) + gener->SetProjectile("p", 1, 1) ; + gener->SetTarget("p", 1, 1) ; + gGener=gener; } - break; - case kPythia6Jets125_150: + 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; + 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: + 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; + gener->SetEnergyCMS(5500.);// Centre of mass energy + gener->SetProcess(kPyJets);// Process type + gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts + gener->SetJetPhiRange(0., 360.); + gener->SetJetEtRange(10., 1000.); + gener->SetGluonRadiation(1,1); + // gener->SetPtKick(0.); + // Structure function + gener->SetStrucFunc(kCTEQ4L); + gener->SetPtHard(150., 180.);// Pt transfer of the hard scattering + gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0); + gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.) + gener->SetProjectile("p", 1, 1) ; + gener->SetTarget("p", 1, 1) ; + gGener=gener; } break; - case kD0PbPb5500: + 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; + comment = comment.Append(" D0 in Pb-Pb at 5.5 TeV"); + AliGenPythia * gener = new AliGenPythia(10); + gener->SetProcess(kPyD0PbPbMNR); + gener->SetStrucFunc(kCTEQ4L); + gener->SetPtHard(2.1,-1.0); + gener->SetEnergyCMS(5500.); + gener->SetNuclei(208,208); + gener->SetForceDecay(kHadronicD); + gener->SetYRange(-2,2); + gener->SetFeedDownHigherFamily(kFALSE); + gener->SetStackFillOpt(AliGenPythia::kParentSelection); + gener->SetCountMode(AliGenPythia::kCountParents); + gener->SetProjectile("A", 208, 82) ; + gener->SetTarget("A", 208, 82) ; + gGener=gener; } break; case kCharmSemiElPbPb5500: { - comment = comment.Append(" Charm in Pb-Pb at 5.5 TeV"); - AliGenPythia * gener = new AliGenPythia(10); - gener->SetProcess(kPyCharmPbPbMNR); - gener->SetStrucFunc(kCTEQ4L); - gener->SetPtHard(2.1,-1.0); - gener->SetEnergyCMS(5500.); - gener->SetNuclei(208,208); - gener->SetForceDecay(kSemiElectronic); - gener->SetYRange(-2,2); - gener->SetFeedDownHigherFamily(kFALSE); - gener->SetCountMode(AliGenPythia::kCountParents); - gGener=gener; + comment = comment.Append(" Charm in Pb-Pb at 5.5 TeV"); + AliGenPythia * gener = new AliGenPythia(10); + gener->SetProcess(kPyCharmPbPbMNR); + gener->SetStrucFunc(kCTEQ4L); + gener->SetPtHard(2.1,-1.0); + gener->SetEnergyCMS(5500.); + gener->SetNuclei(208,208); + gener->SetForceDecay(kSemiElectronic); + gener->SetYRange(-2,2); + gener->SetFeedDownHigherFamily(kFALSE); + gener->SetCountMode(AliGenPythia::kCountParents); + gener->SetProjectile("A", 208, 82) ; + gener->SetTarget("A", 208, 82) ; + gGener=gener; } break; - case kBeautySemiElPbPb5500: + 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; + comment = comment.Append(" Beauty in Pb-Pb at 5.5 TeV"); + AliGenPythia *gener = new AliGenPythia(10); + gener->SetProcess(kPyBeautyPbPbMNR); + gener->SetStrucFunc(kCTEQ4L); + gener->SetPtHard(2.75,-1.0); + gener->SetEnergyCMS(5500.); + gener->SetNuclei(208,208); + gener->SetForceDecay(kSemiElectronic); + gener->SetYRange(-2,2); + gener->SetFeedDownHigherFamily(kFALSE); + gener->SetCountMode(AliGenPythia::kCountParents); + gener->SetProjectile("A", 208, 82) ; + gener->SetTarget("A", 208, 82) ; + gGener=gener; } - break; - case kCocktailTRD: + break; + case kCocktailTRD: { - comment = comment.Append(" Cocktail for TRD at 5.5 TeV"); - AliGenCocktail *gener = new AliGenCocktail(); - - AliGenParam *phi = new AliGenParam(10, + comment = comment.Append(" Cocktail for TRD at 5.5 TeV"); + AliGenCocktail *gener = new AliGenCocktail(); + + AliGenParam *phi = new AliGenParam(10, new AliGenMUONlib(), AliGenMUONlib::kPhi, "Vogt PbPb"); - - phi->SetPtRange(0, 100); - phi->SetYRange(-1., +1.); - phi->SetForceDecay(kDiElectron); - - AliGenParam *omega = new AliGenParam(10, - new AliGenMUONlib(), - AliGenMUONlib::kOmega, - "Vogt PbPb"); - - omega->SetPtRange(0, 100); - omega->SetYRange(-1., +1.); - omega->SetForceDecay(kDiElectron); - - AliGenParam *jpsi = new AliGenParam(10, - new AliGenMUONlib(), - AliGenMUONlib::kJpsiFamily, - "Vogt PbPb"); - - jpsi->SetPtRange(0, 100); - jpsi->SetYRange(-1., +1.); - jpsi->SetForceDecay(kDiElectron); - - AliGenParam *ups = new AliGenParam(10, - new AliGenMUONlib(), - AliGenMUONlib::kUpsilonFamily, - "Vogt PbPb"); - ups->SetPtRange(0, 100); - ups->SetYRange(-1., +1.); - ups->SetForceDecay(kDiElectron); - - AliGenParam *charm = new AliGenParam(10, - new AliGenMUONlib(), - AliGenMUONlib::kCharm, - "central"); - charm->SetPtRange(0, 100); - charm->SetYRange(-1.5, +1.5); - charm->SetForceDecay(kSemiElectronic); - - - AliGenParam *beauty = new AliGenParam(10, - new AliGenMUONlib(), - AliGenMUONlib::kBeauty, - "central"); - beauty->SetPtRange(0, 100); - beauty->SetYRange(-1.5, +1.5); - beauty->SetForceDecay(kSemiElectronic); - - AliGenParam *beautyJ = new AliGenParam(10, - new AliGenMUONlib(), - AliGenMUONlib::kBeauty, - "central"); - beautyJ->SetPtRange(0, 100); - beautyJ->SetYRange(-1.5, +1.5); - beautyJ->SetForceDecay(kBJpsiDiElectron); - - gener->AddGenerator(phi,"Phi",1); - gener->AddGenerator(omega,"Omega",1); - gener->AddGenerator(jpsi,"J/psi",1); - gener->AddGenerator(ups,"Upsilon",1); - gener->AddGenerator(charm,"Charm",1); - gener->AddGenerator(beauty,"Beauty",1); - gener->AddGenerator(beautyJ,"J/Psi from Beauty",1); - gGener=gener; + + phi->SetPtRange(0, 100); + phi->SetYRange(-1., +1.); + phi->SetForceDecay(kDiElectron); + + AliGenParam *omega = new AliGenParam(10, + new AliGenMUONlib(), + AliGenMUONlib::kOmega, + "Vogt PbPb"); + + omega->SetPtRange(0, 100); + omega->SetYRange(-1., +1.); + omega->SetForceDecay(kDiElectron); + + AliGenParam *jpsi = new AliGenParam(10, + new AliGenMUONlib(), + AliGenMUONlib::kJpsiFamily, + "Vogt PbPb"); + + jpsi->SetPtRange(0, 100); + jpsi->SetYRange(-1., +1.); + jpsi->SetForceDecay(kDiElectron); + + AliGenParam *ups = new AliGenParam(10, + new AliGenMUONlib(), + AliGenMUONlib::kUpsilonFamily, + "Vogt PbPb"); + ups->SetPtRange(0, 100); + ups->SetYRange(-1., +1.); + ups->SetForceDecay(kDiElectron); + + AliGenParam *charm = new AliGenParam(10, + new AliGenMUONlib(), + AliGenMUONlib::kCharm, + "central"); + charm->SetPtRange(0, 100); + charm->SetYRange(-1.5, +1.5); + charm->SetForceDecay(kSemiElectronic); + + + AliGenParam *beauty = new AliGenParam(10, + new AliGenMUONlib(), + AliGenMUONlib::kBeauty, + "central"); + beauty->SetPtRange(0, 100); + beauty->SetYRange(-1.5, +1.5); + beauty->SetForceDecay(kSemiElectronic); + + AliGenParam *beautyJ = new AliGenParam(10, + new AliGenMUONlib(), + AliGenMUONlib::kBeauty, + "central"); + beautyJ->SetPtRange(0, 100); + beautyJ->SetYRange(-1.5, +1.5); + beautyJ->SetForceDecay(kBJpsiDiElectron); + + gener->AddGenerator(phi,"Phi",1); + gener->AddGenerator(omega,"Omega",1); + gener->AddGenerator(jpsi,"J/psi",1); + gener->AddGenerator(ups,"Upsilon",1); + gener->AddGenerator(charm,"Charm",1); + gener->AddGenerator(beauty,"Beauty",1); + gener->AddGenerator(beautyJ,"J/Psi from Beauty",1); + gener->SetProjectile("A", 208, 82) ; + gener->SetTarget("A", 208, 82) ; + gGener=gener; } break; case kPyJJ: { - comment = comment.Append(" Jet-jet at 5.5 TeV"); - AliGenPythia *gener = new AliGenPythia(-1); - gener->SetEnergyCMS(5500.); - gener->SetProcess(kPyJets); - Double_t ptHardMin=10.0, ptHardMax=-1.0; - gener->SetPtHard(ptHardMin,ptHardMax); - gener->SetYHard(-0.7,0.7); - gener->SetJetEtaRange(-0.2,0.2); - gener->SetEventListRange(0,1); - gGener=gener; + comment = comment.Append(" Jet-jet at 5.5 TeV"); + AliGenPythia *gener = new AliGenPythia(-1); + gener->SetEnergyCMS(5500.); + gener->SetProcess(kPyJets); + Double_t ptHardMin=10.0, ptHardMax=-1.0; + gener->SetPtHard(ptHardMin,ptHardMax); + gener->SetYHard(-0.7,0.7); + gener->SetJetEtaRange(-0.2,0.2); + gener->SetEventListRange(0,1); + gener->SetProjectile("p", 1, 1) ; + gener->SetTarget("p", 1, 1) ; + gGener=gener; } - break; - case kPyGJ: + 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; + comment = comment.Append(" Gamma-jet at 5.5 TeV"); + AliGenPythia *gener = new AliGenPythia(-1); + gener->SetEnergyCMS(5500.); + gener->SetProcess(kPyDirectGamma); + Double_t ptHardMin=10.0, ptHardMax=-1.0; + gener->SetPtHard(ptHardMin,ptHardMax); + gener->SetYHard(-1.0,1.0); + gener->SetGammaEtaRange(-0.13,0.13); + gener->SetGammaPhiRange(210.,330.); + gener->SetEventListRange(0,1); + gener->SetProjectile("p", 1, 1) ; + gener->SetTarget("p", 1, 1) ; + gGener=gener; } - break; - case kMuonCocktailCent1: + break; + case kMuonCocktailCent1: { - comment = comment.Append(" Muon Cocktail Cent1"); - AliGenMUONCocktail * gener = new AliGenMUONCocktail(); - gener->SetPtRange(0.4,100.); // Transverse momentum range - gener->SetPhiRange(0.,360.); // Azimuthal angle range - gener->SetYRange(-4.0,-2.4); - gener->SetMuonPtCut(0.8); - gener->SetMuonThetaCut(171.,178.); - gener->SetMuonMultiplicity(2); - gener->SetImpactParameterRange(0.,5.); //Centrality class Cent1 for PDC04 - gGener=gener; + comment = comment.Append(" Muon Cocktail Cent1"); + AliGenMUONCocktail * gener = new AliGenMUONCocktail(); + gener->SetPtRange(0.4,100.); // Transverse momentum range + gener->SetPhiRange(0.,360.); // Azimuthal angle range + gener->SetYRange(-4.0,-2.4); + gener->SetMuonPtCut(0.8); + gener->SetMuonThetaCut(171.,178.); + gener->SetMuonMultiplicity(2); + gener->SetImpactParameterRange(0.,5.); //Centrality class Cent1 for PDC04 + gGener=gener; + gener->SetProjectile("A", 208, 82) ; + gener->SetTarget("A", 208, 82) ; } - break; - case kMuonCocktailPer1: + break; + case kMuonCocktailPer1: { - comment = comment.Append(" Muon Cocktail Per1"); - AliGenMUONCocktail * gener = new AliGenMUONCocktail(); - gener->SetPtRange(0.0,100.); // Transverse momentum range - gener->SetPhiRange(0.,360.); // Azimuthal angle range - gener->SetYRange(-4.0,-2.4); - gener->SetMuonPtCut(0.8); - gener->SetMuonThetaCut(171.,178.); - gener->SetMuonMultiplicity(2); - gener->SetImpactParameterRange(5.,8.6);//Centrality class Per1 for PDC04 - gGener=gener; + comment = comment.Append(" Muon Cocktail Per1"); + AliGenMUONCocktail * gener = new AliGenMUONCocktail(); + gener->SetPtRange(0.0,100.); // Transverse momentum range + gener->SetPhiRange(0.,360.); // Azimuthal angle range + gener->SetYRange(-4.0,-2.4); + gener->SetMuonPtCut(0.8); + gener->SetMuonThetaCut(171.,178.); + gener->SetMuonMultiplicity(2); + gener->SetImpactParameterRange(5.,8.6);//Centrality class Per1 for PDC04 + gener->SetProjectile("A", 208, 82) ; + gener->SetTarget("A", 208, 82) ; + gGener=gener; } break; case kMuonCocktailPer4: { - comment = comment.Append(" Muon Cocktail Per4"); - AliGenMUONCocktail * gener = new AliGenMUONCocktail(); - gener->SetPtRange(0.0,100.); // Transverse momentum range - gener->SetPhiRange(0.,360.); // Azimuthal angle range - gener->SetYRange(-4.0,-2.4); - gener->SetMuonPtCut(0.8); - gener->SetMuonThetaCut(171.,178.); - gener->SetMuonMultiplicity(2); - gener->SetImpactParameterRange(13.2,15.0);//Centrality class Per4 for PDC04 - gGener=gener; + comment = comment.Append(" Muon Cocktail Per4"); + AliGenMUONCocktail * gener = new AliGenMUONCocktail(); + gener->SetPtRange(0.0,100.); // Transverse momentum range + gener->SetPhiRange(0.,360.); // Azimuthal angle range + gener->SetYRange(-4.0,-2.4); + gener->SetMuonPtCut(0.8); + gener->SetMuonThetaCut(171.,178.); + gener->SetMuonMultiplicity(2); + gener->SetImpactParameterRange(13.2,15.0);//Centrality class Per4 for PDC04 + gener->SetProjectile("A", 208, 82) ; + gener->SetTarget("A", 208, 82) ; + gGener=gener; } - break; - case kMuonCocktailCent1HighPt: + break; + case kMuonCocktailCent1HighPt: { - comment = comment.Append(" Muon Cocktail HighPt Cent1"); - AliGenMUONCocktail * gener = new AliGenMUONCocktail(); - gener->SetPtRange(0.0,100.); // Transverse momentum range - gener->SetPhiRange(0.,360.); // Azimuthal angle range - gener->SetYRange(-4.0,-2.4); - gener->SetMuonPtCut(2.5); - gener->SetMuonThetaCut(171.,178.); - gener->SetMuonMultiplicity(2); - gener->SetImpactParameterRange(0.,5.); //Centrality class Cent1 for PDC04 - gGener=gener; + comment = comment.Append(" Muon Cocktail HighPt Cent1"); + AliGenMUONCocktail * gener = new AliGenMUONCocktail(); + gener->SetPtRange(0.0,100.); // Transverse momentum range + gener->SetPhiRange(0.,360.); // Azimuthal angle range + gener->SetYRange(-4.0,-2.4); + gener->SetMuonPtCut(2.5); + gener->SetMuonThetaCut(171.,178.); + gener->SetMuonMultiplicity(2); + gener->SetImpactParameterRange(0.,5.); //Centrality class Cent1 for PDC04 + gener->SetProjectile("A", 208, 82) ; + gener->SetTarget("A", 208, 82) ; + gGener=gener; } - break; - case kMuonCocktailPer1HighPt : + break; + case kMuonCocktailPer1HighPt : { - comment = comment.Append(" Muon Cocktail HighPt Per1"); - AliGenMUONCocktail * gener = new AliGenMUONCocktail(); - gener->SetPtRange(0.0,100.); // Transverse momentum range - gener->SetPhiRange(0.,360.); // Azimuthal angle range - gener->SetYRange(-4.0,-2.4); - gener->SetMuonPtCut(2.5); - gener->SetMuonThetaCut(171.,178.); - gener->SetMuonMultiplicity(2); - gener->SetImpactParameterRange(5.,8.6);//Centrality class Per1 for PDC04 - gGener=gener; + comment = comment.Append(" Muon Cocktail HighPt Per1"); + AliGenMUONCocktail * gener = new AliGenMUONCocktail(); + gener->SetPtRange(0.0,100.); // Transverse momentum range + gener->SetPhiRange(0.,360.); // Azimuthal angle range + gener->SetYRange(-4.0,-2.4); + gener->SetMuonPtCut(2.5); + gener->SetMuonThetaCut(171.,178.); + gener->SetMuonMultiplicity(2); + gener->SetImpactParameterRange(5.,8.6);//Centrality class Per1 for PDC04 + gener->SetProjectile("A", 208, 82) ; + gener->SetTarget("A", 208, 82) ; + gGener=gener; } - break; - case kMuonCocktailPer4HighPt: + break; + case kMuonCocktailPer4HighPt: { - comment = comment.Append(" Muon Cocktail HighPt Per4"); - AliGenMUONCocktail * gener = new AliGenMUONCocktail(); - gener->SetPtRange(0.0,100.); // Transverse momentum range - gener->SetPhiRange(0.,360.); // Azimuthal angle range - gener->SetYRange(-4.0,-2.4); - gener->SetMuonPtCut(2.5); - gener->SetMuonThetaCut(171.,178.); - gener->SetMuonMultiplicity(2); - gener->SetImpactParameterRange(13.2,15.0);//Centrality class Per4 for PDC04 - gGener=gener; + comment = comment.Append(" Muon Cocktail HighPt Per4"); + AliGenMUONCocktail * gener = new AliGenMUONCocktail(); + gener->SetPtRange(0.0,100.); // Transverse momentum range + gener->SetPhiRange(0.,360.); // Azimuthal angle range + gener->SetYRange(-4.0,-2.4); + gener->SetMuonPtCut(2.5); + gener->SetMuonThetaCut(171.,178.); + gener->SetMuonMultiplicity(2); + gener->SetImpactParameterRange(13.2,15.0);//Centrality class Per4 for PDC04 + gener->SetProjectile("A", 208, 82) ; + gener->SetTarget("A", 208, 82) ; + gGener=gener; } - break; - case kMuonCocktailCent1Single: + break; + case kMuonCocktailCent1Single: { - comment = comment.Append(" Muon Cocktail Single Cent1"); - AliGenMUONCocktail * gener = new AliGenMUONCocktail(); - gener->SetPtRange(0.0,100.); // Transverse momentum range - gener->SetPhiRange(0.,360.); // Azimuthal angle range - gener->SetYRange(-4.0,-2.4); - gener->SetMuonPtCut(0.8); - gener->SetMuonThetaCut(171.,178.); - gener->SetMuonMultiplicity(1); - gener->SetImpactParameterRange(0.,5.); //Centrality class Cent1 for PDC04 - gGener=gener; + comment = comment.Append(" Muon Cocktail Single Cent1"); + AliGenMUONCocktail * gener = new AliGenMUONCocktail(); + gener->SetPtRange(0.0,100.); // Transverse momentum range + gener->SetPhiRange(0.,360.); // Azimuthal angle range + gener->SetYRange(-4.0,-2.4); + gener->SetMuonPtCut(0.8); + gener->SetMuonThetaCut(171.,178.); + gener->SetMuonMultiplicity(1); + gener->SetImpactParameterRange(0.,5.); //Centrality class Cent1 for PDC04 + gener->SetProjectile("A", 208, 82) ; + gener->SetTarget("A", 208, 82) ; + gGener=gener; } - break; - case kMuonCocktailPer1Single : + break; + case kMuonCocktailPer1Single : { - comment = comment.Append(" Muon Cocktail Single Per1"); - AliGenMUONCocktail * gener = new AliGenMUONCocktail(); - gener->SetPtRange(0.0,100.); // Transverse momentum range - gener->SetPhiRange(0.,360.); // Azimuthal angle range - gener->SetYRange(-4.0,-2.4); - gener->SetMuonPtCut(0.8); - gener->SetMuonThetaCut(171.,178.); - gener->SetMuonMultiplicity(1); - gener->SetImpactParameterRange(5.,8.6);//Centrality class Per1 for PDC04 - gener->SetNumberOfParticipants(229.3);//Centrality class Per1 for PDC04 - gGener=gener; + comment = comment.Append(" Muon Cocktail Single Per1"); + AliGenMUONCocktail * gener = new AliGenMUONCocktail(); + gener->SetPtRange(0.0,100.); // Transverse momentum range + gener->SetPhiRange(0.,360.); // Azimuthal angle range + gener->SetYRange(-4.0,-2.4); + gener->SetMuonPtCut(0.8); + gener->SetMuonThetaCut(171.,178.); + gener->SetMuonMultiplicity(1); + gener->SetImpactParameterRange(5.,8.6);//Centrality class Per1 for PDC04 + gener->SetNumberOfParticipants(229.3);//Centrality class Per1 for PDC04 + gener->SetProjectile("A", 208, 82) ; + gener->SetTarget("A", 208, 82) ; + gGener=gener; } - break; - case kMuonCocktailPer4Single: + break; + case kMuonCocktailPer4Single: { - comment = comment.Append(" Muon Cocktail Single Per4"); - AliGenMUONCocktail * gener = new AliGenMUONCocktail(); - gener->SetPtRange(0.0,100.); // Transverse momentum range - gener->SetPhiRange(0.,360.); // Azimuthal angle range - gener->SetYRange(-4.0,-2.4); - gener->SetMuonPtCut(0.8); - gener->SetMuonThetaCut(171.,178.); - gener->SetMuonMultiplicity(1); - gener->SetImpactParameterRange(13.2,15.0);//Centrality class Per4 for PDC04 - gGener=gener; + comment = comment.Append(" Muon Cocktail Single Per4"); + AliGenMUONCocktail * gener = new AliGenMUONCocktail(); + gener->SetPtRange(0.0,100.); // Transverse momentum range + gener->SetPhiRange(0.,360.); // Azimuthal angle range + gener->SetYRange(-4.0,-2.4); + gener->SetMuonPtCut(0.8); + gener->SetMuonThetaCut(171.,178.); + gener->SetMuonMultiplicity(1); + gener->SetImpactParameterRange(13.2,15.0);//Centrality class Per4 for PDC04 + gener->SetProjectile("A", 208, 82) ; + gener->SetTarget("A", 208, 82) ; + gGener=gener; } - break; - case kFlow_2_2000: - { - comment = comment.Append(" Flow with dN/deta = 2000, vn = 2%"); - gGener = GeVSimStandard(2000., 2.); - } - break; - - case kFlow_10_2000: - { - comment = comment.Append(" Flow with dN/deta = 2000, vn = 10%"); - gGener = GeVSimStandard(2000., 10.); - } - break; - - case kFlow_6_2000: - { - comment = comment.Append(" Flow with dN/deta = 2000, vn = 6%"); - gGener = GeVSimStandard(2000., 6.); - } - break; - - case kFlow_6_5000: - { - comment = comment.Append(" Flow with dN/deta = 5000, vn = 6%"); - gGener = GeVSimStandard(5000., 6.); - } - break; - case kHIJINGplus: - { - // - // The cocktail - AliGenCocktail *gener = new AliGenCocktail(); - - // - // Charm production by Pythia - AliGenPythia * genpyc = new AliGenPythia(230); - genpyc->SetProcess(kPyCharmPbPbMNR); - genpyc->SetStrucFunc(kCTEQ4L); - genpyc->SetPtHard(2.1,-1.0); - genpyc->SetEnergyCMS(5500.); - genpyc->SetNuclei(208,208); - genpyc->SetYRange(-999,999); - genpyc->SetForceDecay(kAll); - genpyc->SetFeedDownHigherFamily(kFALSE); - genpyc->SetCountMode(AliGenPythia::kCountParents); - // - // Beauty production by Pythia - AliGenPythia * genpyb = new AliGenPythia(9); - genpyb->SetProcess(kPyBeautyPbPbMNR); - genpyb->SetStrucFunc(kCTEQ4L); - genpyb->SetPtHard(2.75,-1.0); - genpyb->SetEnergyCMS(5500.); - genpyb->SetNuclei(208,208); - genpyb->SetYRange(-999,999); - genpyb->SetForceDecay(kAll); - genpyb->SetFeedDownHigherFamily(kFALSE); - genpyb->SetCountMode(AliGenPythia::kCountParents); + break; + case kFlow_2_2000: + { + comment = comment.Append(" Flow with dN/deta = 2000, vn = 2%"); + gGener = GeVSimStandard(2000., 2.); + } + break; + + case kFlow_10_2000: + { + comment = comment.Append(" Flow with dN/deta = 2000, vn = 10%"); + gGener = GeVSimStandard(2000., 10.); + } + break; + + case kFlow_6_2000: + { + comment = comment.Append(" Flow with dN/deta = 2000, vn = 6%"); + gGener = GeVSimStandard(2000., 6.); + } + break; + + case kFlow_6_5000: + { + comment = comment.Append(" Flow with dN/deta = 5000, vn = 6%"); + gGener = GeVSimStandard(5000., 6.); + } + break; + case kHIJINGplus: + { + // + // The cocktail + AliGenCocktail *gener = new AliGenCocktail(); + + // + // Charm production by Pythia + AliGenPythia * genpyc = new AliGenPythia(230); + genpyc->SetProcess(kPyCharmPbPbMNR); + genpyc->SetStrucFunc(kCTEQ4L); + genpyc->SetPtHard(2.1,-1.0); + genpyc->SetEnergyCMS(5500.); + genpyc->SetNuclei(208,208); + genpyc->SetYRange(-999,999); + genpyc->SetForceDecay(kAll); + genpyc->SetFeedDownHigherFamily(kFALSE); + genpyc->SetCountMode(AliGenPythia::kCountParents); + // + // Beauty production by Pythia + AliGenPythia * genpyb = new AliGenPythia(9); + genpyb->SetProcess(kPyBeautyPbPbMNR); + genpyb->SetStrucFunc(kCTEQ4L); + genpyb->SetPtHard(2.75,-1.0); + genpyb->SetEnergyCMS(5500.); + genpyb->SetNuclei(208,208); + genpyb->SetYRange(-999,999); + genpyb->SetForceDecay(kAll); + genpyb->SetFeedDownHigherFamily(kFALSE); + genpyb->SetCountMode(AliGenPythia::kCountParents); // // Hyperons - // - AliGenSTRANGElib *lib = new AliGenSTRANGElib(); - Int_t particle; - // Xi - particle = AliGenSTRANGElib::kXiMinus; - AliGenParam *genXi = new AliGenParam(16,particle,lib->GetPt(particle),lib->GetY(particle),lib->GetIp(particle)); - genXi->SetPtRange(0., 12.); - genXi->SetYRange(-1.1, 1.1); - genXi->SetForceDecay(kNoDecay); - - // - // Omega - particle = AliGenSTRANGElib::kOmegaMinus; - AliGenParam *genOmega = new AliGenParam(10,particle,lib->GetPt(particle),lib->GetY(particle),lib->GetIp(particle)); - genOmega->SetPtRange(0, 12.); - genOmega->SetYRange(-1.1, 1.1); - genOmega->SetForceDecay(kNoDecay); - - // - // Central Hijing - AliGenHijing *genHi = HijingStandard(); - genHi->SwitchOffHeavyQuarks(kTRUE); - genHi->SetImpactParameterRange(0.,5.); // - // Add everything to the cocktail and shake ... - gener->AddGenerator(genHi, "Hijing cent1", 1); - gener->AddGenerator(genpyc, "Extra charm", 1); - gener->AddGenerator(genpyb, "Extra beauty", 1); - gener->AddGenerator(genXi, "Xi" , 1); - gener->AddGenerator(genOmega, "Omega", 1); - gGener = gener; - } - break; - default: break; + AliGenSTRANGElib *lib = new AliGenSTRANGElib(); + Int_t particle; + // Xi + particle = kXiMinus; + AliGenParam *genXi = new AliGenParam(16,particle,lib->GetPt(particle),lib->GetY(particle),lib->GetIp(particle)); + genXi->SetPtRange(0., 12.); + genXi->SetYRange(-1.1, 1.1); + genXi->SetForceDecay(kNoDecay); + + // + // Omega + particle = kOmegaMinus; + AliGenParam *genOmega = new AliGenParam(10,particle,lib->GetPt(particle),lib->GetY(particle),lib->GetIp(particle)); + genOmega->SetPtRange(0, 12.); + genOmega->SetYRange(-1.1, 1.1); + genOmega->SetForceDecay(kNoDecay); + + // + // Central Hijing + AliGenHijing *genHi = HijingStandard(); + genHi->SwitchOffHeavyQuarks(kTRUE); + genHi->SetImpactParameterRange(0.,5.); + // + // Add everything to the cocktail and shake ... + gener->AddGenerator(genHi, "Hijing cent1", 1); + gener->AddGenerator(genpyc, "Extra charm", 1); + gener->AddGenerator(genpyb, "Extra beauty", 1); + gener->AddGenerator(genXi, "Xi" , 1); + gener->AddGenerator(genOmega, "Omega", 1); + gener->SetProjectile("A", 208, 82) ; + gener->SetTarget("A", 208, 82) ; + gGener = gener; + } + break; + default: break; } - - return gGener; + + 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; + AliGenHijing *gener = new AliGenHijing(-1); + // centre of mass energy + gener->SetEnergyCMS(5500.); + // reference frame + gener->SetReferenceFrame("CMS"); + // projectile + gener->SetProjectile("A", 208, 82); + gener->SetTarget ("A", 208, 82); + // tell hijing to keep the full parent child chain + gener->KeepFullEvent(); + // enable jet quenching + gener->SetJetQuenching(1); + // enable shadowing + gener->SetShadowing(1); + // neutral pion and heavy particle decays switched off + gener->SetDecaysOff(1); + // Don't track spectators + gener->SetSpectators(0); + // kinematic selection + gener->SetSelectAll(0); + return gener; } AliGenGeVSim* GeVSimStandard(Float_t mult, Float_t vn) { - AliGenGeVSim* gener = new AliGenGeVSim(0); -// -// Mult is the number of charged particles in |eta| < 0.5 -// Vn is in (%) -// -// Sigma of the Gaussian dN/deta - Float_t sigma_eta = 2.75; -// -// Maximum eta - Float_t etamax = 7.00; -// -// -// Scale from multiplicity in |eta| < 0.5 to |eta| < |etamax| - Float_t mm = mult * (TMath::Erf(etamax/sigma_eta/sqrt(2.)) / TMath::Erf(0.5/sigma_eta/sqrt(2.))); -// -// Scale from charged to total multiplicity -// - mm *= 1.587; -// -// Vn - vn /= 100.; -// -// Define particles -// -// -// 78% Pions (26% pi+, 26% pi-, 26% p0) T = 250 MeV - AliGeVSimParticle *pp = new AliGeVSimParticle(kPiPlus, 1, 0.26 * mm, 0.25, sigma_eta) ; - AliGeVSimParticle *pm = new AliGeVSimParticle(kPiMinus, 1, 0.26 * mm, 0.25, sigma_eta) ; - AliGeVSimParticle *p0 = new AliGeVSimParticle(kPi0, 1, 0.26 * mm, 0.25, sigma_eta) ; -// -// 12% Kaons (3% K0short, 3% K0long, 3% K+, 3% K-) T = 300 MeV - AliGeVSimParticle *ks = new AliGeVSimParticle(kK0Short, 1, 0.03 * mm, 0.30, sigma_eta) ; - AliGeVSimParticle *kl = new AliGeVSimParticle(kK0Long, 1, 0.03 * mm, 0.30, sigma_eta) ; - AliGeVSimParticle *kp = new AliGeVSimParticle(kKPlus, 1, 0.03 * mm, 0.30, sigma_eta) ; - AliGeVSimParticle *km = new AliGeVSimParticle(kKMinus, 1, 0.03 * mm, 0.30, sigma_eta) ; -// -// 10% Protons / Neutrons (5% Protons, 5% Neutrons) T = 250 MeV - AliGeVSimParticle *pr = new AliGeVSimParticle(kProton, 1, 0.05 * mm, 0.25, sigma_eta) ; - AliGeVSimParticle *ne = new AliGeVSimParticle(kNeutron, 1, 0.05 * mm, 0.25, sigma_eta) ; -// -// Set Elliptic Flow properties - - Float_t pTsaturation = 2. ; - - pp->SetEllipticParam(vn,pTsaturation,0.) ; - pm->SetEllipticParam(vn,pTsaturation,0.) ; - p0->SetEllipticParam(vn,pTsaturation,0.) ; - pr->SetEllipticParam(vn,pTsaturation,0.) ; - ne->SetEllipticParam(vn,pTsaturation,0.) ; - ks->SetEllipticParam(vn,pTsaturation,0.) ; - kl->SetEllipticParam(vn,pTsaturation,0.) ; - kp->SetEllipticParam(vn,pTsaturation,0.) ; - km->SetEllipticParam(vn,pTsaturation,0.) ; -// -// Set Direct Flow properties - pp->SetDirectedParam(vn,1.0,0.) ; - pm->SetDirectedParam(vn,1.0,0.) ; - p0->SetDirectedParam(vn,1.0,0.) ; - pr->SetDirectedParam(vn,1.0,0.) ; - ne->SetDirectedParam(vn,1.0,0.) ; - ks->SetDirectedParam(vn,1.0,0.) ; - kl->SetDirectedParam(vn,1.0,0.) ; - kp->SetDirectedParam(vn,1.0,0.) ; - km->SetDirectedParam(vn,1.0,0.) ; -// -// Add particles to the list - gener->AddParticleType(pp) ; - gener->AddParticleType(pm) ; - gener->AddParticleType(p0) ; - gener->AddParticleType(pr) ; - gener->AddParticleType(ne) ; - gener->AddParticleType(ks) ; - gener->AddParticleType(kl) ; - gener->AddParticleType(kp) ; - gener->AddParticleType(km) ; -// -// Random Ev.Plane ---------------------------------- - TF1 *rpa = new TF1("gevsimPsiRndm","1", 0, 360); -// -------------------------------------------------- - gener->SetPtRange(0., 9.) ; // Use a resonable range! (used for bin size in numerical integration) - gener->SetPhiRange(0, 360); - // - // Set pseudorapidity range - Float_t thmin = EtaToTheta(+etamax); - Float_t thmax = EtaToTheta(-etamax); - gener->SetThetaRange(thmin,thmax); - return gener; + AliGenGeVSim* gener = new AliGenGeVSim(0); + // + // Mult is the number of charged particles in |eta| < 0.5 + // Vn is in (%) + // + // Sigma of the Gaussian dN/deta + Float_t sigma_eta = 2.75; + // + // Maximum eta + Float_t etamax = 7.00; + // + // + // Scale from multiplicity in |eta| < 0.5 to |eta| < |etamax| + Float_t mm = mult * (TMath::Erf(etamax/sigma_eta/sqrt(2.)) / TMath::Erf(0.5/sigma_eta/sqrt(2.))); + // + // Scale from charged to total multiplicity + // + mm *= 1.587; + // + // Vn + vn /= 100.; + // + // Define particles + // + // + // 78% Pions (26% pi+, 26% pi-, 26% p0) T = 250 MeV + AliGeVSimParticle *pp = new AliGeVSimParticle(kPiPlus, 1, 0.26 * mm, 0.25, sigma_eta) ; + AliGeVSimParticle *pm = new AliGeVSimParticle(kPiMinus, 1, 0.26 * mm, 0.25, sigma_eta) ; + AliGeVSimParticle *p0 = new AliGeVSimParticle(kPi0, 1, 0.26 * mm, 0.25, sigma_eta) ; + // + // 12% Kaons (3% K0short, 3% K0long, 3% K+, 3% K-) T = 300 MeV + AliGeVSimParticle *ks = new AliGeVSimParticle(kK0Short, 1, 0.03 * mm, 0.30, sigma_eta) ; + AliGeVSimParticle *kl = new AliGeVSimParticle(kK0Long, 1, 0.03 * mm, 0.30, sigma_eta) ; + AliGeVSimParticle *kp = new AliGeVSimParticle(kKPlus, 1, 0.03 * mm, 0.30, sigma_eta) ; + AliGeVSimParticle *km = new AliGeVSimParticle(kKMinus, 1, 0.03 * mm, 0.30, sigma_eta) ; + // + // 10% Protons / Neutrons (5% Protons, 5% Neutrons) T = 250 MeV + AliGeVSimParticle *pr = new AliGeVSimParticle(kProton, 1, 0.05 * mm, 0.25, sigma_eta) ; + AliGeVSimParticle *ne = new AliGeVSimParticle(kNeutron, 1, 0.05 * mm, 0.25, sigma_eta) ; + // + // Set Elliptic Flow properties + + Float_t pTsaturation = 2. ; + + pp->SetEllipticParam(vn,pTsaturation,0.) ; + pm->SetEllipticParam(vn,pTsaturation,0.) ; + p0->SetEllipticParam(vn,pTsaturation,0.) ; + pr->SetEllipticParam(vn,pTsaturation,0.) ; + ne->SetEllipticParam(vn,pTsaturation,0.) ; + ks->SetEllipticParam(vn,pTsaturation,0.) ; + kl->SetEllipticParam(vn,pTsaturation,0.) ; + kp->SetEllipticParam(vn,pTsaturation,0.) ; + km->SetEllipticParam(vn,pTsaturation,0.) ; + // + // Set Direct Flow properties + pp->SetDirectedParam(vn,1.0,0.) ; + pm->SetDirectedParam(vn,1.0,0.) ; + p0->SetDirectedParam(vn,1.0,0.) ; + pr->SetDirectedParam(vn,1.0,0.) ; + ne->SetDirectedParam(vn,1.0,0.) ; + ks->SetDirectedParam(vn,1.0,0.) ; + kl->SetDirectedParam(vn,1.0,0.) ; + kp->SetDirectedParam(vn,1.0,0.) ; + km->SetDirectedParam(vn,1.0,0.) ; + // + // Add particles to the list + gener->AddParticleType(pp) ; + gener->AddParticleType(pm) ; + gener->AddParticleType(p0) ; + gener->AddParticleType(pr) ; + gener->AddParticleType(ne) ; + gener->AddParticleType(ks) ; + gener->AddParticleType(kl) ; + gener->AddParticleType(kp) ; + gener->AddParticleType(km) ; + // + // Random Ev.Plane ---------------------------------- + TF1 *rpa = new TF1("gevsimPsiRndm","1", 0, 360); + // -------------------------------------------------- + gener->SetPtRange(0., 9.) ; // Use a resonable range! (used for bin size in numerical integration) + gener->SetPhiRange(0, 360); + // + // Set pseudorapidity range + Float_t thmin = EtaToTheta(+etamax); + Float_t thmax = EtaToTheta(-etamax); + gener->SetThetaRange(thmin,thmax); + return gener; }