ATLAS Offline Software
Loading...
Searching...
No Matches
Pythia8::ResonanceLQ Class Reference
Inheritance diagram for Pythia8::ResonanceLQ:
Collaboration diagram for Pythia8::ResonanceLQ:

Public Member Functions

 ResonanceLQ (int idResIn)

Private Member Functions

void initConstants ()
void calcPreFac (bool)
void calcWidth (bool)

Private Attributes

double m_kCoup

Detailed Description

Definition at line 23 of file ResonanceLQ.cxx.

Constructor & Destructor Documentation

◆ ResonanceLQ()

Pythia8::ResonanceLQ::ResonanceLQ ( int idResIn)
inline

Definition at line 28 of file ResonanceLQ.cxx.

28 :
29 m_kCoup(0.)
30 {
31 initBasic(idResIn);
32 std::cout << " ResonanceLQ constructor\n";
33 }

Member Function Documentation

◆ calcPreFac()

void Pythia8::ResonanceLQ::calcPreFac ( bool )
inlineprivate

Definition at line 89 of file ResonanceLQ.cxx.

89 {
90
91#ifdef PYTHIA_VERSION_INTEGER
92 #if PYTHIA_VERSION_INTEGER > 8300
93 CoupSM* couplingsPtr = infoPtr->coupSMPtr;
94 #endif
95#endif
96 alpEM = couplingsPtr->alphaEM(mHat * mHat);
97 preFac = 0.25 * alpEM * m_kCoup * mHat;
98
99 return;
100 }

◆ calcWidth()

void Pythia8::ResonanceLQ::calcWidth ( bool )
inlineprivate

Definition at line 106 of file ResonanceLQ.cxx.

106 {
107
108 // Check that above threshold.
109 if (ps == 0.) return;
110
111 // Width into lepton plus quark.
112 if (id1Abs > 10 && id1Abs < 17 && id2Abs < 7) widNow = preFac * pow3(ps);
113 return;
114 }

◆ initConstants()

void Pythia8::ResonanceLQ::initConstants ( )
inlineprivate

Definition at line 37 of file ResonanceLQ.cxx.

37 {
38
39 // Locally stored properties and couplings.
40 m_kCoup = settingsPtr->parm("LeptoQuark:kCoup");
41
42 // make a copy of shared pointer before usage (starting Py8.307 particlePtr is of a type std::weak_ptr<Pythia8::ParticleDataEntry>
43#if PYTHIA_VERSION_INTEGER >= 8307
44 ParticleDataEntryPtr particleSPtr = particlePtr.lock();
45#else
46 ParticleDataEntry* particleSPtr = particlePtr;
47#endif
48
49 // Check that flavour info in decay channel is correctly set.
50 int id1Now = particleSPtr->channel(0).product(0);
51 int id2Now = particleSPtr->channel(0).product(1);
52
53 // ============================================================
54 // Modify standard Pythia8 setup to allow decays to top quarks
55 // ============================================================
56
57 if (id1Now < 1 || id1Now > 6) {
58 std::cout << "ERROR in ResonanceLQ::init: unallowed input quark flavour reset to u" << std::endl;
59 id1Now = 2;
60 particleSPtr->channel(0).product(0, id1Now);
61 }
62 if (std::abs(id2Now) < 11 || std::abs(id2Now) > 16) {
63 std::cout << "ERROR in ResonanceLQ::init:unallowed input lepton flavour reset to e-" << std::endl;
64 id2Now = 11;
65 particleSPtr->channel(0).product(1, id2Now);
66 }
67
68 // Set/overwrite charge and name of particle.
69 bool changed = particleSPtr->hasChanged();
70
71 int chargeLQ = particleDataPtr->chargeType(id1Now)
72 + particleDataPtr->chargeType(id2Now);
73
74 particleSPtr->setChargeType(chargeLQ);
75
76 std::string nameLQ = "LQ_" + particleDataPtr->name(id1Now) + ","
77 + particleDataPtr->name(id2Now);
78
79 particleSPtr->setNames(nameLQ, nameLQ + "bar");
80 if (!changed) particleSPtr->setHasChanged(false);
81
82 return;
83 }
Pythia8::ParticleDataEntry * ParticleDataEntryPtr

Member Data Documentation

◆ m_kCoup

double Pythia8::ResonanceLQ::m_kCoup
private

Definition at line 118 of file ResonanceLQ.cxx.


The documentation for this class was generated from the following file: