Line data Source code
1 : // ResonanceDecays.h is a part of the PYTHIA event generator.
2 : // Copyright (C) 2015 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 : // This file contains the main class for performing resonance decays.
7 : // ResonanceDecays: handles the sequential decay of resonances in process.
8 :
9 : #ifndef Pythia8_ResonanceDecays_H
10 : #define Pythia8_ResonanceDecays_H
11 :
12 : #include "Pythia8/Basics.h"
13 : #include "Pythia8/Event.h"
14 : #include "Pythia8/Info.h"
15 : #include "Pythia8/ParticleData.h"
16 : #include "Pythia8/PythiaStdlib.h"
17 : #include "Pythia8/ResonanceWidths.h"
18 : #include "Pythia8/Settings.h"
19 :
20 : namespace Pythia8 {
21 :
22 : //==========================================================================
23 :
24 : // The ResonanceDecays class handles the sequential decay of resonances
25 : // that are part of the hard process (t, W, Z, H, SUSY,...).
26 :
27 0 : class ResonanceDecays {
28 :
29 : public:
30 :
31 : // Constructor.
32 0 : ResonanceDecays() {}
33 :
34 : // Store pointers to Info and Rndm for error messages and random numbers.
35 : void init(Info* infoPtrIn, ParticleData* particleDataPtrIn,
36 0 : Rndm* rndmPtrIn) {infoPtr = infoPtrIn;
37 0 : particleDataPtr = particleDataPtrIn; rndmPtr = rndmPtrIn;}
38 :
39 : // Generate the next decay sequence.
40 : bool next( Event& process, int iDecNow = 0);
41 :
42 : private:
43 :
44 : // Constants: could only be changed in the code itself.
45 : static const int NTRYCHANNEL, NTRYMASSES;
46 : static const double MSAFETY, WIDTHCUT, TINY, TINYBWRANGE,
47 : WTCORRECTION[11];
48 :
49 : // Pointer to various information on the generation.
50 : Info* infoPtr;
51 :
52 : // Pointer to the particle data table.
53 : ParticleData* particleDataPtr;
54 :
55 : // Pointer to the random number generator.
56 : Rndm* rndmPtr;
57 :
58 : // Select masses of decay products.
59 : bool pickMasses();
60 :
61 : // Select colours of decay products.
62 : bool pickColours(int iDec, Event& process);
63 :
64 : // Select kinematics isotropic in phase space.
65 : bool pickKinematics();
66 :
67 : // Flavour, colour and momentum information.
68 : int id0, mult;
69 : double m0;
70 : vector<int> idProd, cols, acols;
71 : vector<double> mProd;
72 : vector<Vec4> pProd;
73 :
74 : };
75 :
76 : //==========================================================================
77 :
78 : } // end namespace Pythia8
79 :
80 : #endif // Pythia8_ResonanceDecays_H
|