File indexing completed on 2025-01-18 10:06:31
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef Pythia8_SigmaSUSY_H
0011 #define Pythia8_SigmaSUSY_H
0012
0013 #include "Pythia8/PhaseSpace.h"
0014 #include "Pythia8/PythiaComplex.h"
0015 #include "Pythia8/SigmaProcess.h"
0016 #include "Pythia8/SusyCouplings.h"
0017
0018 namespace Pythia8 {
0019
0020
0021
0022
0023
0024 class Sigma2SUSY : public Sigma2Process {
0025
0026 public:
0027
0028
0029 virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
0030 void setPointers(string processIn);
0031
0032 };
0033
0034
0035
0036
0037
0038 class Sigma2qqbar2chi0chi0 : public Sigma2SUSY {
0039
0040 public:
0041
0042
0043 Sigma2qqbar2chi0chi0() : id3chi(), id4chi(), codeSave(), sigma0(),
0044 ui(), uj(), ti(), tj(), openFracPair() {};
0045
0046
0047 Sigma2qqbar2chi0chi0(int id3chiIn, int id4chiIn, int codeIn) : sigma0(),
0048 ui(), uj(), ti(), tj(), openFracPair() {
0049
0050
0051 id3chi = id3chiIn;
0052 id4chi = id4chiIn;
0053 codeSave = codeIn;
0054
0055
0056
0057 id3 = 1000022;
0058 if (id3chi == 2) id3 = 1000023;
0059 if (id3chi == 3) id3 = 1000025;
0060 if (id3chi == 4) id3 = 1000035;
0061 if (id3chi == 5) id3 = 1000045;
0062 id4 = 1000022;
0063 if (id4chi == 2) id4 = 1000023;
0064 if (id4chi == 3) id4 = 1000025;
0065 if (id4chi == 4) id4 = 1000035;
0066 if (id4chi == 5) id4 = 1000045;
0067
0068 }
0069
0070
0071 virtual void initProc();
0072
0073
0074 virtual void sigmaKin();
0075
0076
0077 virtual double sigmaHat();
0078
0079
0080 virtual void setIdColAcol();
0081
0082
0083
0084
0085
0086 virtual string name() const {return nameSave;}
0087 virtual int code() const {return codeSave;}
0088 virtual string inFlux() const {return "ff";}
0089 virtual int id3Mass() const {return abs(id3);}
0090 virtual int id4Mass() const {return abs(id4);}
0091 virtual int resonanceA() const {return 23;}
0092 virtual bool isSUSY() const {return true;}
0093 virtual double getSigma0() const {return sigma0;}
0094
0095 protected:
0096
0097
0098 int id3chi, id4chi, codeSave;
0099 string nameSave;
0100
0101
0102 double sigma0, ui, uj, ti, tj, openFracPair;
0103 complex propZ;
0104
0105 };
0106
0107
0108
0109
0110
0111 class Sigma2qqbar2charchi0 : public Sigma2qqbar2chi0chi0 {
0112
0113 public:
0114
0115
0116 Sigma2qqbar2charchi0(int id3chiIn, int id4chiIn, int codeIn) {
0117
0118
0119 id3chi = id3chiIn;
0120 id4chi = id4chiIn;
0121 codeSave = codeIn;
0122
0123
0124 id3 = (abs(id3chi) == 2) ? 1000037 : 1000024;
0125 if (id3chi < 0) id3 = -id3;
0126
0127 id4 = 1000022;
0128 if (id4chi == 2) id4 = 1000023;
0129 if (id4chi == 3) id4 = 1000025;
0130 if (id4chi == 4) id4 = 1000035;
0131 if (id4chi == 5) id4 = 1000045;
0132
0133 }
0134
0135
0136 virtual void sigmaKin();
0137
0138
0139 virtual double sigmaHat();
0140
0141 virtual int resonanceA() const {return 24;}
0142
0143 protected :
0144
0145 complex propW;
0146
0147 };
0148
0149
0150
0151
0152
0153 class Sigma2qqbar2charchar : public Sigma2qqbar2chi0chi0 {
0154
0155 public:
0156
0157
0158 Sigma2qqbar2charchar(int id3chiIn, int id4chiIn, int codeIn) {
0159
0160
0161 id3chi = id3chiIn;
0162 id4chi = id4chiIn;
0163 codeSave = codeIn;
0164
0165
0166 id3 = (abs(id3chi) == 2) ? 1000037 : 1000024;
0167 id4 = (abs(id4chi) == 2) ? -1000037 : -1000024;
0168
0169 }
0170
0171
0172 virtual void sigmaKin();
0173
0174
0175 virtual double sigmaHat();
0176
0177 };
0178
0179
0180
0181
0182
0183 class Sigma2qg2chi0squark : public Sigma2SUSY {
0184
0185 public:
0186
0187
0188 Sigma2qg2chi0squark() : id3chi(), id4sq(), codeSave(), sigma0(),
0189 ui(), uj(), ti(), tj(), openFracPair() { };
0190
0191
0192 Sigma2qg2chi0squark(int id3chiIn, int id4sqIn, bool isUp, int codeIn) :
0193 sigma0(), ui(), uj(), ti(), tj(), openFracPair() {
0194
0195
0196 id3chi = id3chiIn;
0197 id4sq = id4sqIn;
0198 codeSave = codeIn;
0199
0200
0201 id3 = 1000022;
0202 if (id3chi == 2) id3 = 1000023;
0203 if (id3chi == 3) id3 = 1000025;
0204 if (id3chi == 4) id3 = 1000035;
0205 if (id3chi == 5) id3 = 1000045;
0206 id4 = 1000001 + (isUp ? 1 : 0);
0207 if (id4sq == 2) id4 = 1000003 + (isUp ? 1 : 0);
0208 if (id4sq == 3) id4 = 1000005 + (isUp ? 1 : 0);
0209 if (id4sq == 4) id4 = 2000001 + (isUp ? 1 : 0);
0210 if (id4sq == 5) id4 = 2000003 + (isUp ? 1 : 0);
0211 if (id4sq == 6) id4 = 2000005 + (isUp ? 1 : 0);
0212
0213 }
0214
0215
0216 virtual void initProc();
0217
0218
0219 virtual void sigmaKin();
0220
0221
0222 virtual double sigmaHat();
0223
0224
0225 virtual void setIdColAcol();
0226
0227
0228 virtual string name() const {return nameSave;}
0229 virtual int code() const {return codeSave;}
0230 virtual string inFlux() const {return "qg";}
0231 virtual int id3Mass() const {return abs(id3);}
0232 virtual int id4Mass() const {return abs(id4);}
0233 virtual bool isSUSY() const {return true;}
0234
0235 protected:
0236
0237
0238 int id3chi, id4sq, codeSave;
0239 string nameSave;
0240
0241
0242 double sigma0, ui, uj, ti, tj, openFracPair;
0243
0244
0245 };
0246
0247
0248
0249
0250
0251 class Sigma2qg2charsquark : public Sigma2qg2chi0squark {
0252
0253 public:
0254
0255
0256 Sigma2qg2charsquark(int id3chiIn, int id4sqIn, bool isUp, int codeIn) {
0257
0258
0259 id3chi = id3chiIn;
0260 id4sq = id4sqIn;
0261 codeSave = codeIn;
0262
0263
0264 id3Sav = 1000024;
0265 if (abs(id3chi) == 2) id3Sav = 1000037;
0266 if (isUp) id3Sav = -id3Sav;
0267 id4Sav = 1000001 + (isUp ? 1 : 0);
0268 if (id4sq == 2) id4Sav = 1000003 + (isUp ? 1 : 0);
0269 if (id4sq == 3) id4Sav = 1000005 + (isUp ? 1 : 0);
0270 if (id4sq == 4) id4Sav = 2000001 + (isUp ? 1 : 0);
0271 if (id4sq == 5) id4Sav = 2000003 + (isUp ? 1 : 0);
0272 if (id4sq == 6) id4Sav = 2000005 + (isUp ? 1 : 0);
0273
0274
0275 id3 = id3Sav;
0276 id4 = id4Sav;
0277
0278 }
0279
0280
0281 virtual void initProc();
0282
0283
0284 virtual void sigmaKin();
0285
0286
0287 virtual double sigmaHat();
0288
0289
0290 virtual void setIdColAcol();
0291
0292 private:
0293
0294
0295 int id3Sav, id4Sav;
0296
0297 };
0298
0299
0300
0301
0302
0303 class Sigma2qq2squarksquark : public Sigma2SUSY {
0304
0305 public:
0306
0307
0308 Sigma2qq2squarksquark() : id3Sav(), id4Sav(), codeSave(), iGen3(), iGen4(),
0309 nNeut(), isUD(), onlyQCD(), m2Glu(), sigmaChar(), sigmaNeut(), sigmaGlu(),
0310 sigmaCharNeut(), sigmaCharGlu(), sigmaNeutGlu(), openFracPair(), tGlu(),
0311 uGlu(), sumCt(), sumCu(), sumNt(), sumNu(), sumGt(), sumGu(),
0312 sumInterference() {}
0313
0314
0315 Sigma2qq2squarksquark(int id3In, int id4In, int codeIn) : iGen3(), iGen4(),
0316 nNeut(), isUD(), onlyQCD(), m2Glu(), sigmaChar(), sigmaNeut(), sigmaGlu(),
0317 sigmaCharNeut(), sigmaCharGlu(), sigmaNeutGlu(), openFracPair(), tGlu(),
0318 uGlu(), sumCt(), sumCu(), sumNt(), sumNu(), sumGt(), sumGu(),
0319 sumInterference() {
0320
0321
0322 id3Sav = id3In;
0323 id4Sav = id4In;
0324 codeSave = codeIn;
0325
0326 id3 = id3Sav;
0327 id4 = id4Sav;
0328
0329 }
0330
0331
0332 virtual void initProc();
0333
0334
0335 virtual void sigmaKin();
0336
0337
0338 virtual double sigmaHat();
0339
0340
0341 virtual void setIdColAcol();
0342
0343
0344 virtual string name() const {return nameSave;}
0345 virtual int code() const {return codeSave;}
0346 virtual string inFlux() const {return "qq";}
0347 virtual int id3Mass() const {return abs(id3Sav);}
0348 virtual int id4Mass() const {return abs(id4Sav);}
0349 virtual bool isSUSY() const {return true;}
0350
0351 private:
0352
0353
0354 int id3Sav, id4Sav, codeSave, iGen3, iGen4, nNeut;
0355 string nameSave;
0356 bool isUD, onlyQCD;
0357
0358
0359 double m2Glu;
0360 vector<double> m2Neut, m2Char;
0361
0362
0363 double sigmaChar, sigmaNeut, sigmaGlu;
0364 double sigmaCharNeut, sigmaCharGlu, sigmaNeutGlu;
0365 double openFracPair;
0366
0367
0368 double tGlu, uGlu;
0369 vector<double> tNeut, uNeut, tChar, uChar;
0370 double sumCt, sumCu, sumNt, sumNu, sumGt, sumGu, sumInterference;
0371
0372 };
0373
0374
0375
0376
0377
0378 class Sigma2qqbar2squarkantisquark : public Sigma2SUSY {
0379
0380 public:
0381
0382
0383 Sigma2qqbar2squarkantisquark() : id3Sav(), id4Sav(), codeSave(), iGen3(),
0384 iGen4(), nNeut(), isUD(), isCC(), onlyQCD(), m2Glu(), xW(), openFracPair(),
0385 sigmaEW(), sigmaGlu(), sigmaEWG(), tGlu(), uGlu(), sumColS(), sumColT(),
0386 sumInterference(){}
0387
0388
0389 Sigma2qqbar2squarkantisquark(int id3In, int id4In, int codeIn) : iGen3(),
0390 iGen4(), nNeut(), isUD(), isCC(), onlyQCD(), m2Glu(), xW(), openFracPair(),
0391 sigmaEW(), sigmaGlu(), sigmaEWG(), tGlu(), uGlu(), sumColS(), sumColT(),
0392 sumInterference(){
0393
0394
0395
0396 id3Sav = abs(id3In);
0397 id4Sav = -abs(id4In);
0398 codeSave = codeIn;
0399
0400 id3 = id3Sav;
0401 id4 = id4Sav;
0402
0403 }
0404
0405
0406 virtual void initProc();
0407
0408
0409 virtual void sigmaKin();
0410
0411
0412 virtual double sigmaHat();
0413
0414
0415 virtual void setIdColAcol();
0416
0417
0418 virtual string name() const {return nameSave;}
0419 virtual int code() const {return codeSave;}
0420 virtual string inFlux() const {return "qq";}
0421 virtual int id3Mass() const {return abs(id3Sav);}
0422 virtual int id4Mass() const {return abs(id4Sav);}
0423 virtual bool isSUSY() const {return true;}
0424
0425 private:
0426
0427
0428 int id3Sav, id4Sav, codeSave, iGen3, iGen4, nNeut;
0429 string nameSave;
0430 bool isUD, isCC, onlyQCD;
0431
0432
0433 double m2Glu;
0434 vector<double> m2Neut;
0435
0436
0437 double xW;
0438 double openFracPair;
0439 double sigmaEW, sigmaGlu, sigmaEWG;
0440
0441
0442 double tGlu, uGlu;
0443 vector<double> tNeut, uNeut;
0444 complex propZW;
0445 double sumColS, sumColT, sumInterference;
0446
0447 };
0448
0449
0450
0451
0452
0453 class Sigma2gg2squarkantisquark : public Sigma2SUSY {
0454
0455 public:
0456
0457
0458 Sigma2gg2squarkantisquark() : id3Sav(), id4Sav(), codeSave(), sigma(),
0459 m2Sq(), openFracPair() { }
0460
0461
0462 Sigma2gg2squarkantisquark(int id34In, int codeIn) : sigma(), m2Sq(),
0463 openFracPair() {
0464
0465
0466
0467 id3Sav = abs(id34In);
0468 id4Sav = -abs(id34In);
0469 codeSave = codeIn;
0470
0471 id3 = id3Sav;
0472 id4 = id4Sav;
0473
0474 }
0475
0476
0477 virtual void initProc();
0478
0479
0480 virtual void sigmaKin();
0481
0482
0483 virtual double sigmaHat() {return sigma;}
0484
0485
0486 virtual void setIdColAcol();
0487
0488
0489 virtual string name() const {return nameSave;}
0490 virtual int code() const {return codeSave;}
0491 virtual string inFlux() const {return "gg";}
0492 virtual int id3Mass() const {return abs(id3Sav);}
0493 virtual int id4Mass() const {return abs(id4Sav);}
0494 virtual bool isSUSY() const {return true;}
0495
0496 private:
0497
0498
0499 int id3Sav, id4Sav, codeSave;
0500 string nameSave;
0501 double sigma, m2Sq, openFracPair;
0502
0503
0504 };
0505
0506
0507
0508
0509
0510 class Sigma2qg2squarkgluino : public Sigma2SUSY {
0511
0512 public:
0513
0514
0515 Sigma2qg2squarkgluino() : codeSave(), sigmaA(), sigmaB(), comFacHat(),
0516 m2Glu(), m2Sq(), openFracPair() {}
0517
0518
0519 Sigma2qg2squarkgluino(int id3In, int codeIn) : sigmaA(), sigmaB(),
0520 comFacHat(), m2Glu(), m2Sq(), openFracPair() {
0521
0522
0523 codeSave = codeIn;
0524
0525 id3 = id3In;
0526 id4 = 1000021;
0527
0528 }
0529
0530
0531 virtual void initProc();
0532
0533
0534 virtual void sigmaKin();
0535
0536
0537 virtual double sigmaHat();
0538
0539
0540 virtual void setIdColAcol();
0541
0542
0543 virtual string name() const {return nameSave;}
0544 virtual int code() const {return codeSave;}
0545 virtual string inFlux() const {return "qg";}
0546 virtual int id3Mass() const {return abs(id3);}
0547 virtual int id4Mass() const {return 1000021;}
0548 virtual bool isSUSY() const {return true;}
0549
0550 private:
0551
0552
0553 int codeSave;
0554 string nameSave;
0555 double sigmaA, sigmaB, comFacHat, m2Glu, m2Sq, openFracPair;
0556
0557
0558 };
0559
0560
0561
0562
0563
0564 class Sigma2gg2gluinogluino : public Sigma2SUSY {
0565
0566 public:
0567
0568
0569 Sigma2gg2gluinogluino() : sigTS(), sigUS(), sigTU(), sigSum(), sigma(),
0570 openFracPair() { }
0571
0572
0573 virtual void initProc();
0574
0575
0576 virtual void sigmaKin();
0577
0578
0579 virtual double sigmaHat() {return sigma;}
0580
0581
0582 virtual void setIdColAcol();
0583
0584
0585 virtual string name() const {return "g g -> gluino gluino";}
0586 virtual int code() const {return 1201;}
0587 virtual string inFlux() const {return "gg";}
0588 virtual int id3Mass() const {return 1000021;}
0589 virtual int id4Mass() const {return 1000021;}
0590 virtual bool isSUSY() const {return true;}
0591
0592 private:
0593
0594
0595 double sigTS, sigUS, sigTU, sigSum, sigma, openFracPair;
0596
0597
0598 };
0599
0600
0601
0602
0603
0604 class Sigma2qqbar2gluinogluino : public Sigma2SUSY {
0605
0606 public:
0607
0608
0609 Sigma2qqbar2gluinogluino() : openFracPair(), s34Avg(), sigS(), tHG(), uHG(),
0610 tHG2(), uHG2() { }
0611
0612
0613 virtual void initProc();
0614
0615
0616 virtual void sigmaKin();
0617
0618
0619 virtual double sigmaHat();
0620
0621
0622 virtual void setIdColAcol();
0623
0624
0625 virtual string name() const {return "q qbar -> gluino gluino";}
0626 virtual int code() const {return 1202;}
0627 virtual string inFlux() const {return "qq";}
0628 virtual int id3Mass() const {return 1000021;}
0629 virtual int id4Mass() const {return 1000021;}
0630 virtual bool isSUSY() const {return true;}
0631
0632 private:
0633
0634
0635 double openFracPair, s34Avg, sigS, tHG, uHG, tHG2, uHG2;
0636
0637 };
0638
0639
0640
0641 class Sigma1qq2antisquark : public Sigma1Process {
0642 public:
0643
0644
0645 Sigma1qq2antisquark() : Sigma1Process(), mRes(), GammaRes(), m2Res(),
0646 sigBW(), widthOut(), codeSave(), idRes() {}
0647
0648
0649 Sigma1qq2antisquark(int id3In) : Sigma1Process(), mRes(), GammaRes(),
0650 m2Res(), sigBW(), widthOut(), codeSave(), idRes(id3In) {}
0651
0652
0653 virtual void initProc();
0654
0655
0656 virtual void sigmaKin();
0657
0658
0659 virtual double sigmaHat();
0660
0661
0662 virtual void setIdColAcol();
0663
0664
0665 virtual string name() const {return nameSave;}
0666 virtual int code() const {return codeSave;}
0667 virtual string inFlux() const {return "qq";}
0668 virtual bool isSUSY() const {return true;}
0669 virtual bool isRPV() const {return true;}
0670 virtual int resonanceA() const {return idRes;}
0671
0672 private:
0673
0674
0675 double mRes, GammaRes, m2Res, sigBW, widthOut;
0676 int codeSave, idRes;
0677 string nameSave;
0678
0679 };
0680
0681
0682
0683
0684
0685
0686 class Sigma2qqbar2chi0gluino : public Sigma2SUSY {
0687
0688 public:
0689
0690
0691 Sigma2qqbar2chi0gluino() : id3chi(), id4chi(), codeSave(), sigma0(), ui(),
0692 uj(), ti(), tj(), openFracPair() {};
0693
0694
0695 Sigma2qqbar2chi0gluino(int id4chiIn, int codeIn) : id3chi(), sigma0(), ui(),
0696 uj(), ti(), tj(), openFracPair() {
0697
0698
0699 id3 = 1000021;
0700 id4chi = id4chiIn;
0701 codeSave = codeIn;
0702
0703
0704
0705 id4 = 1000022;
0706 if (id4chi == 2) id4 = 1000023;
0707 if (id4chi == 3) id4 = 1000025;
0708 if (id4chi == 4) id4 = 1000035;
0709 if (id4chi == 5) id4 = 1000045;
0710
0711 }
0712
0713
0714 virtual void initProc();
0715
0716
0717 virtual void sigmaKin();
0718
0719
0720 virtual double sigmaHat();
0721
0722
0723 virtual void setIdColAcol();
0724
0725
0726
0727
0728
0729 virtual string name() const {return nameSave;}
0730 virtual int code() const {return codeSave;}
0731 virtual string inFlux() const {return "ff";}
0732 virtual int id3Mass() const {return abs(id3);}
0733 virtual int id4Mass() const {return abs(id4);}
0734 virtual int resonanceA() const {return 23;}
0735 virtual bool isSUSY() const {return true;}
0736 virtual double getSigma0() const {return sigma0;}
0737
0738 protected:
0739
0740
0741 int id3chi, id4chi, codeSave;
0742 string nameSave;
0743
0744
0745 double sigma0, ui, uj, ti, tj, openFracPair;
0746
0747 };
0748
0749
0750
0751
0752
0753 class Sigma2qqbar2chargluino : public Sigma2qqbar2chi0gluino {
0754
0755 public:
0756
0757
0758 Sigma2qqbar2chargluino(int id4chiIn, int codeIn) {
0759
0760
0761 id3 = 1000021;
0762 id4chi = id4chiIn;
0763 codeSave = codeIn;
0764
0765
0766 id4 = (abs(id4chi) == 2) ? 1000037 : 1000024;
0767 if (id4chi < 0) id4 = -id4;
0768 }
0769
0770
0771 virtual void initProc();
0772
0773
0774 virtual void sigmaKin();
0775
0776
0777 virtual double sigmaHat();
0778
0779
0780 virtual void setIdColAcol();
0781
0782 virtual int resonanceA() const {return 24;}
0783
0784 protected :
0785
0786 complex propW;
0787
0788 };
0789
0790
0791
0792
0793
0794 class Sigma2qqbar2sleptonantislepton : public Sigma2qqbar2squarkantisquark {
0795
0796 public:
0797
0798
0799 Sigma2qqbar2sleptonantislepton() : id3Sav(), id4Sav(), codeSave(), iGen3(),
0800 iGen4(), nNeut(), isUD(), xW(), openFracPair(), sigmaEW(), sumColS(),
0801 sumColT(), sumInterference() {}
0802
0803
0804 Sigma2qqbar2sleptonantislepton(int id3In, int id4In, int codeIn) : iGen3(),
0805 iGen4(), nNeut(), isUD(), xW(), openFracPair(), sigmaEW(), sumColS(),
0806 sumColT(), sumInterference() {
0807
0808
0809
0810 id3Sav = abs(id3In);
0811 id4Sav = -abs(id4In);
0812 codeSave = codeIn;
0813
0814 id3 = id3Sav;
0815 id4 = id4Sav;
0816 }
0817
0818
0819 virtual void initProc();
0820
0821
0822 virtual void sigmaKin();
0823
0824
0825 virtual double sigmaHat();
0826
0827
0828 virtual void setIdColAcol();
0829
0830
0831 virtual string name() const {return nameSave;}
0832 virtual int code() const {return codeSave;}
0833 virtual string inFlux() const {return "qq";}
0834 virtual int id3Mass() const {return abs(id3Sav);}
0835 virtual int id4Mass() const {return abs(id4Sav);}
0836 virtual bool isSUSY() const {return true;}
0837
0838 private:
0839
0840
0841 int id3Sav, id4Sav, codeSave, iGen3, iGen4, nNeut;
0842 string nameSave;
0843 bool isUD;
0844
0845
0846 vector<double> m2Neut;
0847
0848
0849 double xW;
0850 double openFracPair;
0851 double sigmaEW;
0852
0853
0854 vector<double> tNeut, uNeut;
0855 complex propZW;
0856 double sumColS, sumColT, sumInterference;
0857
0858 };
0859
0860
0861
0862 }
0863
0864 #endif