d974465953f379813b32672b96baf63244a8309a
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8130 / include / ResonanceDecays.h
1 // ResonanceDecays.h is a part of the PYTHIA event generator.
2 // Copyright (C) 2008 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 "Basics.h"
13 #include "Event.h"
14 #include "Info.h"
15 #include "ParticleData.h"
16 #include "PythiaStdlib.h"
17 #include "ResonanceWidths.h"
18 #include "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 class ResonanceDecays {
28
29 public:
30
31   // Constructor. 
32   ResonanceDecays() {} 
33
34   // Store pointer to Info for error messages.
35   void init(Info* infoPtrIn) {infoPtr = infoPtrIn;}
36  
37   // Generate the next decay sequence.
38   bool next( Event& process); 
39
40 private: 
41
42   // Constants: could only be changed in the code itself.
43   static const int    NTRYCHANNEL, NTRYMASSES;
44   static const double MSAFETY, WIDTHCUT, TINY, WTCORRECTION[11];
45
46   // Pointer to various information on the generation.
47   Info* infoPtr;
48
49   // Select masses of decay products.
50   bool pickMasses(); 
51
52   // Select colours of decay products.
53   bool pickColours(int iDec, Event& process);
54
55   // Select kinematics isotropic in phase space.
56   bool pickKinematics();
57
58   // Flavour, colour and momentum information.
59   int            id0, mult;
60   double         m0;
61   vector<int>    idProd, cols, acols;
62   vector<double> mProd;
63   vector<Vec4>   pProd;
64
65 };
66
67 //**************************************************************************
68
69 } // end namespace Pythia8
70
71 #endif // Pythia8_ResonanceDecays_H