Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
150 changes: 148 additions & 2 deletions MC/config/PWGDQ/external/generator/GeneratorPromptCharmonia.C
Original file line number Diff line number Diff line change
Expand Up @@ -492,6 +492,152 @@ class O2_GeneratorParamChiC2 : public GeneratorTGenerator
GeneratorParam* paramChiC2 = nullptr;
};

class O2_GeneratorParamJpsipp5TeV : public GeneratorTGenerator
{

public:
O2_GeneratorParamJpsipp5TeV() : GeneratorTGenerator("ParamJpsi")
{
paramJpsi = new GeneratorParam(1, -1, PtJPsipp5TeV, YJPsipp5TeV, V2JPsipp5TeV, IpJPsipp5TeV);
paramJpsi->SetMomentumRange(0., 1.e6);
paramJpsi->SetPtRange(0, 999.);
paramJpsi->SetYRange(-4.2, -2.3);
paramJpsi->SetPhiRange(0., 360.);
paramJpsi->SetDecayer(new TPythia6Decayer());
paramJpsi->SetForceDecay(kNoDecay); // particle left undecayed
// - - paramJpsi->SetTrackingFlag(1); // (from AliGenParam) -> check this
setTGenerator(paramJpsi);
};

~O2_GeneratorParamJpsipp5TeV()
{
delete paramJpsi;
};

Bool_t Init() override
{
GeneratorTGenerator::Init();
paramJpsi->Init();
return true;
}

void SetNSignalPerEvent(Int_t nsig) { paramJpsi->SetNumberParticles(nsig); }

//-------------------------------------------------------------------------//
static Double_t PtJPsipp5TeV(const Double_t* px, const Double_t* /*dummy*/)
{
// jpsi pT in pp at 5.02 TeV, tuned on https://www.hepdata.net/record/ins1935680
Double_t x = *px;
Float_t p0, p1, p2, p3;
p0 = 1;
p1 = 4.30923;
p2 = 1.82061;
p3 = 4.37563;
return p0 * x / TMath::Power(1. + TMath::Power(x / p1, p2), p3);
}

//-------------------------------------------------------------------------//
static Double_t YJPsipp5TeV(const Double_t* py, const Double_t* /*dummy*/)
{
// jpsi y in pp at 5.02 TeV, tuned on https://www.hepdata.net/record/ins1935680
Double_t y = *py;
Float_t p0, p1, p2;
p0 = 1;
p1 = 0.0338222;
p2 = 2.96748;
return p0 * TMath::Exp(-(1. / 2.) * TMath::Power(((y - p1) / p2), 2));
}

//-------------------------------------------------------------------------//
static Double_t V2JPsipp5TeV(const Double_t* /*dummy*/, const Double_t* /*dummy*/)
{
// jpsi v2
return 0.;
}

//-------------------------------------------------------------------------//
static Int_t IpJPsipp5TeV(TRandom*)
{
return 443;
}

private:
GeneratorParam* paramJpsi = nullptr;
};

class O2_GeneratorParamPsipp5TeV : public GeneratorTGenerator
{

public:
O2_GeneratorParamPsipp5TeV() : GeneratorTGenerator("ParamPsi")
{
paramPsi = new GeneratorParam(1, -1, PtPsipp5TeV, YPsipp5TeV, V2Psipp5TeV, IpPsipp5TeV);
paramPsi->SetMomentumRange(0., 1.e6);
paramPsi->SetPtRange(0, 999.);
paramPsi->SetYRange(-4.2, -2.3);
paramPsi->SetPhiRange(0., 360.);
paramPsi->SetDecayer(new TPythia6Decayer());
paramPsi->SetForceDecay(kNoDecay); // particle left undecayed
// - - paramJpsi->SetTrackingFlag(1); // check this
setTGenerator(paramPsi);
};

~O2_GeneratorParamPsipp5TeV()
{
delete paramPsi;
};

Bool_t Init() override
{
GeneratorTGenerator::Init();
paramPsi->Init();
return true;
}

void SetNSignalPerEvent(Int_t nsig) { paramPsi->SetNumberParticles(nsig); }

//-------------------------------------------------------------------------//
static Double_t PtPsipp5TeV(const Double_t* px, const Double_t* /*dummy*/)
{
// psi2s pT in pp at 5.02 TeV, tuned on https://www.hepdata.net/record/ins1935680
Double_t x = *px;
Float_t p0, p1, p2, p3;
p0 = 1;
p1 = 2.6444;
p2 = 6.17572;
p3 = 0.701753;
return p0 * x / TMath::Power(1. + TMath::Power(x / p1, p2), p3);
}

//-------------------------------------------------------------------------//
static Double_t YPsipp5TeV(const Double_t* py, const Double_t* /*dummy*/)
{
// psi2s y in pp at 5.02 TeV, tuned on https://www.hepdata.net/record/ins1935680
Double_t y = *py;
Float_t p0, p1, p2;
p0 = 1;
p1 = -17.4857;
p2 = 2.98887;
return p0 * TMath::Exp(-(1. / 2.) * TMath::Power(((y - p1) / p2), 2));
}

//-------------------------------------------------------------------------//
static Double_t V2Psipp5TeV(const Double_t* /*dummy*/, const Double_t* /*dummy*/)
{
// jpsi v2
return 0.;
}

//-------------------------------------------------------------------------//
static Int_t IpPsipp5TeV(TRandom*)
{
return 100443;
}

private:
GeneratorParam* paramPsi = nullptr;
};

class O2_GeneratorParamJpsiPbPb5TeV : public GeneratorTGenerator
{

Expand Down Expand Up @@ -815,9 +961,9 @@ FairGenerator* GeneratorCocktailPromptCharmoniaToMuonEvtGen_pp5TeV()

auto genCocktailEvtGen = new o2::eventgen::GeneratorEvtGen<GeneratorCocktail>();

auto genJpsi = new o2::eventgen::O2_GeneratorParamJpsiFwdY;
auto genJpsi = new o2::eventgen::O2_GeneratorParamJpsipp5TeV;
genJpsi->SetNSignalPerEvent(1); // 1 J/psi generated per event by GeneratorParam
auto genPsi = new o2::eventgen::O2_GeneratorParamPsiFwdY;
auto genPsi = new o2::eventgen::O2_GeneratorParamPsipp5TeV;
genPsi->SetNSignalPerEvent(1); // 1 Psi(2S) generated per event by GeneratorParam
genCocktailEvtGen->AddGenerator(genJpsi, 1); // add J/psi generator
genCocktailEvtGen->AddGenerator(genPsi, 1); // add Psi(2S) generator
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGDQ/external/generator/generator_py
funcName=GeneratorPythia8InjectedPromptCharmoniaGapTriggered(5,11)

[GeneratorPythia8]
config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGDQ/pythia8/generator/pythia8_inel_triggerGap_pp5TeV.cfg
config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGDQ/pythia8/generator/pythia8_inel_triggerGap_5TeV.cfg