AliGenerator* MbCocktail() { comment = comment.Append(" pp at 14 TeV: Pythia low-pt, no heavy quarks + J/Psi from parameterisation"); AliGenCocktail * gener = new AliGenCocktail(); gener->UsePerEventRates(); // Pythia AliGenPythia* pythia = new AliGenPythia(-1); pythia->SetMomentumRange(0, 999999.); pythia->SetThetaRange(0., 180.); pythia->SetYRange(-12.,12.); pythia->SetPtRange(0,1000.); pythia->SetProcess(kPyMb); pythia->SetEnergyCMS(14000.); pythia->SwitchHFOff(); // J/Psi parameterisation AliGenParam* jpsi = new AliGenParam(1, AliGenMUONlib::kJpsi, "CDF scaled", "Jpsi"); jpsi->SetPtRange(0.,100.); jpsi->SetYRange(-8., 8.); jpsi->SetPhiRange(0., 360.); jpsi->SetForceDecay(kAll); gener->AddGenerator(pythia, "Pythia", 1.); gener->AddGenerator(jpsi, "J/Psi", 8.e-4); return gener; }
AliGenerator* MbPythiaTunePerugia0bele() { comment = comment.Append(" pp: Pythia (Perugia0) bele (1 bbbar per event, 1 b-hadron in |y|<1, 1 electron in |y|<2"); // // Pythia AliGenPythia* pythia = new AliGenPythia(-1); pythia->SetMomentumRange(0, 999999.); pythia->SetThetaRange(0., 180.); pythia->SetYRange(-2.,2.); pythia->SetPtRange(0,1000.); pythia->SetProcess(kPyBeautyppMNRwmi); pythia->SetEnergyCMS(energy); // Tune // 320 Perugia 0 pythia->SetTune(320); pythia->UseNewMultipleInteractionsScenario(); // // decays pythia->SetCutOnChild(1); pythia->SetPdgCodeParticleforAcceptanceCut(11); pythia->SetChildYRange(-2,2); pythia->SetChildPtRange(0,10000.); return pythia; }
AliGenerator* MbPythiaTunePerugia0BtoJpsi2mu() { comment = comment.Append(" pp: Pythia (Perugia0) BtoJpsi (1 bbbar per event, 1 b-hadron, 1 J/psi"); // Pythia AliGenPythia* pythia = new AliGenPythia(-1); pythia->SetMomentumRange(0, 999999.); pythia->SetYRange(-4.5, -2.0); pythia->SetPtRange(0,1000.); pythia->SetProcess(kPyBeautyppMNRwmi); pythia->SetEnergyCMS(energy); // Tune // 320 Perugia 0 pythia->SetTune(320); pythia->UseNewMultipleInteractionsScenario(); // // decays pythia->SetCutOnChild(1); pythia->SetPdgCodeParticleforAcceptanceCut(443); pythia->SetChildYRange(-4.5, -2.0); pythia->SetChildPtRange(0,10000.); // // decays pythia->SetForceDecay(kBJpsiDiMuon); return pythia; }
AliGenerator* CreateGenerator(Tune_t tune, Float_t energy) { if (tune == -1) { // phojet AliGenDPMjet* gener = new AliGenDPMjet(1); gener->SetProcess(kDpmMb); gener->SetProjectile("P", 1, 1); gener->SetTarget("P", 1, 1); gener->SetEnergyCMS(energy); return gener; } if (tune != kPyTuneAtlasCSC && tune != kPyTuneCDFA && tune != kPyTuneCMS6D6T && tune != kPyTunePerugia0) { Printf("Unknown pythia tune, quitting"); exit(1); } else { AliGenPythia * gener = new AliGenPythia(1); // // set pythia tune gener->SetTune(tune); // structure function if(tune == kPyTuneAtlasCSC) { cout << "Setting structure function" << endl; gener->SetStrucFunc(kCTEQ61); } if(tune == kPyTuneCMS6D6T) { cout << "Setting structure function" << endl; gener->SetStrucFunc(kCTEQ6l); } if(tune == kPyTunePerugia0) { cout << "Setting new parton shower" << endl; gener->UseNewMultipleInteractionsScenario(); } // charm, beauty, charm_unforced, beauty_unforced, jpsi, jpsi_chi, mb gener->SetProcess(kPyMb); // Centre of mass energy gener->SetEnergyCMS(energy); // Set target/projectile // Is this needded? gener->SetProjectile("P", 1, 1); gener->SetTarget("P", 1, 1); return gener; } }
AliGenerator* PyMbTriggered(Int_t pdg) { AliGenPythia* pythia = new AliGenPythia(-1); pythia->SetMomentumRange(0, 999999.); pythia->SetThetaRange(0., 180.); pythia->SetYRange(-12.,12.); pythia->SetPtRange(0,1000.); pythia->SetProcess(kPyMb); pythia->SetEnergyCMS(14000.); pythia->SetTriggerParticle(pdg, 0.9); return pythia; }
AliGenerator* MbPythia() { comment = comment.Append(" pp: Pythia low-pt"); // // Pythia AliGenPythia* pythia = new AliGenPythia(-1); pythia->SetMomentumRange(0, 999999.); pythia->SetThetaRange(0., 180.); pythia->SetYRange(-12.,12.); pythia->SetPtRange(0,1000.); pythia->SetProcess(kPyMb); pythia->SetEnergyCMS(energy); return pythia; }
AliGenerator* MbPythia() { comment = comment.Append(" pp: Pythia low-pt"); // Pythia AliGenPythia* pythia = new AliGenPythia(-1); pythia->SetMomentumRange(0, 999999.); // pythia->SetThetaRange(0., 180.); // pythia->SetChildYRange(-12.,0.); // pythia->SetPtRange(0,1000.); // pythia->SetCutOnChild(1); pythia->SetProcess(kPyMb); pythia->SetEnergyCMS(energy); pythia->SetForceDecay(kSemiMuonic); return pythia; }
AliGenerator* JPsi7TeV() /*{ AliGenParam *jpsi7TeV = new AliGenParam(1, AliGenMUONlib::kJpsi,"CDF pp 7"); jpsi7TeV->SetMomentumRange(0,999); jpsi7TeV->SetPtRange(0,20.); jpsi7TeV->SetYRange(-4.2,-2.3); jpsi7TeV->SetPhiRange(0., 360.); jpsi7TeV->SetCutOnChild(1); jpsi7TeV->SetChildPhiRange(0.,360.); jpsi7TeV->SetChildThetaRange(0.,180.); jpsi7TeV->SetForceDecay(kDiMuon); jpsi7TeV->SetTrackingFlag(1); return jpsi7TeV; }*/ { comment = comment.Append(" pp at 7 TeV: Pythia low-pt, no heavy quarks + J/Psi from parameterisation"); AliGenCocktail * gener = new AliGenCocktail(); gener->UsePerEventRates(); // Pythia AliGenPythia* pythia = new AliGenPythia(-1); pythia->SetMomentumRange(0, 999999.); pythia->SetThetaRange(0., 180.); pythia->SetYRange(-12.,12.); pythia->SetPtRange(0,1000.); pythia->SetProcess(kPyMb); pythia->SetEnergyCMS(energy); pythia->SwitchHFOff(); // J/Psi parameterisation // AliGenParam* jpsi = new AliGenParam(1, AliGenMUONlib::kJpsi, "CDF scaled", "Jpsi"); AliGenParam* jpsi = new AliGenParam(1, AliGenMUONlib::kJpsi,"CDF pp 7"); jpsi->SetPtRange(0.,100.); // jpsi->SetYRange(-8., 8.); jpsi->SetYRange(-1.5, 1.5); //this to speed up !!! jpsi->SetPhiRange(0., 360.); jpsi->SetForceDecay(kDiElectron); // this has to be changed to force J/psi->e+e- //gener->AddGenerator(jpsi, "J/Psi", 8.e-4); // expected yield gener->AddGenerator(jpsi, "J/Psi", 1.); // 1 J/psi per event gener->AddGenerator(pythia, "Pythia", 1.); return gener; }
AliGenerator* MbPythiaTuneATLAS() { comment = comment.Append(" pp: Pythia low-pt"); // // Pythia AliGenPythia* pythia = new AliGenPythia(-1); pythia->SetMomentumRange(0, 999999.); pythia->SetThetaRange(0., 180.); pythia->SetYRange(-12.,12.); pythia->SetPtRange(0,1000.); pythia->SetProcess(kPyMb); pythia->SetEnergyCMS(energy); // Tune // C 306 ATLAS-CSC: Arthur Moraes' (new) ATLAS tune (needs CTEQ6L externally) pythia->SetTune(306); pythia->SetStrucFunc(kCTEQ6l); // return pythia; }
AliGenerator* MbPythiaTunePerugia0() { comment = comment.Append(" pp: Pythia low-pt (Perugia0)"); // // Pythia AliGenPythia* pythia = new AliGenPythia(-1); pythia->SetMomentumRange(0, 999999.); pythia->SetThetaRange(0., 180.); pythia->SetYRange(-12.,12.); pythia->SetPtRange(0,1000.); pythia->SetProcess(kPyMb); pythia->SetEnergyCMS(energy); // Tune // 320 Perugia 0 pythia->SetTune(320); pythia->UseNewMultipleInteractionsScenario(); // return pythia; }
AliGenerator* MbPythiaTuneD6T() { comment = comment.Append(" pp: Pythia low-pt"); // // Pythia AliGenPythia* pythia = new AliGenPythia(-1); pythia->SetMomentumRange(0, 999999.); pythia->SetThetaRange(0., 180.); pythia->SetYRange(-12.,12.); pythia->SetPtRange(0,1000.); pythia->SetProcess(kPyMb); pythia->SetEnergyCMS(energy); // Tune // 109 D6T : Rick Field's CDF Tune D6T (NB: needs CTEQ6L pdfs externally) pythia->SetTune(109); // F I X pythia->SetStrucFunc(kCTEQ6l); // return pythia; }
AliGenerator* MbPythiaTunePerugia0Jpsi() { comment = comment.Append("pp Cocktail: Pythia (Perugia0) + 1 Jpsi forced to dielectrons"); //Generating a cocktail AliGenCocktail *gener = new AliGenCocktail(); gener->UsePerEventRates(); // // Pythia AliGenPythia* pythia = new AliGenPythia(-1); pythia->SetMomentumRange(0, 999999.); pythia->SetThetaRange(0., 180.); pythia->SetYRange(-12.,12.); pythia->SetPtRange(0,1000.); pythia->SetProcess(kPyMb); pythia->SetEnergyCMS(energy); // Tune // 320 Perugia 0 pythia->SetTune(320); pythia->UseNewMultipleInteractionsScenario(); // // JPsi is the second ingredient of the cocktail //AliGenParam* jpsi = new AliGenParam(1, AliGenMUONlib::kJpsi, "CDF scaled", "Jpsi"); // 14 TeV AliGenParam* jpsi=0x0; if(JpsiHarderPt) jpsi = new AliGenParam(1, AliGenMUONlib::kJpsi, "CDF pp 8.8", "Jpsi"); // 8.8 TeV else jpsi = new AliGenParam(1, AliGenMUONlib::kJpsi, "CDF pp 7", "Jpsi"); // 7 TeV //AliGenParam* jpsi = new AliGenParam(1, AliGenMUONlib::kJpsi, "CDF pp 7", "Jpsi"); // 7 TeV //AliGenParam* jpsi = new AliGenParam(1, AliGenMUONlib::kJpsi, "CDF pp 8.8", "Jpsi"); // 8.8 TeV jpsi->SetPtRange(0.,999.); jpsi->SetYRange(-1.0, 1.0); jpsi->SetPhiRange(0.,360.); //jpsi->SetChildYRange(-0.9,0.9); // decaying electrons should be in TRD acceptance jpsi->SetForceDecay(kDiElectron); jpsi->Init(); gener->AddGenerator(pythia, "Pythia", 1.); // 1 is weighting factor : Rate per event gener->AddGenerator(jpsi,"JPsi",1); // gener->Init(); return gener; }
AliGenerator* MbPythiaTunePerugia0bchadr() { comment = comment.Append(" pp: Pythia (Perugia0) bchadr (1 bbbar per event, 1 c-hadron in |y|<1, chadrons decay to hadrons"); // // Pythia AliGenPythia* pythia = new AliGenPythia(-1); pythia->SetMomentumRange(0, 999999.); pythia->SetThetaRange(0., 180.); pythia->SetYRange(-1.,1.); pythia->SetPtRange(0,1000.); pythia->SetProcess(kPyBeautyppMNRwmi); pythia->SetEnergyCMS(energy); // Tune // 320 Perugia 0 pythia->SetTune(320); pythia->UseNewMultipleInteractionsScenario(); // // decays pythia->SetForceDecay(kHadronicD); return pythia; }
AliGenPythia *PythiaHard(PDC07Proc_t proc) { //*******************************************************************// // Configuration file for hard QCD processes generation with PYTHIA // // // //*******************************************************************// AliGenPythia * gener = 0x0; switch(proc) { case kPyJetJet: comment = comment.Append(" pp->jet + jet over at 14 TeV, no restriction"); AliGenPythia * gener = new AliGenPythia(nEvts); gener->SetEnergyCMS(eCMS);// Centre of mass energy gener->SetProcess(kPyJets);// Process type gener->SetJetEtaRange(-1.5, 1.5);// Final state kinematic cuts gener->SetJetPhiRange(0., 360.); gener->SetJetEtRange(10., 1000.); gener->SetPtHard(ptHardMin, ptHardMax);// Pt transfer of the hard scattering gener->SetStrucFunc(kCTEQ4L); return gener; case kPyGammaJetPHOS: comment = comment.Append(" pp->jet + gamma over PHOS"); gener = new AliGenPythia(nEvts); gener->SetEnergyCMS(eCMS); gener->SetProcess(kPyDirectGamma); gener->SetStrucFunc(kCTEQ4L); gener->SetPtHard(ptHardMin,ptHardMax); //gener->SetYHard(-1.0,1.0); gener->SetGammaEtaRange(-0.13,0.13); gener->SetGammaPhiRange(218.,322.);//Over 5 modules +-2 deg break; case kPyJetJetPHOS: comment = comment.Append(" pp->jet + jet over PHOS"); gener = new AliGenPythia(nEvts); gener->SetEnergyCMS(eCMS); gener->SetProcess(kPyJets); gener->SetStrucFunc(kCTEQ4L); gener->SetPtHard(ptHardMin,ptHardMax); //gener->SetYHard(-1.0,1.0); gener->SetJetEtaRange(-1.,1.); gener->SetJetPhiRange(200.,340.); gener->SetPi0InPHOS(kTRUE); gener->SetFragPhotonOrPi0MinPt(ptGammaPi0Min); printf("\n \n Event generator: Minimum pT of particle in calorimeter %f \n \n", ptGammaPi0Min); break; case kPyGammaBremsPHOS: comment = comment.Append(" pp->jet + jet+bremsphoton over PHOS at 14 TeV"); gener = new AliGenPythia(nEvts); gener->SetEnergyCMS(eCMS); gener->SetProcess(kPyJets); gener->SetStrucFunc(kCTEQ4L); gener->SetPtHard(ptHardMin,ptHardMax); //gener->SetYHard(-1.0,1.0); gener->SetJetEtaRange(-1.,1.); gener->SetJetPhiRange(200.,340.); gener->SetFragPhotonInPHOS(kTRUE); gener->SetFragPhotonOrPi0MinPt(ptGammaPi0Min); printf("\n \n Event generator: Minimum pT of particle in calorimeter %f \n \n", ptGammaPi0Min); break; case kPyJetJetPHOSv2: comment = comment.Append(" pp->jet + jet over PHOS version2 "); gener = new AliGenPythia(nEvts); gener->SetEnergyCMS(eCMS); gener->SetProcess(kPyJets); gener->SetStrucFunc(kCTEQ4L); gener->SetPtHard(ptHardMin,ptHardMax); //gener->SetYHard(-1.0,1.0); gener->SetJetEtaRange(-1.,1.); gener->SetJetPhiRange(200.,340.); //gener->SetPi0InPHOS(kTRUE); gener->SetPhotonInPHOSeta(kTRUE); gener->SetPhotonMinPt(ptGammaPi0Min); gener->SetForceDecay(kAll); break; case kPyGammaJetEMCAL: comment = comment.Append(" pp->jet + gamma over EMCAL at 14 TeV"); gener = new AliGenPythia(nEvts); gener->SetEnergyCMS(eCMS); gener->SetProcess(kPyDirectGamma); gener->SetStrucFunc(kCTEQ4L); gener->SetPtHard(ptHardMin,ptHardMax); //gener->SetYHard(-1.0,1.0); gener->SetGammaEtaRange(-0.71,0.71); gener->SetGammaPhiRange(78.,192.);//Over 6 supermodules +-2 deg break; case kPyJetJetEMCAL: comment = comment.Append(" pp->jet + jet over EMCAL at 14 TeV"); gener = new AliGenPythia(nEvts); gener->SetEnergyCMS(eCMS); gener->SetProcess(kPyJets); gener->SetStrucFunc(kCTEQ4L); gener->SetPtHard(ptHardMin,ptHardMax); //gener->SetYHard(-1.0,1.0); gener->SetJetEtaRange(-1,1); gener->SetJetPhiRange(60.,210.); gener->SetPi0InEMCAL(kTRUE); gener->SetFragPhotonOrPi0MinPt(ptGammaPi0Min); printf("\n \n Event generator: Minimum pT of particle in calorimeter %f \n \n", ptGammaPi0Min); break; case kPyGammaBremsEMCAL: comment = comment.Append(" pp->jet + jet+bremsphoton over EMCAL at 14 TeV"); gener = new AliGenPythia(nEvts); gener->SetEnergyCMS(eCMS); gener->SetProcess(kPyJets); gener->SetStrucFunc(kCTEQ4L); gener->SetPtHard(ptHardMin,ptHardMax); //gener->SetYHard(-1.0,1.0); gener->SetJetEtaRange(-1,1); gener->SetJetPhiRange(60.,210.); //Over 2 uncovered PHOS modules gener->SetFragPhotonInEMCAL(kTRUE); gener->SetFragPhotonOrPi0MinPt(ptGammaPi0Min); printf("\n \n Event generator: Minimum pT of particle in calorimeter %f \n \n", ptGammaPi0Min); break; } return gener; }
AliGenPythia *PythiaHVQ(PDC07Proc_t proc) { //*******************************************************************// // Configuration file for charm / beauty generation with PYTHIA // // // // The parameters have been tuned in order to reproduce the inclusive// // heavy quark pt distribution given by the NLO pQCD calculation by // // Mangano, Nason and Ridolfi. // // // // For details and for the NORMALIZATION of the yields see: // // N.Carrer and A.Dainese, // // "Charm and beauty production at the LHC", // // ALICE-INT-2003-019, [arXiv:hep-ph/0311225]; // // PPR Chapter 6.6, CERN/LHCC 2005-030 (2005). // //*******************************************************************// AliGenPythia * gener = 0x0; switch(proc) { case kCharmPbPb5500: comment = comment.Append(" Charm in Pb-Pb at 5.5 TeV"); gener = new AliGenPythia(nEvts); gener->SetProcess(kPyCharmPbPbMNR); gener->SetStrucFunc(kCTEQ4L); gener->SetPtHard(2.1,-1.0); gener->SetEnergyCMS(5500.); gener->SetNuclei(208,208); break; case kCharmpPb8800: comment = comment.Append(" Charm in p-Pb at 8.8 TeV"); gener = new AliGenPythia(nEvts); gener->SetProcess(kPyCharmpPbMNR); gener->SetStrucFunc(kCTEQ4L); gener->SetPtHard(2.1,-1.0); gener->SetEnergyCMS(8800.); gener->SetProjectile("P",1,1); gener->SetTarget("Pb",208,82); break; case kCharmpp14000: comment = comment.Append(" Charm in pp at 14 TeV"); gener = new AliGenPythia(nEvts); gener->SetProcess(kPyCharmppMNR); gener->SetStrucFunc(kCTEQ4L); gener->SetPtHard(2.1,-1.0); gener->SetEnergyCMS(14000.); break; case kCharmpp14000wmi: comment = comment.Append(" Charm in pp at 14 TeV with mult. interactions"); gener = new AliGenPythia(-1); gener->SetProcess(kPyCharmppMNRwmi); gener->SetStrucFunc(kCTEQ5L); gener->SetPtHard(ptHardMin,ptHardMax); gener->SetEnergyCMS(14000.); break; case kD0PbPb5500: comment = comment.Append(" D0 in Pb-Pb at 5.5 TeV"); gener = new AliGenPythia(nEvts); gener->SetProcess(kPyD0PbPbMNR); gener->SetStrucFunc(kCTEQ4L); gener->SetPtHard(2.1,-1.0); gener->SetEnergyCMS(5500.); gener->SetNuclei(208,208); break; case kD0pPb8800: comment = comment.Append(" D0 in p-Pb at 8.8 TeV"); gener = new AliGenPythia(nEvts); gener->SetProcess(kPyD0pPbMNR); gener->SetStrucFunc(kCTEQ4L); gener->SetPtHard(2.1,-1.0); gener->SetEnergyCMS(8800.); gener->SetProjectile("P",1,1); gener->SetTarget("Pb",208,82); break; case kD0pp14000: comment = comment.Append(" D0 in pp at 14 TeV"); gener = new AliGenPythia(nEvts); gener->SetProcess(kPyD0ppMNR); gener->SetStrucFunc(kCTEQ4L); gener->SetPtHard(2.1,-1.0); gener->SetEnergyCMS(14000.); break; case kDPlusPbPb5500: comment = comment.Append(" DPlus in Pb-Pb at 5.5 TeV"); gener = new AliGenPythia(nEvts); gener->SetProcess(kPyDPlusPbPbMNR); gener->SetStrucFunc(kCTEQ4L); gener->SetPtHard(2.1,-1.0); gener->SetEnergyCMS(5500.); gener->SetNuclei(208,208); break; case kDPluspPb8800: comment = comment.Append(" DPlus in p-Pb at 8.8 TeV"); gener = new AliGenPythia(nEvts); gener->SetProcess(kPyDPluspPbMNR); gener->SetStrucFunc(kCTEQ4L); gener->SetPtHard(2.1,-1.0); gener->SetEnergyCMS(8800.); gener->SetProjectile("P",1,1); gener->SetTarget("Pb",208,82); break; case kDPluspp14000: comment = comment.Append(" DPlus in pp at 14 TeV"); gener = new AliGenPythia(nEvts); gener->SetProcess(kPyDPlusppMNR); gener->SetStrucFunc(kCTEQ4L); gener->SetPtHard(2.1,-1.0); gener->SetEnergyCMS(14000.); break; case kBeautyPbPb5500: comment = comment.Append(" Beauty in Pb-Pb at 5.5 TeV"); gener = new AliGenPythia(nEvts); gener->SetProcess(kPyBeautyPbPbMNR); gener->SetStrucFunc(kCTEQ4L); gener->SetPtHard(2.75,-1.0); gener->SetEnergyCMS(5500.); gener->SetNuclei(208,208); break; case kBeautypPb8800: comment = comment.Append(" Beauty in p-Pb at 8.8 TeV"); gener = new AliGenPythia(nEvts); gener->SetProcess(kPyBeautypPbMNR); gener->SetStrucFunc(kCTEQ4L); gener->SetPtHard(2.75,-1.0); gener->SetEnergyCMS(8800.); gener->SetProjectile("P",1,1); gener->SetTarget("Pb",208,82); break; case kBeautypp14000: comment = comment.Append(" Beauty in pp at 14 TeV"); gener = new AliGenPythia(nEvts); gener->SetProcess(kPyBeautyppMNR); gener->SetStrucFunc(kCTEQ4L); gener->SetPtHard(2.75,-1.0); gener->SetEnergyCMS(14000.); break; case kBeautypp14000wmi: comment = comment.Append(" Beauty in pp at 14 TeV with mult. interactions"); gener = new AliGenPythia(-1); gener->SetProcess(kPyBeautyppMNRwmi); gener->SetStrucFunc(kCTEQ5L); gener->SetPtHard(ptHardMin,ptHardMax); gener->SetEnergyCMS(14000.); break; } return gener; }