10 #ifndef Pythia8_SigmaSUSY_H 11 #define Pythia8_SigmaSUSY_H 13 #include "Pythia8/PhaseSpace.h" 14 #include "Pythia8/PythiaComplex.h" 15 #include "Pythia8/SigmaProcess.h" 16 #include "Pythia8/SusyCouplings.h" 44 ui(), uj(), ti(), tj(), openFracPair() {};
48 ui(), uj(), ti(), tj(), openFracPair() {
58 if (id3chi == 2) id3 = 1000023;
59 if (id3chi == 3) id3 = 1000025;
60 if (id3chi == 4) id3 = 1000035;
61 if (id3chi == 5) id3 = 1000045;
63 if (id4chi == 2) id4 = 1000023;
64 if (id4chi == 3) id4 = 1000025;
65 if (id4chi == 4) id4 = 1000035;
66 if (id4chi == 5) id4 = 1000045;
86 virtual string name()
const {
return nameSave;}
87 virtual int code()
const {
return codeSave;}
88 virtual string inFlux()
const {
return "ff";}
89 virtual int id3Mass()
const {
return abs(id3);}
90 virtual int id4Mass()
const {
return abs(id4);}
92 virtual bool isSUSY()
const {
return true;}
93 virtual double getSigma0()
const {
return sigma0;}
102 double sigma0, ui, uj, ti, tj, openFracPair;
124 id3 = (abs(id3chi) == 2) ? 1000037 : 1000024;
125 if (id3chi < 0) id3 = -id3;
128 if (id4chi == 2) id4 = 1000023;
129 if (id4chi == 3) id4 = 1000025;
130 if (id4chi == 4) id4 = 1000035;
131 if (id4chi == 5) id4 = 1000045;
166 id3 = (abs(id3chi) == 2) ? 1000037 : 1000024;
167 id4 = (abs(id4chi) == 2) ? -1000037 : -1000024;
189 ui(), uj(), ti(), tj(), openFracPair() { };
193 sigma0(), ui(), uj(), ti(), tj(), openFracPair() {
202 if (id3chi == 2) id3 = 1000023;
203 if (id3chi == 3) id3 = 1000025;
204 if (id3chi == 4) id3 = 1000035;
205 if (id3chi == 5) id3 = 1000045;
206 id4 = 1000001 + (isUp ? 1 : 0);
207 if (id4sq == 2) id4 = 1000003 + (isUp ? 1 : 0);
208 if (id4sq == 3) id4 = 1000005 + (isUp ? 1 : 0);
209 if (id4sq == 4) id4 = 2000001 + (isUp ? 1 : 0);
210 if (id4sq == 5) id4 = 2000003 + (isUp ? 1 : 0);
211 if (id4sq == 6) id4 = 2000005 + (isUp ? 1 : 0);
228 virtual string name()
const {
return nameSave;}
229 virtual int code()
const {
return codeSave;}
230 virtual string inFlux()
const {
return "qg";}
231 virtual int id3Mass()
const {
return abs(id3);}
232 virtual int id4Mass()
const {
return abs(id4);}
233 virtual bool isSUSY()
const {
return true;}
242 double sigma0, ui, uj, ti, tj, openFracPair;
265 if (abs(id3chi) == 2) id3Sav = 1000037;
266 if (isUp) id3Sav = -id3Sav;
267 id4Sav = 1000001 + (isUp ? 1 : 0);
268 if (id4sq == 2) id4Sav = 1000003 + (isUp ? 1 : 0);
269 if (id4sq == 3) id4Sav = 1000005 + (isUp ? 1 : 0);
270 if (id4sq == 4) id4Sav = 2000001 + (isUp ? 1 : 0);
271 if (id4sq == 5) id4Sav = 2000003 + (isUp ? 1 : 0);
272 if (id4sq == 6) id4Sav = 2000005 + (isUp ? 1 : 0);
309 nNeut(), isUD(), onlyQCD(), m2Glu(), sigmaChar(), sigmaNeut(), sigmaGlu(),
310 sigmaCharNeut(), sigmaCharGlu(), sigmaNeutGlu(), openFracPair(), tGlu(),
311 uGlu(), sumCt(), sumCu(), sumNt(), sumNu(), sumGt(), sumGu(),
316 nNeut(), isUD(), onlyQCD(), m2Glu(), sigmaChar(), sigmaNeut(), sigmaGlu(),
317 sigmaCharNeut(), sigmaCharGlu(), sigmaNeutGlu(), openFracPair(), tGlu(),
318 uGlu(), sumCt(), sumCu(), sumNt(), sumNu(), sumGt(), sumGu(),
344 virtual string name()
const {
return nameSave;}
345 virtual int code()
const {
return codeSave;}
346 virtual string inFlux()
const {
return "qq";}
347 virtual int id3Mass()
const {
return abs(id3Sav);}
348 virtual int id4Mass()
const {
return abs(id4Sav);}
349 virtual bool isSUSY()
const {
return true;}
354 int id3Sav, id4Sav, codeSave, iGen3, iGen4, nNeut;
360 vector<double> m2Neut, m2Char;
363 double sigmaChar, sigmaNeut, sigmaGlu;
364 double sigmaCharNeut, sigmaCharGlu, sigmaNeutGlu;
369 vector<double> tNeut, uNeut, tChar, uChar;
370 double sumCt, sumCu, sumNt, sumNu, sumGt, sumGu, sumInterference;
384 iGen4(), nNeut(), isUD(), isCC(), onlyQCD(), m2Glu(), xW(), openFracPair(),
385 sigmaEW(), sigmaGlu(), sigmaEWG(), tGlu(), uGlu(), sumColS(), sumColT(),
390 iGen4(), nNeut(), isUD(), isCC(), onlyQCD(), m2Glu(), xW(), openFracPair(),
391 sigmaEW(), sigmaGlu(), sigmaEWG(), tGlu(), uGlu(), sumColS(), sumColT(),
397 id4Sav = -abs(id4In);
418 virtual string name()
const {
return nameSave;}
419 virtual int code()
const {
return codeSave;}
420 virtual string inFlux()
const {
return "qq";}
421 virtual int id3Mass()
const {
return abs(id3Sav);}
422 virtual int id4Mass()
const {
return abs(id4Sav);}
423 virtual bool isSUSY()
const {
return true;}
428 int id3Sav, id4Sav, codeSave, iGen3, iGen4, nNeut;
430 bool isUD, isCC, onlyQCD;
434 vector<double> m2Neut;
439 double sigmaEW, sigmaGlu, sigmaEWG;
443 vector<double> tNeut, uNeut;
445 double sumColS, sumColT, sumInterference;
459 m2Sq(), openFracPair() { }
467 id3Sav = abs(id34In);
468 id4Sav = -abs(id34In);
489 virtual string name()
const {
return nameSave;}
490 virtual int code()
const {
return codeSave;}
491 virtual string inFlux()
const {
return "gg";}
492 virtual int id3Mass()
const {
return abs(id3Sav);}
493 virtual int id4Mass()
const {
return abs(id4Sav);}
494 virtual bool isSUSY()
const {
return true;}
499 int id3Sav, id4Sav, codeSave;
501 double sigma, m2Sq, openFracPair;
516 m2Glu(), m2Sq(), openFracPair() {}
520 comFacHat(), m2Glu(), m2Sq(), openFracPair() {
543 virtual string name()
const {
return nameSave;}
544 virtual int code()
const {
return codeSave;}
545 virtual string inFlux()
const {
return "qg";}
546 virtual int id3Mass()
const {
return abs(id3);}
547 virtual int id4Mass()
const {
return 1000021;}
548 virtual bool isSUSY()
const {
return true;}
555 double sigmaA, sigmaB, comFacHat, m2Glu, m2Sq, openFracPair;
585 virtual string name()
const {
return "g g -> gluino gluino";}
586 virtual int code()
const {
return 1201;}
587 virtual string inFlux()
const {
return "gg";}
589 virtual int id4Mass()
const {
return 1000021;}
590 virtual bool isSUSY()
const {
return true;}
595 double sigTS, sigUS, sigTU, sigSum, sigma, openFracPair;
625 virtual string name()
const {
return "q qbar -> gluino gluino";}
626 virtual int code()
const {
return 1202;}
627 virtual string inFlux()
const {
return "qq";}
629 virtual int id4Mass()
const {
return 1000021;}
630 virtual bool isSUSY()
const {
return true;}
635 double openFracPair, s34Avg, sigS, tHG, uHG, tHG2, uHG2;
646 sigBW(), widthOut(), codeSave(), idRes() {}
650 m2Res(), sigBW(), widthOut(), codeSave(), idRes(id3In) {}
665 virtual string name()
const {
return nameSave;}
666 virtual int code()
const {
return codeSave;}
667 virtual string inFlux()
const {
return "qq";}
668 virtual bool isSUSY()
const {
return true;}
669 virtual bool isRPV()
const {
return true;}
675 double mRes, GammaRes, m2Res, sigBW, widthOut;
692 uj(), ti(), tj(), openFracPair() {};
696 uj(), ti(), tj(), openFracPair() {
706 if (id4chi == 2) id4 = 1000023;
707 if (id4chi == 3) id4 = 1000025;
708 if (id4chi == 4) id4 = 1000035;
709 if (id4chi == 5) id4 = 1000045;
729 virtual string name()
const {
return nameSave;}
730 virtual int code()
const {
return codeSave;}
731 virtual string inFlux()
const {
return "ff";}
732 virtual int id3Mass()
const {
return abs(id3);}
733 virtual int id4Mass()
const {
return abs(id4);}
735 virtual bool isSUSY()
const {
return true;}
736 virtual double getSigma0()
const {
return sigma0;}
745 double sigma0, ui, uj, ti, tj, openFracPair;
766 id4 = (abs(id4chi) == 2) ? 1000037 : 1000024;
767 if (id4chi < 0) id4 = -id4;
800 iGen4(), nNeut(), isUD(), xW(), openFracPair(), sigmaEW(), sumColS(),
801 sumColT(), sumInterference() {}
805 iGen4(), nNeut(), isUD(), xW(), openFracPair(), sigmaEW(), sumColS(),
806 sumColT(), sumInterference() {
811 id4Sav = -abs(id4In);
831 virtual string name()
const {
return nameSave;}
832 virtual int code()
const {
return codeSave;}
833 virtual string inFlux()
const {
return "qq";}
834 virtual int id3Mass()
const {
return abs(id3Sav);}
835 virtual int id4Mass()
const {
return abs(id4Sav);}
836 virtual bool isSUSY()
const {
return true;}
841 int id3Sav, id4Sav, codeSave, iGen3, iGen4, nNeut;
846 vector<double> m2Neut;
854 vector<double> tNeut, uNeut;
856 double sumColS, sumColT, sumInterference;
Sigma2qqbar2chi0chi0()
Constructor.
Definition: SigmaSUSY.h:43
virtual int resonanceA() const
Special treatment needed if process contains an s-channel resonance.
Definition: SigmaSUSY.h:782
virtual bool isSUSY() const
Special treatment needed for SUSY processes.
Definition: SigmaSUSY.h:548
virtual string name() const
Info on the subprocess.
Definition: SigmaSUSY.h:729
Sigma2qqbar2charchar(int id3chiIn, int id4chiIn, int codeIn)
Constructor.
Definition: SigmaSUSY.h:158
virtual void sigmaKin()
Calculate flavour-independent parts of cross section.
Definition: SigmaProcess.h:132
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaSUSY.h:587
std::complex< double > complex
Convenient typedef for double precision complex numbers.
Definition: PythiaComplex.h:17
Sigma2qqbar2chi0gluino(int id4chiIn, int codeIn)
Constructor.
Definition: SigmaSUSY.h:695
virtual bool isSUSY() const
Special treatment needed for SUSY processes.
Definition: SigmaSUSY.h:590
Sigma2qq2squarksquark()
Constructor.
Definition: SigmaSUSY.h:308
A derived class for g g -> ~q ~q*.
Definition: SigmaSUSY.h:453
Definition: SigmaProcess.h:439
virtual int resonanceA() const
Special treatment needed if process contains an s-channel resonance.
Definition: SigmaSUSY.h:734
The Event class holds all info on the generated event.
Definition: Event.h:453
A derived class for q qbar -> neutralino_i chargino_j.
Definition: SigmaSUSY.h:111
virtual int id3Mass() const
Definition: SigmaSUSY.h:347
A derived class for q qbar -> neutralino_i chargino_j.
Definition: SigmaSUSY.h:753
Sigma2qg2squarkgluino(int id3In, int codeIn)
Constructor.
Definition: SigmaSUSY.h:519
virtual string name() const
Info on the subprocess.
Definition: SigmaSUSY.h:228
virtual string name() const
Info on the subprocess.
Definition: SigmaSUSY.h:344
int id3chi
Basic process information.
Definition: SigmaSUSY.h:741
virtual string name() const
Info on the subprocess.
Definition: SigmaSUSY.h:665
Sigma2qqbar2chi0chi0(int id3chiIn, int id4chiIn, int codeIn)
Constructor.
Definition: SigmaSUSY.h:47
Sigma2qq2squarksquark(int id3In, int id4In, int codeIn)
Constructor.
Definition: SigmaSUSY.h:315
A derived class for q q' -> ~q_i ~q_j.
Definition: SigmaSUSY.h:303
virtual bool isSUSY() const
Special treatment needed for SUSY processes.
Definition: SigmaSUSY.h:92
Sigma2qg2charsquark(int id3chiIn, int id4sqIn, bool isUp, int codeIn)
Constructor.
Definition: SigmaSUSY.h:256
A derived class for q g -> ~q ~g.
Definition: SigmaSUSY.h:510
virtual bool isSUSY() const
Special treatment needed for SUSY processes.
Definition: SigmaSUSY.h:668
Sigma2qqbar2squarkantisquark(int id3In, int id4In, int codeIn)
Constructor.
Definition: SigmaSUSY.h:389
virtual int id3Mass() const
Definition: SigmaSUSY.h:89
virtual bool isSUSY() const
Special treatment needed for SUSY processes.
Definition: SigmaSUSY.h:630
virtual bool isSUSY() const
Special treatment needed for SUSY processes.
Definition: SigmaSUSY.h:423
virtual double weightDecay(Event &process, int iResBeg, int iResEnd)
Evaluate weight for decay angles.
Definition: SigmaSUSY.cc:21
Sigma2qqbar2squarkantisquark()
Constructor.
Definition: SigmaSUSY.h:383
virtual string name() const
Info on the subprocess.
Definition: SigmaSUSY.h:418
Sigma2gg2squarkantisquark()
Constructor.
Definition: SigmaSUSY.h:458
Sigma1qq2antisquark()
Constructor.
Definition: SigmaSUSY.h:645
virtual bool isSUSY() const
Special treatment needed for SUSY processes.
Definition: SigmaSUSY.h:233
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaSUSY.h:483
int id3chi
Basic process information.
Definition: SigmaSUSY.h:238
A derived class for q qbar -> neutralino_i neutralino_j.
Definition: SigmaSUSY.h:38
double sigma0
Values stored for later use.
Definition: SigmaSUSY.h:745
A derived class for q g -> neutralino_i squark_j (and cc)
Definition: SigmaSUSY.h:183
An intermediate class for SUSY 2 -> 2 with nontrivial decay angles.
Definition: SigmaSUSY.h:24
Sigma2gg2gluinogluino()
Constructor.
Definition: SigmaSUSY.h:569
virtual string name() const
Info on the subprocess.
Definition: SigmaSUSY.h:86
Definition: SigmaSUSY.h:641
virtual void setIdColAcol()
Select flavour, colour and anticolour.
Definition: SigmaProcess.h:156
virtual int id3Mass() const
Definition: SigmaSUSY.h:834
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaSUSY.h:627
virtual string name() const
Info on the subprocess.
Definition: SigmaSUSY.h:831
double sigma0
Values stored for later use.
Definition: SigmaSUSY.h:102
virtual bool isSUSY() const
Special treatment needed for SUSY processes.
Definition: SigmaSUSY.h:735
virtual int resonanceA() const
Special treatment needed if process contains an s-channel resonance.
Definition: SigmaSUSY.h:141
double sigma0
Values stored for later use.
Definition: SigmaSUSY.h:242
Definition: SigmaProcess.h:479
Sigma2qqbar2sleptonantislepton()
Constructor.
Definition: SigmaSUSY.h:799
virtual int id3Mass() const
Definition: SigmaSUSY.h:628
Sigma2qqbar2chargluino(int id4chiIn, int codeIn)
Constructor.
Definition: SigmaSUSY.h:758
Sigma2qg2chi0squark(int id3chiIn, int id4sqIn, bool isUp, int codeIn)
Constructor.
Definition: SigmaSUSY.h:192
virtual bool isSUSY() const
Special treatment needed for SUSY processes.
Definition: SigmaSUSY.h:836
virtual bool isSUSY() const
Special treatment needed for SUSY processes.
Definition: SigmaSUSY.h:494
virtual int resonanceA() const
Special treatment needed if process contains an s-channel resonance.
Definition: SigmaSUSY.h:91
Sigma2qqbar2chi0gluino()
Constructor.
Definition: SigmaSUSY.h:691
Sigma2qqbar2gluinogluino()
Constructor.
Definition: SigmaSUSY.h:609
void setPointers(string processIn)
Definition: SigmaSUSY.cc:122
virtual int id3Mass() const
Definition: SigmaSUSY.h:492
Sigma2qg2chi0squark()
Constructor.
Definition: SigmaSUSY.h:188
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaSUSY.h:88
virtual string name() const
Info on the subprocess.
Definition: SigmaSUSY.h:625
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaSUSY.h:346
virtual string name() const
Info on the subprocess.
Definition: SigmaSUSY.h:585
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaSUSY.h:731
virtual int resonanceA() const
Special treatment needed if process contains an s-channel resonance.
Definition: SigmaSUSY.h:670
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaSUSY.h:579
A derived class for q qbar -> chargino+_i chargino-_j.
Definition: SigmaSUSY.h:153
virtual int id3Mass() const
Definition: SigmaSUSY.h:421
A derived class for q qbar -> gluino gluino.
Definition: SigmaSUSY.h:604
A derived class for q qbar -> neutralino_i gluino.
Definition: SigmaSUSY.h:686
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
int id3chi
Basic process information.
Definition: SigmaSUSY.h:98
Sigma2gg2squarkantisquark(int id34In, int codeIn)
Constructor.
Definition: SigmaSUSY.h:462
virtual string name() const
Info on the subprocess.
Definition: SigmaSUSY.h:489
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaSUSY.h:545
Sigma2qqbar2sleptonantislepton(int id3In, int id4In, int codeIn)
Constructor.
Definition: SigmaSUSY.h:804
A derived class for q qbar' -> ~q_i ~q*_j.
Definition: SigmaSUSY.h:794
A derived class for q qbar' -> ~q_i ~q*_j.
Definition: SigmaSUSY.h:378
A derived class for g g -> gluino gluino.
Definition: SigmaSUSY.h:564
virtual int id3Mass() const
Definition: SigmaSUSY.h:588
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaSUSY.h:420
Sigma2qqbar2charchi0(int id3chiIn, int id4chiIn, int codeIn)
Constructor.
Definition: SigmaSUSY.h:116
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaSUSY.h:491
virtual int id3Mass() const
Definition: SigmaSUSY.h:732
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaSUSY.h:667
virtual int id3Mass() const
Definition: SigmaSUSY.h:546
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat) for resolved 2 -> 2 processes.
Definition: SigmaProcess.h:503
Sigma2qg2squarkgluino()
Constructor.
Definition: SigmaSUSY.h:515
virtual string name() const
Info on the subprocess.
Definition: SigmaSUSY.h:543
virtual void initProc()
Initialize process. Only used for some processes.
Definition: SigmaProcess.h:105
A derived class for q g -> chargino_i squark_j (incl cc)
Definition: SigmaSUSY.h:251
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaSUSY.h:833
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaSUSY.h:230
virtual bool isSUSY() const
Special treatment needed for SUSY processes.
Definition: SigmaSUSY.h:349
virtual int id3Mass() const
Definition: SigmaSUSY.h:231