#include <EvtHypNonLepton.hh>
|
| EvtHypNonLepton () |
|
virtual | ~EvtHypNonLepton () |
|
void | getName (std::string &name) |
|
EvtDecayBase * | clone () |
|
void | decay (EvtParticle *p) |
|
void | init () |
|
void | initProbMax () |
|
void | calcAmp (EvtAmp *amp, EvtParticle *parent) |
|
void | makeDecay (EvtParticle *p) |
|
void | setWeight (double weight) |
|
void | vertex (const EvtComplex &) |
|
void | vertex (int i1, const EvtComplex &) |
|
void | vertex (int i1, int i2, const EvtComplex &) |
|
void | vertex (int i1, int i2, int i3, const EvtComplex &) |
|
void | vertex (int *i1, const EvtComplex &) |
|
virtual | ~EvtDecayAmp () |
|
virtual std::string | commandName () |
|
virtual void | command (std::string cmd) |
|
double | getProbMax (double prob) |
|
double | resetProbMax (double prob) |
|
| EvtDecayBase () |
|
virtual | ~EvtDecayBase () |
|
virtual bool | matchingDecay (const EvtDecayBase &other) const |
|
EvtId | getParentId () |
|
double | getBranchingFraction () |
|
void | disableCheckQ () |
|
void | checkQ () |
|
int | getNDaug () |
|
EvtId * | getDaugs () |
|
EvtId | getDaug (int i) |
|
int | getNArg () |
|
int | getPHOTOS () |
|
void | setPHOTOS () |
|
void | setVerbose () |
|
void | setSummary () |
|
double * | getArgs () |
|
std::string * | getArgsStr () |
|
double | getArg (int j) |
|
std::string | getArgStr (int j) |
|
std::string | getModelName () |
|
int | getDSum () |
|
int | summary () |
|
int | verbose () |
|
void | saveDecayInfo (EvtId ipar, int ndaug, EvtId *daug, int narg, std::vector< std::string > &args, std::string name, double brfr) |
|
void | printSummary () |
|
void | setProbMax (double prbmx) |
|
void | noProbMax () |
|
void | checkNArg (int a1, int a2=-1, int a3=-1, int a4=-1) |
|
void | checkNDaug (int d1, int d2=-1) |
|
void | checkSpinParent (EvtSpinType::spintype sp) |
|
void | checkSpinDaughter (int d1, EvtSpinType::spintype sp) |
|
virtual int | nRealDaughters () |
|
Definition at line 20 of file EvtHypNonLepton.hh.
◆ EvtHypNonLepton()
EvtHypNonLepton::EvtHypNonLepton |
( |
| ) |
|
|
inline |
◆ ~EvtHypNonLepton()
EvtHypNonLepton::~EvtHypNonLepton |
( |
| ) |
|
|
virtual |
◆ calcAmp()
Definition at line 129 of file EvtHypNonLepton.cc.
129 {
130
131 static long noTries=0;
132 int i;
134
135
136
137
138 for(i=0;i<4;i++){
139
141
143
144
145
146
148 }
149
150 if(m_noTries>0)
if(!((++noTries)%m_noTries))
report(
DEBUG,
"EvtGen") <<
" EvtHypNonLepton already finished " << noTries <<
" matrix element calculations" << std::endl;
151}
EvtComplex EvtLeptonSCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtComplex EvtLeptonPCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
ostream & report(Severity severity, const char *facility)
void vertex(const EvtComplex &)
virtual EvtDiracSpinor spParent(int) const
EvtParticle * getDaug(int i)
virtual EvtDiracSpinor sp(int) const
Referenced by decay().
◆ clone()
◆ decay()
◆ getName()
void EvtHypNonLepton::getName |
( |
std::string & | name | ) |
|
|
virtual |
◆ init()
void EvtHypNonLepton::init |
( |
| ) |
|
|
virtual |
Reimplemented from EvtDecayBase.
Definition at line 41 of file EvtHypNonLepton.cc.
41 {
42
44 report(
ERROR,
"EvtGen") <<
" ERROR: EvtHypNonLepton generator expected 2 or 3 arguments but found: " <<
getNArg() << std::endl;
45 report(
INFO ,
"EvtGen") <<
" 1. Decay asymmetry parameter - alpha" << std::endl;
46 report(
INFO ,
"EvtGen") <<
" 2. Parameter phi - in degrees (not radians)" << std::endl;
47 report(
INFO ,
"EvtGen") <<
" 3. Note on every x-th decay" << std::endl;
48 ::abort();
49 }
50
52 report(
ERROR,
"EvtGen") <<
" ERROR: EvtHypNonLepton generator expected 2 daughters but found: " <<
getNDaug() << std::endl;
53 ::abort();
54 }
55
56
59 ::abort();
60 }
63 ::abort();
64 }
67 ::abort();
68 }
69
70
74 else m_noTries = 0;
75
76
77 double p,M,m1,m2;
78 double p_to_s,beta,delta,gamma;
79
83
84 if(m1+m2>=M){
85 report(
ERROR,
"EvtGen") <<
" ERROR: EvtHypNonLepton found impossible decay: " << M <<
" --> " << m1 <<
" + " << m2 <<
" GeV\n" << std::endl;
86 ::abort();
87 }
88
89 p = sqrt(M*M-(m1+m2)*(m1+m2))*sqrt(M*M-(m1-m2)*(m1-m2))/2./M;
90
91 beta = sqrt(1.-m_alpha*m_alpha)*
sin(m_phi);
92 delta = -atan2(beta,m_alpha);
93 gamma = sqrt(1.-m_alpha*m_alpha-beta*beta);
94 p_to_s = sqrt((1.-gamma)/(1.+gamma));
95
97
98}
double sin(const BesAngle a)
double cos(const BesAngle a)
static EvtSpinType::spintype getSpinType(EvtId i)
static double getMass(EvtId i)
static int getSpin2(spintype stype)
◆ initProbMax()
void EvtHypNonLepton::initProbMax |
( |
| ) |
|
|
virtual |
Reimplemented from EvtDecayBase.
Definition at line 100 of file EvtHypNonLepton.cc.
100 {
101
102 double maxProb,m1,m2,M,p;
103
107
108 if(m1+m2>=M){
109 report(
ERROR,
"EvtGen") <<
" ERROR: EvtHypNonLepton found impossible decay: " << M <<
" --> " << m1 <<
" + " << m2 <<
" GeV\n" << std::endl;
110 ::abort();
111 }
112
113 p=sqrt(M*M-(m1+m2)*(m1+m2))*sqrt(M*M-(m1-m2)*(m1-m2))/2/M;
114 maxProb=16*M*(sqrt(p*p+m1*m1)+m1+
abs(m_B_to_A)*
abs(m_B_to_A)*(sqrt(p*p+m1*m1)-m1));
115
116
118 report(
INFO,
"EvtGen") <<
" EvtHypNonLepton set up maximum probability to " << maxProb << std::endl;
119
120}
double abs(const EvtComplex &c)
void setProbMax(double prbmx)
The documentation for this class was generated from the following files: