10 #ifndef Pythia8_SusyResonanceWidths_H
11 #define Pythia8_SusyResonanceWidths_H
13 #include "Pythia8/ResonanceWidths.h"
14 #include "Pythia8/SusyCouplings.h"
28 virtual ~WidthFunction() { };
30 void init( ParticleData* particleDataPtrIn, CoupSUSY* coupSUSYPtrIn);
32 virtual void setInternal(
int idResIn,
int id1In,
int id2In,
int id3In,
33 int idIntIn,
int) {setInternal2(idResIn, id1In, id2In, id3In, idIntIn);}
35 virtual double function(
double m12);
36 virtual double function(
double m12,
double m23);
40 void setInternal2(
int idResIn,
int id1In,
int id2In,
int id3In,
int idIntIn);
42 ParticleData* particleDataPtr;
43 CoupSUSY* coupSUSYPtr;
47 double mRes, mInt, gammaInt, m1,m2,m3;
48 int idRes, idInt,iSq,iQ,iX;
55 class Psi:
public WidthFunction {
62 virtual void setInternal(
int idResIn,
int id1In,
int id2In,
int id3In,
64 virtual double function(
double m12);
70 class Upsilon:
public WidthFunction {
75 virtual ~Upsilon() { };
77 virtual void setInternal(
int idResIn,
int id1In,
int id2In,
int id3In,
78 int idIntIn,
int idInt2);
79 virtual double function(
double m12);
84 double mInt2, gammaInt2;
90 class Phi:
public WidthFunction {
97 virtual void setInternal(
int idResIn,
int id1In,
int id2In,
int id3In,
98 int idIntIn,
int idInt2);
99 virtual double function(
double m12sqIn);
104 double mInt2, gammaInt2, m12sq;
108 double function2(
double m23sq);
109 double integrateGauss(
double m23min,
double m23max,
double tol);
115 class SUSYResonanceWidths :
public ResonanceWidths{
119 SUSYResonanceWidths() {}
122 int typeNeut(
int idPDG);
123 int typeChar(
int idPDG);
128 virtual bool initBSM();
129 virtual bool allowCalc();
132 double integrateGauss( WidthFunction* widthFn,
double,
double,
double);
135 CoupSUSY* coupSUSYPtr;
137 static const bool DBSUSY;
145 class ResonanceSquark :
public SUSYResonanceWidths {
150 ResonanceSquark(
int idResIn) {initBasic(idResIn);}
157 virtual void initConstants();
160 virtual void calcPreFac(
bool =
false);
163 virtual void calcWidth(
bool calledFromInit =
false);
173 class ResonanceGluino :
public SUSYResonanceWidths {
178 ResonanceGluino(
int idResIn) {initBasic(idResIn);}
185 virtual void initConstants();
188 virtual void calcPreFac(
bool =
false);
191 virtual void calcWidth(
bool calledFromInit =
false);
199 class ResonanceNeut :
public SUSYResonanceWidths {
204 ResonanceNeut(
int idResIn) {initBasic(idResIn);}
212 virtual void initConstants();
215 virtual void calcPreFac(
bool =
false);
218 virtual void calcWidth(
bool calledFromInit =
false);
233 class ResonanceChar :
public SUSYResonanceWidths {
238 ResonanceChar(
int idResIn) {initBasic(idResIn);}
246 virtual void initConstants();
249 virtual void calcPreFac(
bool =
false);
252 virtual void calcWidth(
bool calledFromInit =
false);
267 class ResonanceSlepton :
public SUSYResonanceWidths {
272 ResonanceSlepton(
int idResIn) {initBasic(idResIn);}
279 virtual void initConstants();
282 virtual void calcPreFac(
bool =
false);
285 virtual void calcWidth(
bool calledFromInit =
false);
295 #endif // end Pythia8_SusyResonanceWidths_H