StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
TauDecays.h
1 // TauDecays.h is a part of the PYTHIA event generator.
2 // Copyright (C) 2018 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/PythiaComplex.h"
16 #include "Pythia8/PythiaStdlib.h"
17 #include "Pythia8/Settings.h"
18 
19 namespace Pythia8 {
20 
21 //==========================================================================
22 
23 // TauDecays class.
24 // This class decays tau leptons, with helicity information.
25 
26 class TauDecays {
27 
28 public:
29 
30  // Constructor and destructor.
31  TauDecays() {};
32  ~TauDecays() {}
33 
34  // Initializer.
35  void init(Info* infoPtrIn, Settings* settingsPtrIn,
36  ParticleData* particleDataPtrIn, Rndm* rndmPtrIn,
37  Couplings* couplingsPtrIn);
38 
39  // Decay a tau or correlated tau pair.
40  bool decay(int iDec, Event& event);
41 
42  // Determine internal or external polarization and correlation mechanism.
43  bool internalMechanism(Event &event);
44  bool externalMechanism(Event &event);
45 
46  // Choose a decay channel for a particle.
47  vector<HelicityParticle> createChildren(HelicityParticle parent);
48 
49  // Perform an N-body isotropic decay.
50  void isotropicDecay(vector<HelicityParticle>& p);
51 
52  // Write the decay to event record.
53  void writeDecay(Event& event, vector<HelicityParticle>& p);
54 
55 private:
56 
57  // Constants: could only be changed in the code itself.
58  static const int NTRYCHANNEL, NTRYDECAY;
59  static const double WTCORRECTION[11];
60 
61  // Flag whether a correlated tau decay should be performed.
62  bool correlated;
63 
64  // User selected mode and mother for tau decays.
65  int tauExt, tauMode, tauMother, tauPol;
66 
67  // Helicity matrix element pointers.
68  HelicityMatrixElement* hardME;
69  HelicityMatrixElement* decayME;
70 
71  // Hard process helicity matrix elements.
72  HMETwoFermions2W2TwoFermions hmeTwoFermions2W2TwoFermions;
73  HMETwoFermions2GammaZ2TwoFermions hmeTwoFermions2GammaZ2TwoFermions;
74  HMEW2TwoFermions hmeW2TwoFermions;
75  HMEZ2TwoFermions hmeZ2TwoFermions;
76  HMEGamma2TwoFermions hmeGamma2TwoFermions;
77  HMEHiggs2TwoFermions hmeHiggs2TwoFermions;
78 
79  // Tau decay helicity matrix elements.
80  HMETau2Meson hmeTau2Meson;
81  HMETau2TwoLeptons hmeTau2TwoLeptons;
82  HMETau2TwoMesonsViaVector hmeTau2TwoMesonsViaVector;
83  HMETau2TwoMesonsViaVectorScalar hmeTau2TwoMesonsViaVectorScalar;
84  HMETau2ThreePions hmeTau2ThreePions;
85  HMETau2ThreeMesonsWithKaons hmeTau2ThreeMesonsWithKaons;
86  HMETau2ThreeMesonsGeneric hmeTau2ThreeMesonsGeneric;
87  HMETau2TwoPionsGamma hmeTau2TwoPionsGamma;
88  HMETau2FourPions hmeTau2FourPions;
89  HMETau2FivePions hmeTau2FivePions;
90  HMETau2PhaseSpace hmeTau2PhaseSpace;
91 
92  // Particles of the hard process.
93  HelicityParticle in1, in2, mediator, out1, out2;
94  vector<HelicityParticle> particles;
95 
96  // The info pointer for the Pythia class.
97  Info* infoPtr;
98 
99  // Pointer to settings database.
100  Settings* settingsPtr;
101 
102  // Pointer to the particle data table.
103  ParticleData* particleDataPtr;
104 
105  // Pointer to the random number generator.
106  Rndm* rndmPtr;
107 
108  // Pointer to SM coupling data.
109  Couplings* couplingsPtr;
110 
111  // Parameters to determine if correlated partner should decay.
112  double tau0Max, tauMax, rMax, xyMax, zMax;
113  bool limitTau0, limitTau, limitRadius, limitCylinder, limitDecay;
114 
115 };
116 
117 //==========================================================================
118 
119 } // end namespace Pythia8
120 
121 #endif // end Pythia8_TauDecays_H
Definition: AgUStep.h:26