示例#1
0
文件: Config.C 项目: alisw/AliRoot
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;
}
示例#2
0
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;
}
示例#3
0
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; 
}
示例#4
0
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;
}
示例#5
0
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;

}
示例#6
0
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;
}