74 {
75
77
78
79
80
81 const int KIND = 0;
82 const int D1IND = 1;
83 const int D2IND = 2;
84
85
88
89
90
91 EvtParticle* theD = p->
getDaug( D1IND );
93
94
97
98
100 {
102
103
106
107
108
109 std::string name1;
110 std::string name2;
113
114 if ( name1 != "PTO3P" )
115 {
117 << "D daughters of EvtBtoKD3P decay must decay via the \"PTO3P\" model" << endl
118 << " but found to decay via " << name1.c_str() << " or " << name2.c_str()
119 << ". Will terminate execution!" << endl;
120 assert( 0 );
121 }
122
125
126 bool idMatch = true;
127 int d;
128 for ( d = 0; d < 2; ++d )
129 {
130 if ( daugs1[d] != daugs2[d] ) { idMatch = false; }
131 }
132 if ( false == idMatch )
133 {
135 << "D daughters of EvtBtoKD3P decay must decay to the same final state" << endl
136 << " particles in the same order (not CP-conjugate order)," << endl
137 << " but they were found to decay to" << endl;
138 for ( d = 0; d < model1->
getNDaug(); ++d )
141 for ( d = 0; d < model1->
getNDaug(); ++d )
143 report(
ERROR,
"" ) << endl <<
". Will terminate execution!" << endl;
144 assert( 0 );
145 }
146
147
148
151
152 }
153
154
156 {
158 << "D daughters of EvtBtoKD3P decay should have only 1 decay modes, " << endl
159 << " but a new decay mode was found after the first call" << endl
160 << " Will terminate execution!" << endl;
161 assert( 0 );
162 }
163
164
165
166
167
168
169 EvtPdfSum<EvtDalitzPoint>* pc1 = model1->
getPC();
170 EvtPdfSum<EvtDalitzPoint>* pc2 = model2->
getPC();
171 EvtPdfSum<EvtDalitzPoint> pc;
174
175
177
178
181 EvtComplex amp = amp1 + amp2 *
_r *
_exp;
182
183
184
185
188
189
191
192
194
196 {
198 <<
"Momentum vector size " <<
v.size() << endl
199 << " Terminating execution." << endl;
200 assert( 0 );
201 }
202
203
204 int i;
205 for ( i = 0; i < theD->
getNDaug(); ++i )
207}
ostream & report(Severity severity, const char *facility)
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
void vertex(const EvtComplex &)
void setProbMax(double prbmx)
double getProbMax(double prob)
bool _daugsDecayedByParentModel
static EvtDecayBase * getDecayFunc(EvtParticle *)
EvtComplex amplNonCP(const T &x)
static std::string name(EvtId i)
virtual void init(EvtId part_n, const EvtVector4R &p4)=0
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
void addTerm(double c, const EvtPdf< T > &pdf)
double evaluate(const T &p) const
void getName(std::string &model_name)
virtual std::vector< EvtVector4R > initDaughters(const EvtDalitzPoint &p) const