source: HiSusy/trunk/Pythia8/pythia8170/include/SigmaHiggs.h @ 1

Last change on this file since 1 was 1, checked in by zerwas, 11 years ago

first import of structure, PYTHIA8 and DELPHES

File size: 22.8 KB
Line 
1// SigmaHiggs.h is a part of the PYTHIA event generator.
2// Copyright (C) 2012 Torbjorn Sjostrand.
3// Part of code written by Marc Montull, CERN summer student 2007.
4// PYTHIA is licenced under the GNU GPL version 2, see COPYING for details.
5// Please respect the MCnet Guidelines, see GUIDELINES for details.
6
7// Header file for Higgs process differential cross sections.
8// Contains classes derived from SigmaProcess via Sigma2Process.
9
10#ifndef Pythia8_SigmaHiggs_H
11#define Pythia8_SigmaHiggs_H
12
13#include "SigmaProcess.h"
14
15namespace Pythia8 {
16 
17//==========================================================================
18
19// A derived class for f fbar -> H0 (SM), H1, H2 or A3 (BSM).
20
21class Sigma1ffbar2H : public Sigma1Process {
22
23public:
24
25  // Constructor.
26  Sigma1ffbar2H(int higgsTypeIn) : higgsType(higgsTypeIn) {}
27
28  // Initialize process.
29  virtual void initProc(); 
30
31  // Calculate flavour-independent parts of cross section.
32  virtual void sigmaKin();
33
34  // Evaluate sigmaHat(sHat).
35  virtual double sigmaHat();
36
37  // Select flavour, colour and anticolour.
38  virtual void setIdColAcol();
39
40  // Evaluate weight for decay angles.
41  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
42
43  // Info on the subprocess.
44  virtual string name()       const {return nameSave;}
45  virtual int    code()       const {return codeSave;}
46  virtual string inFlux()     const {return "ffbarSame";}
47  virtual int    resonanceA() const {return idRes;}
48
49private:
50
51  // An H0, H1, H2 or A3 resonance object provides coupling
52  // and propagator expressions.
53  ParticleDataEntry* HResPtr;
54  double mRes, GammaRes, m2Res, GamMRat, sigBW, widthOut;
55  int    higgsType, codeSave, idRes;
56  string nameSave;
57};
58 
59//==========================================================================
60
61// A derived class for g g -> H0 (SM), H1, H2 or A3 (BSM).
62
63class Sigma1gg2H : public Sigma1Process {
64
65public:
66
67  // Constructor.
68  Sigma1gg2H(int higgsTypeIn) : higgsType(higgsTypeIn) {}
69
70  // Initialize process.
71  virtual void initProc(); 
72
73  // Calculate flavour-independent parts of cross section.
74  virtual void sigmaKin();
75
76  // Evaluate sigmaHat(sHat).
77  virtual double sigmaHat() {return sigma;}
78
79  // Select flavour, colour and anticolour.
80  virtual void setIdColAcol();
81
82  // Evaluate weight for decay angles.
83  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
84
85  // Info on the subprocess.
86  virtual string name()       const {return nameSave ;}
87  virtual int    code()       const {return codeSave;}
88  virtual string inFlux()     const {return "gg";} 
89  virtual int    resonanceA() const {return idRes;} 
90
91private:
92
93  // A H0, H1, H2 or A3 resonance object provides coupling
94  // and propagator expressions.
95  ParticleDataEntry* HResPtr;
96  double mRes, GammaRes, m2Res, GamMRat, sigma;
97  int    higgsType, codeSave, idRes;
98  string nameSave;
99};
100 
101//==========================================================================
102
103// A derived class for gamma gamma -> H0 (SM Higgs), H1, H2 or A3 (BSM Higgs).
104
105class Sigma1gmgm2H : public Sigma1Process {
106
107public:
108
109  // Constructor.
110  Sigma1gmgm2H(int higgsTypeIn) : higgsType(higgsTypeIn) {}
111
112  // Initialize process.
113  virtual void initProc(); 
114
115  // Calculate flavour-independent parts of cross section.
116  virtual void sigmaKin();
117
118  // Evaluate sigmaHat(sHat).
119  virtual double sigmaHat() {return sigma;}
120
121  // Select flavour, colour and anticolour.
122  virtual void setIdColAcol();
123
124  // Evaluate weight for decay angles.
125  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
126
127  // Info on the subprocess.
128  virtual string name()       const {return nameSave;} 
129  virtual int    code()       const {return codeSave;} 
130  virtual string inFlux()     const {return "gmgm";} 
131  virtual int    resonanceA() const {return idRes;}
132
133private:
134
135  // A H0, H1, H2 or A3 resonance object provides coupling
136  // and propagator expressions.
137  ParticleDataEntry* HResPtr;
138  double mRes, GammaRes, m2Res, GamMRat, sigma;
139  int    higgsType, codeSave, idRes;
140  string nameSave;
141};
142 
143//==========================================================================
144
145// A derived class for f fbar -> H Z0.
146// (H can be H0 SM or H1, H2, A3 from BSM).
147class Sigma2ffbar2HZ : public Sigma2Process {
148
149public:
150
151  // Constructor.
152  Sigma2ffbar2HZ(int higgsTypeIn) : higgsType(higgsTypeIn) {}
153
154  // Initialize process.
155  virtual void initProc(); 
156
157  // Calculate flavour-independent parts of cross section.
158  virtual void sigmaKin();
159
160  // Evaluate d(sigmaHat)/d(tHat).
161  virtual double sigmaHat();
162
163  // Select flavour, colour and anticolour.
164  virtual void setIdColAcol();
165
166  // Evaluate weight for decay angles.
167  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
168
169  // Info on the subprocess.
170  virtual string name()       const {return nameSave;} 
171  virtual int    code()       const {return codeSave;}
172  virtual string inFlux()     const {return "ffbarSame";}
173  virtual bool   isSChannel() const {return true;}
174  virtual int    id3Mass()    const {return idRes;}
175  virtual int    id4Mass()    const {return 23;}
176  virtual int    resonanceA() const {return 23;}
177  virtual int    gmZmode()    const {return 2;}
178
179private:
180
181  // Store Z0 mass and width.
182  double mZ, widZ, mZS, mwZS, thetaWRat, sigma0, openFracPair, coup2Z;
183  int    higgsType, codeSave, idRes; 
184  string nameSave;
185};
186 
187//==========================================================================
188
189// A derived class for f fbar -> H W+- (Standard Model Higgs).
190// (H can be H0 SM or H1, H2, A3 from BSM).
191
192class Sigma2ffbar2HW : public Sigma2Process {
193
194public:
195
196  // Constructor.
197  Sigma2ffbar2HW(int higgsTypeIn) : higgsType(higgsTypeIn) {}
198
199  // Initialize process.
200  virtual void initProc(); 
201
202  // Calculate flavour-independent parts of cross section.
203  virtual void sigmaKin();
204
205  // Evaluate d(sigmaHat)/d(tHat).
206  virtual double sigmaHat();
207
208  // Select flavour, colour and anticolour.
209  virtual void setIdColAcol();
210
211  // Evaluate weight for decay angles.
212  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
213
214  // Info on the subprocess.
215  virtual string name()       const {return nameSave;}
216  virtual int    code()       const {return codeSave;}
217  virtual string inFlux()     const {return "ffbarChg";}
218  virtual bool   isSChannel() const {return true;}
219  virtual int    id3Mass()    const {return idRes;}
220  virtual int    id4Mass()    const {return 24;}
221  virtual int    resonanceA() const {return 24;}
222
223private:
224
225  // Store W+- mass and width, and couplings.
226  double mW, widW, mWS, mwWS, thetaWRat, sigma0, openFracPairPos, 
227         openFracPairNeg, coup2W;
228  int    higgsType, codeSave, idRes;
229  string nameSave;
230};
231 
232//==========================================================================
233
234// A derived class for f f' -> H f f' (Z0 Z0 fusion of SM or BSM Higgs).
235// (H can be H0 SM or H1, H2, A3 from BSM).
236
237class Sigma3ff2HfftZZ : public Sigma3Process {
238
239public:
240
241  // Constructor.
242  Sigma3ff2HfftZZ(int higgsTypeIn) : higgsType(higgsTypeIn) {}
243
244  // Initialize process.
245  virtual void initProc(); 
246
247  // Calculate flavour-independent parts of cross section.
248  virtual void sigmaKin();
249
250  // Evaluate sigmaHat(sHat).
251  virtual double sigmaHat();
252
253  // Select flavour, colour and anticolour.
254  virtual void setIdColAcol();
255
256  // Evaluate weight for decay angles.
257  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
258
259  // Info on the subprocess.
260  virtual string name()    const {return nameSave;}
261  virtual int    code()    const {return codeSave;}
262  virtual string inFlux()  const {return "ff";}
263  virtual int    id3Mass() const {return idRes;}
264
265  // Instructions for 3-body phase space with t-channel propagators.
266  virtual int    idTchan1()        const {return 23;}
267  virtual int    idTchan2()        const {return 23;}
268  virtual double tChanFracPow1()   const {return 0.05;}
269  virtual double tChanFracPow2()   const {return 0.9;}
270  virtual bool   useMirrorWeight() const {return true;}
271
272private:
273
274  // Store standard factors.
275  double mZS, prefac, sigma1, sigma2, openFrac, coup2Z;
276  int    higgsType, codeSave, idRes;
277  string nameSave;
278};
279 
280//==========================================================================
281
282// A derived class for f_1 f_2 -> H f_3 f_4 (W+ W- fusion of SM or BSM Higgs).
283// (H can be H0 SM or H1, H2, A3 from BSM).
284
285class Sigma3ff2HfftWW : public Sigma3Process {
286
287public:
288
289  // Constructor.
290  Sigma3ff2HfftWW(int higgsTypeIn) : higgsType(higgsTypeIn) {}
291
292  // Initialize process.
293  virtual void initProc(); 
294
295  // Calculate flavour-independent parts of cross section.
296  virtual void sigmaKin();
297
298  // Evaluate sigmaHat(sHat).
299  virtual double sigmaHat();
300
301  // Select flavour, colour and anticolour.
302  virtual void setIdColAcol();
303
304  // Evaluate weight for decay angles.
305  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
306
307  // Info on the subprocess.
308  virtual string name()    const {return nameSave;}
309  virtual int    code()    const {return codeSave;}
310  virtual string inFlux()  const {return "ff";}
311  virtual int    id3Mass() const {return idRes;}
312
313  // Instructions for 3-body phase space with t-channel propagators.
314  virtual int    idTchan1()        const {return 24;}
315  virtual int    idTchan2()        const {return 24;}
316  virtual double tChanFracPow1()   const {return 0.05;}
317  virtual double tChanFracPow2()   const {return 0.9;}
318  virtual bool   useMirrorWeight() const {return true;}
319
320private:
321
322  // Store standard prefactor.
323  double mWS, prefac, sigma0, openFrac, coup2W;
324  int    higgsType, codeSave, idRes;
325  string nameSave;
326};
327 
328//==========================================================================
329
330// A derived class for g g -> H Q Qbar (Q Qbar fusion of SM or BSM Higgs).
331// (H can be H0 SM or H1, H2, A3 from BSM).
332
333class Sigma3gg2HQQbar : public Sigma3Process {
334
335public:
336
337  // Constructor.
338  Sigma3gg2HQQbar(int idIn, int higgsTypeIn) : idNew(idIn),
339    higgsType(higgsTypeIn) {}
340
341  // Initialize process.
342  virtual void initProc(); 
343
344  // Calculate flavour-independent parts of cross section.
345  virtual void sigmaKin();
346
347  // Evaluate sigmaHat(sHat).
348  virtual double sigmaHat() {return sigma;}
349
350  // Select flavour, colour and anticolour.
351  virtual void setIdColAcol();
352
353  // Evaluate weight for decay angles.
354  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
355
356  // Info on the subprocess.
357  virtual string name()    const {return nameSave;}
358  virtual int    code()    const {return codeSave;}
359  virtual string inFlux()  const {return "gg";}
360  virtual int    id3Mass() const {return idRes;}
361  virtual int    id4Mass() const {return idNew;}
362  virtual int    id5Mass() const {return idNew;}
363
364  // Instructions for 3-body phase space with t-channel propagators.
365  virtual int    idTchan1()        const {return idNew;}
366  virtual int    idTchan2()        const {return idNew;}
367  virtual double tChanFracPow1()   const {return 0.4;}
368  virtual double tChanFracPow2()   const {return 0.2;}
369  virtual bool   useMirrorWeight() const {return false;}
370
371private:
372
373  // Store flavour-specific process information and standard prefactor.
374  double prefac, sigma, openFracTriplet, coup2Q;
375  int    idNew, higgsType, codeSave, idRes;
376  string nameSave;
377
378};
379 
380//==========================================================================
381
382// A derived class for q qbar -> H Q Qbar (Q Qbar fusion of SM or BSM Higgs).
383// (H can be H0 SM or H1, H2, A3 from BSM).
384
385class Sigma3qqbar2HQQbar : public Sigma3Process {
386
387public:
388
389  // Constructor.
390  Sigma3qqbar2HQQbar(int idIn, int higgsTypeIn) : idNew(idIn), 
391    higgsType(higgsTypeIn) {}
392
393  // Initialize process.
394  virtual void initProc(); 
395
396  // Calculate flavour-independent parts of cross section.
397  virtual void sigmaKin();
398
399  // Evaluate sigmaHat(sHat).
400  virtual double sigmaHat() {return sigma;}
401
402  // Select flavour, colour and anticolour.
403  virtual void setIdColAcol();
404
405  // Evaluate weight for decay angles.
406  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
407
408  // Info on the subprocess.
409  virtual string name()    const {return nameSave;}
410  virtual int    code()    const {return codeSave;}
411  virtual string inFlux()  const {return "qqbarSame";}
412  virtual int    id3Mass() const {return idRes;}
413  virtual int    id4Mass() const {return idNew;}
414  virtual int    id5Mass() const {return idNew;}
415
416  // Instructions for 3-body phase space with t-channel propagators.
417  virtual int    idTchan1()        const {return idNew;}
418  virtual int    idTchan2()        const {return idNew;}
419  virtual double tChanFracPow1()   const {return 0.4;}
420  virtual double tChanFracPow2()   const {return 0.2;}
421  virtual bool   useMirrorWeight() const {return false;}
422
423private:
424
425  // Store flavour-specific process information and standard prefactor.
426  double prefac, sigma, openFracTriplet, coup2Q;
427  int    idNew, higgsType, codeSave, idRes;
428  string nameSave;
429
430};
431 
432//==========================================================================
433
434// A derived class for q g -> H q (SM or BSM Higgs).
435// (H can be H0 SM or H1, H2, A3 from BSM).
436
437class Sigma2qg2Hq : public Sigma2Process {
438
439public:
440
441  // Constructor.
442  Sigma2qg2Hq(int idIn, int higgsTypeIn) : idNew(idIn), 
443    higgsType(higgsTypeIn) {}
444
445  // Initialize process.
446  virtual void initProc(); 
447
448  // Calculate flavour-independent parts of cross section.
449  virtual void sigmaKin();
450
451  // Evaluate sigmaHat(sHat).
452  virtual double sigmaHat();
453
454  // Select flavour, colour and anticolour.
455  virtual void setIdColAcol();
456
457  // Evaluate weight for decay angles.
458  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
459
460  // Info on the subprocess.
461  virtual string name()    const {return nameSave;}
462  virtual int    code()    const {return codeSave;}
463  virtual string inFlux()  const {return "qg";}
464  virtual int    id3Mass() const {return idRes;}
465  virtual int    id4Mass() const {return idNew;}
466
467private:
468
469  // Store flavour-specific process information and standard prefactor.
470  double m2W, thetaWRat, sigma, openFrac;
471  int    idNew, higgsType, codeSave, idRes;
472  string nameSave;
473
474};
475 
476//==========================================================================
477
478// A derived class for g g -> H0 g (SM or BSM Higgs via heavy top loop).
479// (H can be H0 SM or H1, H2, A3 from BSM).
480
481class Sigma2gg2Hglt : public Sigma2Process {
482
483public:
484
485  // Constructor.
486  Sigma2gg2Hglt(int higgsTypeIn) : higgsType(higgsTypeIn) {}
487
488  // Initialize process.
489  virtual void initProc(); 
490
491  // Calculate flavour-independent parts of cross section.
492  virtual void sigmaKin();
493
494  // Evaluate d(sigmaHat)/d(tHat).
495  virtual double sigmaHat() {return sigma;}
496
497  // Select flavour, colour and anticolour.
498  virtual void setIdColAcol();
499
500  // Evaluate weight for decay angles.
501  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
502
503  // Info on the subprocess.
504  virtual string name()    const {return nameSave;}
505  virtual int    code()    const {return codeSave;}
506  virtual string inFlux()  const {return "gg";}
507  virtual int    id3Mass() const {return idRes;}
508
509private:
510
511  // Store standard prefactor.
512  double widHgg, sigma, openFrac;
513  int    higgsType, codeSave, idRes;
514  string nameSave;
515};
516 
517//==========================================================================
518
519// A derived class for q g -> H q (SM or BSM Higgs via heavy top loop).
520// (H can be H0 SM or H1, H2, A3 from BSM).
521
522class Sigma2qg2Hqlt : public Sigma2Process {
523
524public:
525
526  // Constructor.
527  Sigma2qg2Hqlt(int higgsTypeIn) : higgsType(higgsTypeIn) {}
528
529  // Initialize process.
530  virtual void initProc(); 
531
532  // Calculate flavour-independent parts of cross section.
533  virtual void sigmaKin();
534
535  // Evaluate d(sigmaHat)/d(tHat).
536  virtual double sigmaHat() {return sigma;}
537
538  // Select flavour, colour and anticolour.
539  virtual void setIdColAcol();
540
541  // Evaluate weight for decay angles.
542  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
543
544  // Info on the subprocess.
545  virtual string name()    const {return nameSave;}
546  virtual int    code()    const {return codeSave;}
547  virtual string inFlux()  const {return "qg";}
548  virtual int    id3Mass() const {return idRes;}
549
550private:
551
552  // Store standard prefactor.
553  double widHgg, sigma, openFrac;
554  int    higgsType, codeSave, idRes;
555  string nameSave;
556};
557 
558//==========================================================================
559
560// A derived class for q qbar -> H g (SM or BSM Higgs via heavy top loop).
561// (H can be H0 SM or H1, H2, A3 from BSM).
562
563class Sigma2qqbar2Hglt : public Sigma2Process {
564
565public:
566
567  // Constructor.
568  Sigma2qqbar2Hglt(int higgsTypeIn) : higgsType(higgsTypeIn) {}
569
570  // Initialize process.
571  virtual void initProc(); 
572
573  // Calculate flavour-independent parts of cross section.
574  virtual void sigmaKin();
575
576  // Evaluate d(sigmaHat)/d(tHat).
577  virtual double sigmaHat() {return sigma;}
578
579  // Select flavour, colour and anticolour.
580  virtual void setIdColAcol();
581
582  // Evaluate weight for decay angles.
583  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
584
585  // Info on the subprocess.
586  virtual string name()    const {return nameSave;}
587  virtual int    code()    const {return codeSave;}
588  virtual string inFlux()  const {return "qqbarSame";}
589  virtual int    id3Mass() const {return idRes;}
590
591private:
592
593  // Store standard prefactor.
594  double widHgg, sigma, openFrac;
595  int    higgsType, codeSave, idRes;
596  string nameSave;
597};
598 
599//==========================================================================
600
601// A derived class for f fbar' -> H+-.
602
603class Sigma1ffbar2Hchg : public Sigma1Process {
604
605public:
606
607  // Constructor.
608  Sigma1ffbar2Hchg() {}
609
610  // Initialize process.
611  virtual void initProc(); 
612
613  // Calculate flavour-independent parts of cross section.
614  virtual void sigmaKin();
615
616  // Evaluate sigmaHat(sHat).
617  virtual double sigmaHat();
618
619  // Select flavour, colour and anticolour.
620  virtual void setIdColAcol();
621
622  // Evaluate weight for decay angles.
623  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
624
625  // Info on the subprocess.
626  virtual string name()       const {return "f fbar' -> H+-";}
627  virtual int    code()       const {return 961;}
628  virtual string inFlux()     const {return "ffbarChg";}
629  virtual int    resonanceA() const {return 37;}
630
631private:
632
633  // A H0 resonance object provides coupling and propagator expressions.
634  ParticleDataEntry* HResPtr;
635  double mRes, GammaRes, m2Res, GamMRat, m2W, thetaWRat, tan2Beta, sigBW, 
636         widthOutPos, widthOutNeg;
637
638};
639 
640//==========================================================================
641
642// A derived class for q g -> H+- q'.
643
644class Sigma2qg2Hchgq : public Sigma2Process {
645
646public:
647
648  // Constructor.
649  Sigma2qg2Hchgq(int idIn, int codeIn, string nameIn) : idNew(idIn), 
650    codeSave(codeIn), nameSave(nameIn) {}
651
652  // Initialize process.
653  virtual void initProc(); 
654
655  // Calculate flavour-independent parts of cross section.
656  virtual void sigmaKin();
657
658  // Evaluate sigmaHat(sHat).
659  virtual double sigmaHat();
660
661  // Select flavour, colour and anticolour.
662  virtual void setIdColAcol();
663
664  // Evaluate weight for decay angles.
665  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
666
667  // Info on the subprocess.
668  virtual string name()    const {return nameSave;}
669  virtual int    code()    const {return codeSave;}
670  virtual string inFlux()  const {return "qg";}
671  virtual int    id3Mass() const {return 37;}
672  virtual int    id4Mass() const {return idNew;}
673
674private:
675
676  // Store flavour-specific process information and standard prefactor.
677  int    idNew, codeSave, idOld, idUp, idDn;
678  string nameSave;
679  double m2W, thetaWRat, tan2Beta, sigma, openFracPos, openFracNeg;
680
681};
682 
683//==========================================================================
684
685// A derived class for f fbar -> A0(H_3) h0(H_1) or A0(H_3) H0(H_2).
686
687class Sigma2ffbar2A3H12 : public Sigma2Process {
688
689public:
690
691  // Constructor.
692  Sigma2ffbar2A3H12(int higgsTypeIn) : higgsType(higgsTypeIn) {}
693
694  // Initialize process.
695  virtual void initProc(); 
696
697  // Calculate flavour-independent parts of cross section.
698  virtual void sigmaKin();
699
700  // Evaluate sigmaHat(sHat).
701  virtual double sigmaHat();
702
703  // Select flavour, colour and anticolour.
704  virtual void setIdColAcol();
705
706  // Evaluate weight for decay angles.
707  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
708
709  // Info on the subprocess.
710  virtual string name()    const {return nameSave;}
711  virtual int    code()    const {return codeSave;}
712  virtual string inFlux()  const {return "ffbarSame";}
713  virtual int    id3Mass() const {return 36;}
714  virtual int    id4Mass() const {return higgs12;}
715
716private:
717
718  // Store flavour-specific process information and standard prefactor.
719  int    higgsType, higgs12, codeSave;
720  string nameSave;
721  double coupZA3H12, m2Z, mGammaZ, thetaWRat, openFrac, sigma0;
722
723};
724 
725//==========================================================================
726
727// A derived class for f fbar -> H+- h0(H_1) or H+- H0(H_2).
728
729class Sigma2ffbar2HchgH12 : public Sigma2Process {
730
731public:
732
733  // Constructor.
734  Sigma2ffbar2HchgH12(int higgsTypeIn) : higgsType(higgsTypeIn) {}
735
736  // Initialize process.
737  virtual void initProc(); 
738
739  // Calculate flavour-independent parts of cross section.
740  virtual void sigmaKin();
741
742  // Evaluate sigmaHat(sHat).
743  virtual double sigmaHat();
744
745  // Select flavour, colour and anticolour.
746  virtual void setIdColAcol();
747
748  // Evaluate weight for decay angles.
749  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
750
751  // Info on the subprocess.
752  virtual string name()    const {return nameSave;}
753  virtual int    code()    const {return codeSave;}
754  virtual string inFlux()  const {return "ffbarChg";}
755  virtual int    id3Mass() const {return 37;}
756  virtual int    id4Mass() const {return higgs12;}
757
758private:
759
760  // Store flavour-specific process information and standard prefactor.
761  int    higgsType, higgs12, codeSave;
762  string nameSave;
763  double coupWHchgH12, m2W, mGammaW, thetaWRat, openFracPos, openFracNeg,
764         sigma0;
765
766};
767 
768//==========================================================================
769
770// A derived class for f fbar -> H+ H-.
771
772class Sigma2ffbar2HposHneg : public Sigma2Process {
773
774public:
775
776  // Constructor.
777  Sigma2ffbar2HposHneg() {}
778
779  // Initialize process.
780  virtual void initProc(); 
781
782  // Calculate flavour-independent parts of cross section.
783  virtual void sigmaKin();
784
785  // Evaluate sigmaHat(sHat).
786  virtual double sigmaHat();
787
788  // Select flavour, colour and anticolour.
789  virtual void setIdColAcol();
790
791  // Evaluate weight for decay angles.
792  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
793
794  // Info on the subprocess.
795  virtual string name()    const {return "f fbar -> H+ H-";}
796  virtual int    code()    const {return 1085;}
797  virtual string inFlux()  const {return "ffbarSame";}
798  virtual int    id3Mass() const {return 37;}
799  virtual int    id4Mass() const {return 37;}
800
801private:
802
803  // Store flavour-specific process information and standard prefactor.
804  double m2Z, mGammaZ, thetaWRat, eH, lH, openFrac, gamSig, intSig, resSig;
805
806};
807 
808//==========================================================================
809
810} // end namespace Pythia8
811
812#endif // Pythia8_SigmaHiggs_H
Note: See TracBrowser for help on using the repository browser.