a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
StandardModel.hpp
Go to the documentation of this file.
1/*
2 * StandardModel.hpp
3 *
4 * Created on: Jan 8, 2012
5 * Author: Ben O'Leary (benjamin.oleary@gmail.com)
6 * Copyright 2012 Ben O'Leary
7 *
8 * This file is part of LesHouchesParserClasses, released under the
9 * GNU General Public License. Please see the accompanying
10 * README.LHPC_CPP.txt file for a full list of files, brief documentation
11 * on how to use these classes, and further details on the license.
12 */
13
14#ifndef STANDARDMODEL_HPP_
15#define STANDARDMODEL_HPP_
16
18
19namespace LHPC
20{
21 namespace MassSpectrumClass
22 {
23 // this is the spectrum of the Standard Model.
24 class StandardModel : public virtual MassSpectrum
25 {
26 public:
27 StandardModel( bool const isVerbose = false,
28 bool const neutrinosAreMajorana = false,
29 std::vector< bool >* const defaultFlags = NULL );
30 virtual
32
39 MassEigenstate const&
43 MassEigenstate const&
47 MassEigenstate const&
51 MassEigenstate const&
55 MassEigenstate const&
56 getPositronOne() const;
59 MassEigenstate const&
63 MassEigenstate const&
64 getPositron() const{ return getPositronOne(); }
67 MassEigenstate const&
68 getAntielectron() const{ return getPositronOne(); }
71 MassEigenstate const&
72 getAntipositronOne() const;
75 MassEigenstate const&
79 MassEigenstate const&
80 getElectron() const{ return getAntipositronOne(); }
83 MassEigenstate const&
84 getPositronTwo() const;
87 MassEigenstate const&
91 MassEigenstate const&
92 getAntimuon() const{ return getPositronTwo(); }
95 MassEigenstate const&
96 getAntipositronTwo() const;
99 MassEigenstate const&
103 MassEigenstate const&
104 getMuon() const{ return getAntipositronTwo(); }
107 MassEigenstate const&
108 getPositronThree() const;
111 MassEigenstate const&
115 MassEigenstate const&
116 getAntitau() const{ return getPositronThree(); }
119 MassEigenstate const&
120 getAntipositronThree() const;
123 MassEigenstate const&
127 MassEigenstate const&
128 getTau() const{ return getAntipositronThree(); }
131 MassEigenstate const&
132 getAntineutrinoOne() const;
135 MassEigenstate const&
139 MassEigenstate const&
140 getNeutrinoOne() const;
143 MassEigenstate const&
147 MassEigenstate const&
148 getAntineutrinoTwo() const;
151 MassEigenstate const&
155 MassEigenstate const&
156 getNeutrinoTwo() const;
159 MassEigenstate const&
160 getMuonNeutrino() const{ return getNeutrinoTwo(); }
163 MassEigenstate const&
164 getAntineutrinoThree() const;
167 MassEigenstate const&
171 MassEigenstate const&
172 getNeutrinoThree() const;
175 MassEigenstate const&
176 getTauNeutrino() const{ return getTauNeutrino(); }
179 MassEigenstate const&
180 getAntidownOne() const;
183 MassEigenstate const&
184 getAntidown() const{ return getAntidownOne(); }
186 getDownOne();
187 MassEigenstate const&
188 getDownOne() const;
190 getDown(){ return getDownOne(); }
191 MassEigenstate const&
192 getDown() const{ return getDownOne(); }
195 MassEigenstate const&
196 getAntidownTwo() const;
199 MassEigenstate const&
200 getAntistrange() const{ return getAntidownTwo(); }
202 getDownTwo();
203 MassEigenstate const&
204 getDownTwo() const;
206 getStrange(){ return getDownTwo(); }
207 MassEigenstate const&
208 getStrange() const{ return getDownTwo(); }
211 MassEigenstate const&
212 getAntidownThree() const;
215 MassEigenstate const&
216 getAntibottom() const{ return getAntidownThree(); }
218 getDownThree();
219 MassEigenstate const&
220 getDownThree() const;
222 getBottom(){ return getDownThree(); }
223 MassEigenstate const&
224 getBottom() const{ return getDownThree(); }
226 getUpOne();
227 MassEigenstate const&
228 getUpOne() const;
230 getUp(){ return getUpOne(); }
231 MassEigenstate const&
232 getUp() const{ return getUpOne(); }
234 getAntiupOne();
235 MassEigenstate const&
236 getAntiupOne() const;
238 getAntiup(){ return getAntiupOne(); }
239 MassEigenstate const&
240 getAntiup() const{ return getAntiupOne(); }
242 getUpTwo();
243 MassEigenstate const&
244 getUpTwo() const;
246 getCharm(){ return getUpTwo(); }
247 MassEigenstate const&
248 getCharm() const{ return getUpTwo(); }
250 getAntiupTwo();
251 MassEigenstate const&
252 getAntiupTwo() const;
255 MassEigenstate const&
256 getAnticharm() const{ return getAntiupTwo(); }
258 getUpThree();
259 MassEigenstate const&
260 getUpThree() const;
262 getTop(){ return getUpThree(); }
263 MassEigenstate const&
264 getTop() const{ return getUpThree(); }
267 MassEigenstate const&
268 getAntiupThree() const;
271 MassEigenstate const&
272 getAntitop() const{ return getAntiupThree(); }
274 getPhoton();
275 MassEigenstate const&
276 getPhoton() const;
279 MassEigenstate const&
280 getWPlusBosonOne() const;
283 MassEigenstate const&
284 getWPlus() const{ return getWPlusBosonOne(); }
287 MassEigenstate const&
288 getWMinusBosonOne() const;
291 MassEigenstate const&
292 getWMinus() const{ return getWMinusBosonOne(); }
294 getZBosonOne();
295 MassEigenstate const&
296 getZBosonOne() const;
298 getZBoson(){ return getZBosonOne(); }
299 MassEigenstate const&
300 getZBoson() const{ return getZBosonOne(); }
302 getZ(){ return getZBosonOne(); }
303 MassEigenstate const&
304 getZ() const{ return getZBosonOne(); }
306 getGluon();
307 MassEigenstate const&
308 getGluon() const;
309 std::vector< MassEigenstate* >&
311 std::vector< MassEigenstate* > const&
312 getPositiveLeptons() const;
313 std::vector< MassEigenstate* >&
315 std::vector< MassEigenstate* > const&
316 getNegativeLeptons() const;
317 std::vector< MassEigenstate* >&
319 std::vector< MassEigenstate* > const&
320 getAntineutrinos() const;
321 std::vector< MassEigenstate* >&
322 getNeutrinos();
323 std::vector< MassEigenstate* > const&
324 getNeutrinos() const;
325 std::vector< MassEigenstate* >&
327 std::vector< MassEigenstate* > const&
328 getDownAntiquarks() const;
329 std::vector< MassEigenstate* >&
331 std::vector< MassEigenstate* > const&
332 getDownQuarks() const;
333 std::vector< MassEigenstate* >&
334 getUpQuarks();
335 std::vector< MassEigenstate* > const&
336 getUpQuarks() const;
337 std::vector< MassEigenstate* >&
339 std::vector< MassEigenstate* > const&
340 getUpAntiquarks() const;
341
342
343 protected:
374 std::vector< MassEigenstate* > positiveLeptonPointers;
375 std::vector< MassEigenstate* > negativeLeptonPointers;
376 std::vector< MassEigenstate* > antineutrinoPointers;
377 std::vector< MassEigenstate* > neutrinoPointers;
378 std::vector< MassEigenstate* > downAntiquarkPointers;
379 std::vector< MassEigenstate* > downQuarkPointers;
380 std::vector< MassEigenstate* > upQuarkPointers;
381 std::vector< MassEigenstate* > upAntiquarkPointers;
383 };
385
386
387
388 inline StandardModel&
390 {
391 // only the neutrinos which are charge-conjugates of the antineutrinos
392 // are set back to having charge conjugates.
393 MassEigenstate* neutrinoFinder;
394 for( int neutrinoIndex( antineutrinoPointers.size() - 1 );
395 0 <= neutrinoIndex;
396 --neutrinoIndex )
397 {
398 neutrinoFinder = getMassEigenstate(
399 antineutrinoPointers[ neutrinoIndex ]->getCode() );
400 if( NULL != neutrinoFinder )
401 {
402 neutrinoFinder->setToBeChargeConjugate(
403 antineutrinoPointers[ neutrinoIndex ] );
404 }
405 }
406 return *this;
407 }
408
409 inline StandardModel&
411 {
412 for( int neutrinoIndex( neutrinoPointers.size() - 1 );
413 0 <= neutrinoIndex;
414 --neutrinoIndex )
415 {
416 neutrinoPointers[ neutrinoIndex ]->setToBeSelfConjugate();
417 }
418 return *this;
419 }
420
421 inline MassEigenstate&
423 {
425 }
426
427 inline MassEigenstate const&
429 {
431 }
432
433 inline MassEigenstate&
435 {
436 return positronOne;
437 }
438
439 inline MassEigenstate const&
441 {
442 return positronOne;
443 }
444
445 inline MassEigenstate&
447 {
448 return antipositronOne;
449 }
450
451 inline MassEigenstate const&
453 {
454 return antipositronOne;
455 }
456
457 inline MassEigenstate&
459 {
460 return positronTwo;
461 }
462
463 inline MassEigenstate const&
465 {
466 return positronTwo;
467 }
468
469 inline MassEigenstate&
471 {
472 return antipositronTwo;
473 }
474
475 inline MassEigenstate const&
477 {
478 return antipositronTwo;
479 }
480
481 inline MassEigenstate&
483 {
484 return positronThree;
485 }
486
487 inline MassEigenstate const&
489 {
490 return positronThree;
491 }
492
493 inline MassEigenstate&
495 {
496 return antipositronThree;
497 }
498
499 inline MassEigenstate const&
501 {
502 return antipositronThree;
503 }
504
505 inline MassEigenstate&
507 {
508 return antineutrinoOne;
509 }
510
511 inline MassEigenstate const&
513 {
514 return antineutrinoOne;
515 }
516
517 inline MassEigenstate&
519 {
520 return neutrinoOne;
521 }
522
523 inline MassEigenstate const&
525 {
526 return neutrinoOne;
527 }
528
529 inline MassEigenstate&
531 {
532 return antineutrinoTwo;
533 }
534
535 inline MassEigenstate const&
537 {
538 return antineutrinoTwo;
539 }
540
541 inline MassEigenstate&
543 {
544 return neutrinoTwo;
545 }
546
547 inline MassEigenstate const&
549 {
550 return neutrinoTwo;
551 }
552
553 inline MassEigenstate&
555 {
556 return antineutrinoThree;
557 }
558
559 inline MassEigenstate const&
561 {
562 return antineutrinoThree;
563 }
564
565 inline MassEigenstate&
567 {
568 return neutrinoThree;
569 }
570
571 inline MassEigenstate const&
573 {
574 return neutrinoThree;
575 }
576
577 inline MassEigenstate&
579 {
580 return antidownOne;
581 }
582
583 inline MassEigenstate const&
585 {
586 return antidownOne;
587 }
588
589 inline MassEigenstate&
591 {
592 return downOne;
593 }
594
595 inline MassEigenstate const&
597 {
598 return downOne;
599 }
600
601 inline MassEigenstate&
603 {
604 return antidownTwo;
605 }
606
607 inline MassEigenstate const&
609 {
610 return antidownTwo;
611 }
612
613 inline MassEigenstate&
615 {
616 return downTwo;
617 }
618
619 inline MassEigenstate const&
621 {
622 return downTwo;
623 }
624
625 inline MassEigenstate&
627 {
628 return antidownThree;
629 }
630
631 inline MassEigenstate const&
633 {
634 return antidownThree;
635 }
636
637 inline MassEigenstate&
639 {
640 return downThree;
641 }
642
643 inline MassEigenstate const&
645 {
646 return downThree;
647 }
648
649 inline MassEigenstate&
651 {
652 return upOne;
653 }
654
655 inline MassEigenstate const&
657 {
658 return upOne;
659 }
660
661 inline MassEigenstate&
663 {
664 return antiupOne;
665 }
666
667 inline MassEigenstate const&
669 {
670 return antiupOne;
671 }
672
673 inline MassEigenstate&
675 {
676 return upTwo;
677 }
678
679 inline MassEigenstate const&
681 {
682 return upTwo;
683 }
684
685 inline MassEigenstate&
687 {
688 return antiupTwo;
689 }
690
691 inline MassEigenstate const&
693 {
694 return antiupTwo;
695 }
696
697 inline MassEigenstate&
699 {
700 return upThree;
701 }
702
703 inline MassEigenstate const&
705 {
706 return upThree;
707 }
708
709 inline MassEigenstate&
711 {
712 return antiupThree;
713 }
714
715 inline MassEigenstate const&
717 {
718 return antiupThree;
719 }
720
721 inline MassEigenstate&
723 {
724 return photonBoson;
725 }
726
727 inline MassEigenstate const&
729 {
730 return photonBoson;
731 }
732
733 inline MassEigenstate&
735 {
736 return wPlusBosonOne;
737 }
738
739 inline MassEigenstate const&
741 {
742 return wPlusBosonOne;
743 }
744
745 inline MassEigenstate&
747 {
748 return wMinusBosonOne;
749 }
750
751 inline MassEigenstate const&
753 {
754 return wMinusBosonOne;
755 }
756
757 inline MassEigenstate&
759 {
760 return zBosonOne;
761 }
762
763 inline MassEigenstate const&
765 {
766 return zBosonOne;
767 }
768
769 inline MassEigenstate&
771 {
772 return gluonBoson;
773 }
774
775 inline MassEigenstate const&
777 {
778 return gluonBoson;
779 }
780
781 inline std::vector< MassEigenstate* >&
783 {
785 }
786
787 inline std::vector< MassEigenstate* > const&
789 {
791 }
792
793 inline std::vector< MassEigenstate* >&
795 {
797 }
798
799 inline std::vector< MassEigenstate* > const&
801 {
803 }
804
805 inline std::vector< MassEigenstate* >&
807 {
809 }
810
811 inline std::vector< MassEigenstate* > const&
813 {
815 }
816
817 inline std::vector< MassEigenstate* >&
819 {
820 return neutrinoPointers;
821 }
822
823 inline std::vector< MassEigenstate* > const&
825 {
826 return neutrinoPointers;
827 }
828
829 inline std::vector< MassEigenstate* >&
831 {
833 }
834
835 inline std::vector< MassEigenstate* > const&
837 {
839 }
840
841 inline std::vector< MassEigenstate* >&
843 {
844 return downQuarkPointers;
845 }
846
847 inline std::vector< MassEigenstate* > const&
849 {
850 return downQuarkPointers;
851 }
852
853 inline std::vector< MassEigenstate* >&
855 {
856 return upQuarkPointers;
857 }
858
859 inline std::vector< MassEigenstate* > const&
861 {
862 return upQuarkPointers;
863 }
864
865 inline std::vector< MassEigenstate* >&
867 {
868 return upAntiquarkPointers;
869 }
870
871 inline std::vector< MassEigenstate* > const&
873 {
874 return upAntiquarkPointers;
875 }
876
877 }
880
881}
882
883#endif /* STANDARDMODEL_HPP_ */
void setToBeChargeConjugate(MassEigenstate *const chargeConjugate)
MassEigenstate const & getAntielectronOne() const
std::vector< MassEigenstate * > antineutrinoPointers
std::vector< MassEigenstate * > & getUpAntiquarks()
std::vector< MassEigenstate * > downAntiquarkPointers
MassEigenstate const & getElectronTwo() const
MassEigenstate const & getBottom() const
MassEigenstate const & getAntibottom() const
std::vector< MassEigenstate * > & getNeutrinos()
std::vector< MassEigenstate * > neutrinoPointers
MassEigenstate const & getAntidown() const
MassEigenstate const & getWPlus() const
MassEigenstate const & getAntistrange() const
MassEigenstate const & getMuonAntineutrino() const
MassEigenstate const & getWMinus() const
std::vector< MassEigenstate * > & getDownQuarks()
std::vector< MassEigenstate * > & getNegativeLeptons()
MassEigenstate const & getElectronAntineutrino() const
MassEigenstate::MassEigenstatesPairedWithBr defaultDecayFiller
MassEigenstate const & getMuonNeutrino() const
MassEigenstate const & getCharm() const
std::vector< MassEigenstate * > negativeLeptonPointers
MassEigenstate const & getDown() const
MassEigenstate const & getTau() const
std::vector< MassEigenstate * > & getAntineutrinos()
MassEigenstate const & getAnticharm() const
MassEigenstate const & getAntielectronThree() const
MassEigenstate const & getPositron() const
MassEigenstate const & getElectron() const
MassEigenstate const & getAntielectron() const
std::vector< MassEigenstate * > & getPositiveLeptons()
MassEigenstate const & getElectronNeutrino() const
std::vector< MassEigenstate * > upQuarkPointers
MassEigenstate const & getMuon() const
MassEigenstate const & getTop() const
std::vector< MassEigenstate * > & getDownAntiquarks()
MassEigenstate const & getHiggsScalarOne() const
MassEigenstate const & getElectronThree() const
MassEigenstate const & getZBoson() const
MassEigenstate const & getStrange() const
MassEigenstate const & getHiggs() const
MassEigenstate const & getUp() const
MassEigenstate const & getAntiup() const
MassEigenstate const & getAntimuon() const
MassEigenstate const & getZ() const
std::vector< MassEigenstate * > & getUpQuarks()
MassEigenstate const & getLightHiggs() const
std::vector< MassEigenstate * > downQuarkPointers
std::vector< MassEigenstate * > upAntiquarkPointers
MassEigenstate const & getAntitau() const
std::vector< MassEigenstate * > positiveLeptonPointers
MassEigenstate const & getTauAntineutrino() const
MassEigenstate const & getElectronOne() const
MassEigenstate const & getTauNeutrino() const
StandardModel(bool const isVerbose=false, bool const neutrinosAreMajorana=false, std::vector< bool > *const defaultFlags=NULL)
MassEigenstate const & getAntielectronTwo() const
MassEigenstate const & getAntitop() const
bool const isVerbose
MassEigenstate * getMassEigenstate(int const pdgCode)
MassSpectrumClass::StandardModel StandardModelSpectrum
MassSpectrumClass::StandardModel SmSpectrum