ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | List of all members
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  }

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:
ParticleDataEntryPtr
Pythia8::ParticleDataEntry * ParticleDataEntryPtr
Definition: EvtPythiaEngine.cxx:41
Pythia8::ResonanceLQ::m_kCoup
double m_kCoup
Definition: ResonanceLQ.cxx:118