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 * GeneratorCustom(TString opt = "") { AliGenCocktail *ctl = GeneratorCocktail("Hijing_HF"); AliGenerator *hij = GeneratorHijing(); ctl->AddGenerator(hij, "Hijing", 1.); // const Char_t *label[2][3] = { "chadr PYTHIA", "chadr PYTHIA", "cele PYTHIA", "bchadr PYTHIA", "bchadr PYTHIA", "bele PYTHIA" }; // Int_t process[2] = {kPythia6HeavyProcess_Charm, kPythia6HeavyProcess_Beauty}; Int_t iprocess = uidConfig % 2; // Int_t decay[3] = {kPythia6HeavyDecay_Hadrons, kPythia6HeavyDecay_HadronsWithV0, kPythia6HeavyDecay_Electron}; TString optList[3] = {"had", "hv0", "ele"}; Int_t idecay = 0; for (Int_t iopt = 0; iopt < 3; iopt++) if (opt.EqualTo(optList[iopt])) idecay = iopt; // AliGenerator *phf = GeneratorPythia6Heavy(process[iprocess], decay[idecay], kPythia6Tune_Perugia2011); // TFormula *formula = new TFormula("Signals","max(1.,80.*(1.-x/20.)*(x<9)+240.*(1.-x/13.)*(x>9.))"); // Float_t pth[4] = {2.76, 20., 50., 1000.}; Int_t ipt; if ((uidConfig / 2) % 10 < 7) ipt = 0; else if ((uidConfig / 2) % 10 < 9) ipt = 1; else ipt = 2; ((AliGenPythia *)phf)->SetPtHard(pth[ipt], pth[ipt + 1]); // ctl->AddGenerator(phf, label[iprocess][idecay], 1., formula); printf(">>>>> added HF generator %s \n", label[iprocess][idecay]); // add pi0 and eta enhancement if (decay[idecay] == kPythia6HeavyDecay_Electron) { TFormula* neutralsF = new TFormula("neutrals", "20.+ 80. * exp(- 0.5 * x * x / 5.12 / 5.12)"); AliGenPHOSlib *plib = new AliGenPHOSlib(); AliGenParam *pi0 = new AliGenParam(1, plib, AliGenPHOSlib::kPi0Flat); pi0->SetPhiRange(0., 360.) ; pi0->SetYRange(-1.2, 1.2) ; pi0->SetPtRange(0., 50.) ; ctl->AddGenerator(pi0, "pi0", 1., neutralsF); AliGenParam *eta = new AliGenParam(1, plib, AliGenPHOSlib::kEtaFlat); eta->SetPhiRange(0., 360.) ; eta->SetYRange(-1.2, 1.2) ; eta->SetPtRange(0., 50.) ; ctl->AddGenerator(eta, "eta", 1., neutralsF); } return ctl; }
AliGenerator* JPsiPbPb() { AliGenParam *jpsiPbPb = new AliGenParam(1, AliGenMUONlib::kJpsi,"CDF PbPb 3.94"); jpsiPbPb->SetMomentumRange(0,999); jpsiPbPb->SetPtRange(0,50.); jpsiPbPb->SetYRange(-4.5,-2.); jpsiPbPb->SetPhiRange(0., 360.); jpsiPbPb->SetCutOnChild(1); jpsiPbPb->SetChildPhiRange(0.,360.); jpsiPbPb->SetChildThetaRange(0.,180.); jpsiPbPb->SetForceDecay(kDiMuon); jpsiPbPb->SetTrackingFlag(1); return jpsiPbPb; }
AliGenerator* FlatJPsi() { AliGenParam *flatjpsi = new AliGenParam(1, AliGenMUONlib::kJpsi,"Flat"); flatjpsi->SetMomentumRange(0,999); flatjpsi->SetPtRange(0,20.); flatjpsi->SetYRange(-4.2,-2.3); flatjpsi->SetPhiRange(0., 360.); flatjpsi->SetCutOnChild(1); flatjpsi->SetChildPhiRange(0.,360.); flatjpsi->SetChildThetaRange(0.,180.); flatjpsi->SetForceDecay(kDiMuon); flatjpsi->SetTrackingFlag(1); return flatjpsi; }
AliGenerator* GenParamJpsi() { AliGenParam *gener = new AliGenParam(5, AliGenMUONlib::kJpsi); gener->SetMomentumRange(0,999); gener->SetPtRange(0,100.); gener->SetYRange(-4.0, -2.5); gener->SetPhiRange(0., 360.); gener->SetChildThetaRange(171.0,177.0); gener->SetChildMomentumRange(4.0, 999.); gener->SetForceDecay(kDiMuon); gener->SetTrackingFlag(1); gener->SetCutOnChild(1); return gener; }
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; }