StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
SusyWidthFunctions.h
1 // SusyResonanceWidths.h is a part of the PYTHIA event generator.
2 // Copyright (C) 2020 Torbjorn Sjostrand
3 // Main author of this file: N. Desai
4 // PYTHIA is licenced under the GNU GPL v2 or later, see COPYING for details.
5 // Please respect the MCnet Guidelines, see GUIDELINES for details.
6 
7 // Header file for resonance properties: dynamical widths etc.
8 // WidthFunctions: base class for SUSY 3-body decay width functions.
9 
10 #ifndef Pythia8_SusyWidthFunctions_H
11 #define Pythia8_SusyWidthFunctions_H
12 
13 #include "Pythia8/MathTools.h"
14 #include "Pythia8/ParticleData.h"
15 #include "Pythia8/SusyCouplings.h"
16 
17 namespace Pythia8 {
18 
19 //==========================================================================
20 
21 class WidthFunction {
22 
23 public:
24 
25  // Constructor and destructor.
26  WidthFunction() : infoPtr(), particleDataPtr(), coupSMPtr(), coupSUSYPtr(),
27  idRes(), idInt(), id1(), id2(), id3(), id4(), mRes(),
28  mInt(), gammaInt(), m1(), m2(), m3(), m4() { };
29  virtual ~WidthFunction() { };
30 
31  // Public methods.
32  void setPointers(Info* infoPtrIn);
33  virtual double getWidth( int, int) { return 0.0; };
34 
35  // Definition of width function.
36  virtual double f(double xIn) = 0;
37 
38 protected:
39 
40  Info* infoPtr;
41  ParticleData* particleDataPtr;
42  CoupSM* coupSMPtr;
43  CoupSUSY* coupSUSYPtr;
44  int idRes, idInt, id1, id2, id3, id4;
45  double mRes, mInt, gammaInt, m1, m2 , m3, m4;
46 
47 };
48 
49 //==========================================================================
50 
51 // Class StauWidths.
52 
53 class StauWidths : public WidthFunction {
54 
55 public:
56 
57  // Constructor.
58  StauWidths() : fnSwitch(), delm(), f0(), gf(), cons(), wparam() {}
59 
60  // Destructor.
61  ~StauWidths() { };
62 
63  // Public method.
64  double getWidth(int idResIn, int idIn) override;
65 
66 protected:
67 
68  int fnSwitch; // Switch between multiple functions
69  void setChannel(int idResIn, int idIn);
70  double f(double xIn) override;
71 
72  double delm, f0, gf, cons, wparam;
73  complex gL, gR;
74 
75 };
76 
77 //==========================================================================
78 
79 } // end namespace Pythia8
80 
81 #endif // end Pythia8_SusyResonanceWidths_H