10 #ifndef Pythia8_SusyCouplings_H    11 #define Pythia8_SusyCouplings_H    13 #include "Pythia8/PythiaComplex.h"    14 #include "Pythia8/Settings.h"    15 #include "Pythia8/StandardModel.h"    16 #include "Pythia8/SusyLesHouches.h"    33     isLLE(false), isLQD(false), isUDD(false), 
mWpole(), wWpole(), mZpole(),
    34     wZpole(), 
mW(), mZ(), sin2W(), sinW(), cosW(), 
tanb(), cosb(), sinb(),
    36     rvLLE(), rvLQD(), rvUDD(), 
slhaPtr(), loggerPtr(), settingsPtr(),
    37     particleDataPtr(), coupSMPtr() {}
    43   bool isInit, isSUSY, isNMSSM, isLLE, isLQD, isUDD;
    46   double mWpole, wWpole, mZpole, wZpole;
    50   double mW, mZ, sin2W, sinW, cosW;
    60   complex LsuuG[7][4], RsuuG[7][4];
    63       iGenSq =  3*(abs(iGenSq)/2000000) + (abs(iGenSq)%10+1)/2;
    64     return (abs(idQ)%2 == 0) ? LsuuG[iGenSq][abs(idQ)/2]
    65       : LsddG[iGenSq][(abs(idQ)+1)/2] ;}
    66   complex getRsqqG(
int iGenSq, 
int idQ) {
if (abs(iGenSq) > 1000000)
    67       iGenSq =  3*(abs(iGenSq)/2000000) + (abs(iGenSq)%10+1)/2;
    68     return (abs(idQ)%2 == 0) ? RsuuG[iGenSq][abs(idQ)/2]
    69       : RsddG[iGenSq][(abs(idQ)+1)/2] ;}
    85   complex LsusuZ[7][7], RsusuZ[7][7];
    86   complex getLsqsqZ(
int idSq1, 
int idSq2) {
    87     if (abs(idSq1)%2 != abs(idSq2)%2) 
return complex(0.0,0.0);
    88     int iGen1 = 3*(abs(idSq1)/2000000) + (abs(idSq1)%10+1)/2;
    89     int iGen2 = 3*(abs(idSq2)/2000000) + (abs(idSq2)%10+1)/2;
    90     return (abs(idSq1)%2 == 0) ? LsusuZ[iGen1][iGen2] : LsdsdZ[iGen1][iGen2];}
    91   complex getRsqsqZ(
int idSq1, 
int idSq2) {
    92     if (abs(idSq1)%2 != abs(idSq2)%2) 
return complex(0.0,0.0);
    93     int iGen1 = 3*(abs(idSq1)/2000000) + (abs(idSq1)%10+1)/2;
    94     int iGen2 = 3*(abs(idSq2)/2000000) + (abs(idSq2)%10+1)/2;
    95     return (abs(idSq1)%2 == 0) ? RsusuZ[iGen1][iGen2] : RsdsdZ[iGen1][iGen2];}
   105   complex LsuuX[7][4][6], RsuuX[7][4][6];
   106   complex getLsqqX(
int iSq, 
int idQ, 
int iNeut) {
return (abs(idQ)%2 == 0)
   107     ? LsuuX[iSq][abs(idQ)/2][iNeut] : LsddX[iSq][(abs(idQ)+1)/2][iNeut] ;}
   108   complex getRsqqX(
int iSq, 
int idQ, 
int iNeut) {
return (abs(idQ)%2 == 0)
   109     ? RsuuX[iSq][abs(idQ)/2][iNeut] : RsddX[iSq][(abs(idQ)+1)/2][iNeut] ;}
   125   complex LsvsvZ[7][7],RsvsvZ[7][7];
   132   complex LsllX[7][4][6], RsllX[7][4][6];
   141   double rvLLE[4][4][4], rvLQD[4][4][4], rvUDD[4][4][4];
 SusyLesHouches * slhaPtr
Definition: SusyCouplings.h:160
double mWpole
Z and W pole masses and widths. 
Definition: SusyCouplings.h:46
std::complex< double > complex
Convenient typedef for double precision complex numbers. 
Definition: PythiaComplex.h:17
int idSup(int iSup)
Return sup flavour codes. 
Definition: SusyCouplings.cc:1115
int idSdown(int iSdown)
Return sdown flavour codes. 
Definition: SusyCouplings.cc:1133
int typeChar(int idPDG)
Check whether particle is a Chargino. 
Definition: SusyCouplings.cc:1185
complex OLp[3][3]
~chi+~chi-Z couplings 
Definition: SusyCouplings.h:75
complex LsddG[7][4]
~qq~g couplings 
Definition: SusyCouplings.h:59
int idChar(int idChi)
Return chargino flavour codes. 
Definition: SusyCouplings.cc:1101
complex LsddX[7][4][6]
~qq~chi0 couplings 
Definition: SusyCouplings.h:104
complex LlvW[4][4]
lvW couplings 
Definition: SusyCouplings.h:121
complex LsduX[7][4][3]
~du~chi+ couplings 
Definition: SusyCouplings.h:112
CoupSUSY()
Constructor. 
Definition: SusyCouplings.h:32
complex OL[6][3]
~chi0~chi+W couplings 
Definition: SusyCouplings.h:78
complex LslslZ[7][7]
~l~lZ couplings 
Definition: SusyCouplings.h:124
complex LsvlX[7][4][3]
~vl~chi+ couplings 
Definition: SusyCouplings.h:135
void initSUSY(SusyLesHouches *slhaPtrIn, Info *infoPtrIn)
Initialize. 
Definition: SusyCouplings.cc:28
complex getLsqqG(int iGenSq, int idQ)
Assume generation index for Squark. Translate if PDG code instead. 
Definition: SusyCouplings.h:62
double mW
Definition: SusyCouplings.h:50
int idSlep(int iSlep)
Function to return slepton flavour codes. 
Definition: SusyCouplings.cc:1151
Definition: SusyLesHouches.h:393
double rvLLE[4][4][4]
RPV couplings. 
Definition: SusyCouplings.h:141
double muHiggs
Higgs-sector parameters. 
Definition: SusyCouplings.h:56
Definition: StandardModel.h:142
complex LsudX[7][4][3]
~ud~chi+ couplings 
Definition: SusyCouplings.h:115
complex LudW[4][4]
udW couplings 
Definition: SusyCouplings.h:98
complex OLpp[6][6]
~chi0~chi0Z couplings 
Definition: SusyCouplings.h:72
double tanb
Tanbeta. 
Definition: SusyCouplings.h:53
double LqqZ[7]
qqZ couplings 
Definition: SusyCouplings.h:81
complex LslvX[7][4][3]
~lv~chi+ couplings 
Definition: SusyCouplings.h:138
complex Rusq[7][7]
Squark and slepton mixing matrix: needed for RPV. 
Definition: SusyCouplings.h:144
int idNeut(int idChi)
Return neutralino, chargino, sup, sdown and slepton flavour codes. 
Definition: SusyCouplings.cc:1086
Header for classes to set beam momentum and interaction vertex spread. 
Definition: Analysis.h:20
complex LsusdW[7][7]
~u~dW couplings 
Definition: SusyCouplings.h:101
int typeNeut(int idPDG)
Reverse lookup for neutralinos and charginos. 
Definition: SusyCouplings.cc:1169
complex LsvvX[7][4][6]
~ll~chi0 couplings 
Definition: SusyCouplings.h:131
This class holds a map of all ParticleDataEntries. 
Definition: ParticleData.h:423
bool isInit
Status flag. Flags for NMSSM and RPV couplings. 
Definition: SusyCouplings.h:43
double LllZ[7]
llZ couplings 
Definition: SusyCouplings.h:118
complex LslsvW[7][7]
~l~vW couplings 
Definition: SusyCouplings.h:128
Definition: SusyCouplings.h:27
Definition: Settings.h:196
complex LsdsdZ[7][7]
~q~qZ couplings 
Definition: SusyCouplings.h:84