a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
THDMWunitarity.cpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2017 HEPfit Collaboration
3 * All rights reserved.
4 *
5 * For the licensing terms see doc/COPYING.
6 */
7
8#include "THDMWunitarity.h"
9#include "THDMW.h"
10#include "THDMWcache.h"
11
12THDMWunitarityLO::THDMWunitarityLO(const StandardModel& SM_i, unsigned int index_i)
13: ThObservable(SM_i),myTHDMW(static_cast<const THDMW&> (SM_i))
14{
15 index = index_i;
16}
17
19{}
20
22{
23 if( index > 10 ) {
24 throw std::runtime_error("Index out of range in THDMWunitarityLO");
25 }
27}
28
29THDMWunitarityNLO::THDMWunitarityNLO(const StandardModel& SM_i, unsigned int index_i)
30: ThObservable(SM_i),myTHDMW(static_cast<const THDMW&> (SM_i))
31{
32 index = index_i;
33}
34
36{}
37
39{
40 if( index > 10 ) {
41 throw std::runtime_error("Index out of range in THDMWunitarityNLO");
42 }
43
44 gslpp::complex a0 = myTHDMW.getMyTHDMWCache()->unitarityeigenvalues(index);
46
47 return ( a0 * a0 + 2.0 * a0 * a1.real() ).abs();
48}
49
50THDMWunitarityNLOp::THDMWunitarityNLOp(const StandardModel& SM_i, unsigned int index_i)
51: ThObservable(SM_i),myTHDMW(static_cast<const THDMW&> (SM_i))
52{
53 index = index_i;
54}
55
57{}
58
60{
61 if( index > 10 ) {
62 throw std::runtime_error("Index out of range in THDMWunitarityNLOp");
63 }
64
65 gslpp::complex a0 = myTHDMW.getMyTHDMWCache()->unitarityeigenvalues(index);
67
68 return ( a0 + a1.real() ).abs();
69}
70
71THDMWunitarityRp::THDMWunitarityRp(const StandardModel& SM_i, unsigned int index_i)
72: ThObservable(SM_i),myTHDMW(static_cast<const THDMW&> (SM_i))
73{
74 index = index_i;
75}
76
78{}
79
81{
82 if( index > 10 ) {
83 throw std::runtime_error("Index out of range in THDMWunitarityRp");
84 }
85
86 gslpp::complex a0 = myTHDMW.getMyTHDMWCache()->unitarityeigenvalues(index);
88 double Rpeps = myTHDMW.getMyTHDMWCache()->RpepsTHDMW;
89
90 double Rp = 0.01;
91 if(a0.abs()>Rpeps)
92 {
93 Rp = ( a1 / a0 ).abs();
94 }
95
96 return Rp;
97}
A model class for the Standard Model.
A base class for symmetric Two-Higgs-Doublet-Manohar-Wise models.
Definition: THDMW.h:233
THDMWcache * getMyTHDMWCache() const
A method get the THDMWCache.
Definition: THDMW.h:318
gslpp::vector< gslpp::complex > NLOunitarityeigenvalues
Definition: THDMWcache.h:223
double RpepsTHDMW
Definition: THDMWcache.h:221
gslpp::vector< gslpp::complex > unitarityeigenvalues
Definition: THDMWcache.h:222
unsigned int index
virtual ~THDMWunitarityLO()
Destructor.
THDMWunitarityLO(const StandardModel &SM_i, unsigned int index_i)
THDMWunitarityLO constructor.
const THDMW & myTHDMW
THDMWunitarityNLO(const StandardModel &SM_i, unsigned int index_i)
THDMWunitarityNLO constructor.
const THDMW & myTHDMW
unsigned int index
virtual ~THDMWunitarityNLO()
Destructor.
virtual ~THDMWunitarityNLOp()
Destructor.
const THDMW & myTHDMW
unsigned int index
THDMWunitarityNLOp(const StandardModel &SM_i, unsigned int index_i)
THDMWunitarityNLOp constructor.
const THDMW & myTHDMW
virtual ~THDMWunitarityRp()
Destructor.
THDMWunitarityRp(const StandardModel &SM_i, unsigned int index_i)
THDMWunitarityRp constructor.
unsigned int index
A class for a model prediction of an observable.
Definition: ThObservable.h:25