PYTHIA  8.311
TauDecays.h
1 // TauDecays.h is a part of the PYTHIA event generator.
2 // Copyright (C) 2024 Philip Ilten, Torbjorn Sjostrand.
3 // PYTHIA is licenced under the GNU GPL v2 or later, see COPYING for details.
4 // Please respect the MCnet Guidelines, see GUIDELINES for details.
5 
6 // Header file for the TauDecays class.
7 
8 #ifndef Pythia8_TauDecays_H
9 #define Pythia8_TauDecays_H
10 
11 #include "Pythia8/Basics.h"
12 #include "Pythia8/Event.h"
13 #include "Pythia8/HelicityBasics.h"
14 #include "Pythia8/HelicityMatrixElements.h"
15 #include "Pythia8/PhysicsBase.h"
16 #include "Pythia8/PythiaComplex.h"
17 #include "Pythia8/PythiaStdlib.h"
18 #include "Pythia8/Settings.h"
19 
20 namespace Pythia8 {
21 
22 //==========================================================================
23 
24 // TauDecays class.
25 // This class decays tau leptons, with helicity information.
26 
27 class TauDecays : public PhysicsBase {
28 
29 public:
30 
31  // Constructor and destructor.
32  TauDecays() : correlated(), tauExt(), tauMode(), tauMother(), tauPol(),
33  hardME(), decayME(), tau0Max(), tauMax(), rMax(), xyMax(), zMax(),
34  limitTau0(), limitTau(), limitRadius(), limitCylinder(), limitDecay() {};
35  ~TauDecays() {}
36 
37  // Initializer.
38  void init();
39 
40  // Decay a tau or correlated tau pair.
41  bool decay(int iDec, Event& event);
42 
43  // Determine internal or external polarization and correlation mechanism.
44  bool internalMechanism(Event &event);
45  bool externalMechanism(Event &event);
46 
47  // Choose a decay channel for a particle.
48  vector<HelicityParticle> createChildren(HelicityParticle parent);
49 
50  // Perform an N-body isotropic decay.
51  void isotropicDecay(vector<HelicityParticle>& p);
52 
53  // Write the decay to event record.
54  void writeDecay(Event& event, vector<HelicityParticle>& p);
55 
56 private:
57 
58  // Constants: could only be changed in the code itself.
59  static const int NTRYCHANNEL, NTRYDECAY;
60  static const double WTCORRECTION[11];
61 
62  // Flag whether a correlated tau decay should be performed.
63  bool correlated;
64 
65  // User selected mode, mother, and polarization for tau decays.
66  int tauExt, tauMode, tauMother;
67  double tauPol;
68 
69  // Helicity matrix element pointers.
70  HelicityMatrixElement* hardME;
71  HelicityMatrixElement* decayME;
72 
73  // Hard process helicity matrix elements.
74  HMETwoFermions2W2TwoFermions hmeTwoFermions2W2TwoFermions;
75  HMETwoFermions2GammaZ2TwoFermions hmeTwoFermions2GammaZ2TwoFermions;
76  HMETwoGammas2TwoFermions hmeTwoGammas2TwoFermions;
77  HMEW2TwoFermions hmeW2TwoFermions;
78  HMEZ2TwoFermions hmeZ2TwoFermions;
79  HMEGamma2TwoFermions hmeGamma2TwoFermions;
80  HMEHiggs2TwoFermions hmeHiggs2TwoFermions;
81 
82  // Tau decay helicity matrix elements.
83  HMETau2Meson hmeTau2Meson;
84  HMETau2TwoLeptons hmeTau2TwoLeptons;
85  HMETau2TwoMesonsViaVector hmeTau2TwoMesonsViaVector;
86  HMETau2TwoMesonsViaVectorScalar hmeTau2TwoMesonsViaVectorScalar;
87  HMETau2ThreePions hmeTau2ThreePions;
88  HMETau2ThreeMesonsWithKaons hmeTau2ThreeMesonsWithKaons;
89  HMETau2ThreeMesonsGeneric hmeTau2ThreeMesonsGeneric;
90  HMETau2TwoPionsGamma hmeTau2TwoPionsGamma;
91  HMETau2FourPions hmeTau2FourPions;
92  HMETau2FivePions hmeTau2FivePions;
93  HMETau2PhaseSpace hmeTau2PhaseSpace;
94 
95  // Particles of the hard process.
96  HelicityParticle in1, in2, mediator, out1, out2;
97  vector<HelicityParticle> particles;
98 
99  // Parameters to determine if correlated partner should decay.
100  double tau0Max, tauMax, rMax, xyMax, zMax;
101  bool limitTau0, limitTau, limitRadius, limitCylinder, limitDecay;
102 
103 };
104 
105 //==========================================================================
106 
107 } // end namespace Pythia8
108 
109 #endif // Pythia8_TauDecays_H
bool externalMechanism(Event &event)
Definition: TauDecays.cc:377
Helicity matrix element for a tau decay into three mesons with kaons.
Definition: HelicityMatrixElements.h:506
Definition: HelicityMatrixElements.h:208
Definition: PhysicsBase.h:27
Helicity matrix element for a tau decay into three pions.
Definition: HelicityMatrixElements.h:473
The Event class holds all info on the generated event.
Definition: Event.h:453
Helicity matrix element for a tau decay into generic three mesons.
Definition: HelicityMatrixElements.h:534
Definition: HelicityMatrixElements.h:155
Definition: TauDecays.h:27
void init()
Initializer.
Definition: TauDecays.cc:39
bool internalMechanism(Event &event)
Determine internal or external polarization and correlation mechanism.
Definition: TauDecays.cc:302
Helicity matrix element for the hard process of Z/Z&#39; -> two fermions.
Definition: HelicityMatrixElements.h:272
Helicity matrix element for a tau decaying into a single scalar meson.
Definition: HelicityMatrixElements.h:344
Helicity matrix element for a tau decay into four pions.
Definition: HelicityMatrixElements.h:587
Helicity matrix element for the hard process of W/W&#39; -> two fermions.
Definition: HelicityMatrixElements.h:239
Definition: HelicityMatrixElements.h:375
bool decay(int iDec, Event &event)
Decay a tau or correlated tau pair.
Definition: TauDecays.cc:97
Definition: HelicityBasics.h:182
vector< HelicityParticle > createChildren(HelicityParticle parent)
Choose a decay channel for a particle.
Definition: TauDecays.cc:414
Helicity matrix element for a tau decay into two pions and a photon.
Definition: HelicityMatrixElements.h:560
Helicity matrix element for a tau decaying into five pions.
Definition: HelicityMatrixElements.h:639
Helicity matrix element for a tau decaying into two leptons.
Definition: HelicityMatrixElements.h:358
TauDecays()
Constructor and destructor.
Definition: TauDecays.h:32
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
Helicity matrix element for the hard process of photon -> two fermions.
Definition: HelicityMatrixElements.h:260
void writeDecay(Event &event, vector< HelicityParticle > &p)
Write the decay to event record.
Definition: TauDecays.cc:640
Helicity matrix element for a tau decay into flat phase space.
Definition: HelicityMatrixElements.h:668
The helicity matrix element class.
Definition: HelicityMatrixElements.h:24
Definition: HelicityMatrixElements.h:396
Definition: HelicityMatrixElements.h:131
Helicity matrix element for the decay of a Higgs -> two fermions.
Definition: HelicityMatrixElements.h:300
void isotropicDecay(vector< HelicityParticle > &p)
Perform an N-body isotropic decay.
Definition: TauDecays.cc:553