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) 2014 Philip Ilten, Torbjorn Sjostrand.
3 // PYTHIA is licenced under the GNU GPL version 2, 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  // Choose a decay channel for a particle.
43  vector<HelicityParticle> createChildren(HelicityParticle parent);
44 
45  // Perform an N-body isotropic decay.
46  void isotropicDecay(vector<HelicityParticle>& p);
47 
48  // Write the decay to event record.
49  void writeDecay(Event& event, vector<HelicityParticle>& p);
50 
51 private:
52 
53  // Constants: could only be changed in the code itself.
54  static const int NTRYCHANNEL, NTRYDECAY;
55  static const double WTCORRECTION[11];
56 
57  // Flag whether a correlated tau decay should be performed.
58  bool correlated;
59 
60  // User selected mode and mother for tau decays.
61  int tauMode, tauMother, tauModeSave, tauMotherSave;
62 
63  // User selected polarization for tau decays.
64  double polarization, polSave;
65 
66  // Helicity matrix element pointers.
67  HelicityMatrixElement* hardME;
68  HelicityMatrixElement* decayME;
69 
70  // Hard process helicity matrix elements.
71  HMETwoFermions2W2TwoFermions hmeTwoFermions2W2TwoFermions;
72  HMETwoFermions2Z2TwoFermions hmeTwoFermions2Z2TwoFermions;
73  HMETwoFermions2Gamma2TwoFermions hmeTwoFermions2Gamma2TwoFermions;
74  HMETwoFermions2GammaZ2TwoFermions hmeTwoFermions2GammaZ2TwoFermions;
75  HMEZ2TwoFermions hmeZ2TwoFermions;
76  HMEHiggsEven2TwoFermions hmeHiggsEven2TwoFermions;
77  HMEHiggsOdd2TwoFermions hmeHiggsOdd2TwoFermions;
78  HMEHiggsCharged2TwoFermions hmeHiggsCharged2TwoFermions;
79  HMEUnpolarized hmeUnpolarized;
80 
81  // Tau decay helicity matrix elements.
82  HMETau2Meson hmeTau2Meson;
83  HMETau2TwoLeptons hmeTau2TwoLeptons;
84  HMETau2TwoMesonsViaVector hmeTau2TwoMesonsViaVector;
85  HMETau2TwoMesonsViaVectorScalar hmeTau2TwoMesonsViaVectorScalar;
86  HMETau2ThreePions hmeTau2ThreePions;
87  HMETau2ThreeMesonsWithKaons hmeTau2ThreeMesonsWithKaons;
88  HMETau2ThreeMesonsGeneric hmeTau2ThreeMesonsGeneric;
89  HMETau2TwoPionsGamma hmeTau2TwoPionsGamma;
90  HMETau2FourPions hmeTau2FourPions;
91  HMETau2FivePions hmeTau2FivePions;
92  HMETau2PhaseSpace hmeTau2PhaseSpace;
93 
94  // Particles of the hard process.
95  HelicityParticle in1, in2, mediator, out1, out2;
96  vector<HelicityParticle> particles;
97 
98  // The info pointer for the Pythia class.
99  Info* infoPtr;
100 
101  // Pointer to settings database.
102  Settings* settingsPtr;
103 
104  // Pointer to the particle data table.
105  ParticleData* particleDataPtr;
106 
107  // Pointer to the random number generator.
108  Rndm* rndmPtr;
109 
110  // Pointer to SM coupling data.
111  Couplings* couplingsPtr;
112 
113  // Parameters to determine if correlated partner should decay.
114  double tau0Max, tauMax, rMax, xyMax, zMax;
115  bool limitTau0, limitTau, limitRadius, limitCylinder, limitDecay;
116 };
117 
118 //==========================================================================
119 
120 } // end namespace Pythia8
121 
122 #endif // end Pythia8_TauDecays_H
Definition: AgUStep.h:26