69 {
70
71
72
73 double power=1;
75
88
91 double L=2.0*log(
w/0.000511);
94
96
97
100 double minResMass = md1+md2;
103 minResMass = minResMass + md3;
104 }
105
106
107 double pgmax=(
s-minResMass*minResMass)/(2.0*
w);
110
111 double k=fabs(pgz);
112
113
115
117
118 double mres=p4res.
mass();
119
120
123
124
125
126
127
128
130 if (mres<=3.9)
sigma = 0.00001;
131
132 bool sigmacomputed(false);
133
134
140 if(mres>4.18) {
141 sigma*=5./9.*(1.-1.*sqrt((4.18-mres)*(4.18-mres))/(4.3-4.18));
142 }
143 else if(mres>4.07 && mres<=4.18) {
145 }
146 else if (mres<=4.07&&mres>4.03)
147 {
148 sigma*=(5./9. - 1.5/9.*sqrt((4.07-mres)*(4.07-mres))/(4.07-4.03));
149 }
150 else if (mres<=4.03&& mres>=4.013)
151 {
152 sigma*=(3.5/9. - 3.5/9.*sqrt((4.03-mres)*(4.03-mres))/(4.03-4.013));
153 }
154 else{
156 }
157 sigmacomputed = true;
158
159 }
160
161
170 {
171 if(mres>=4.2){
173 }
174 else if( mres>4.06 && mres<4.2){
175 sigma*=((1.5/9.+2.5/9.*sqrt((4.2-mres)*(4.2-mres))/(4.2-4.06)));
176 }
177 else if(mres>=4.015 && mres<4.06){
178 sigma*=((4./9.+3./9.*sqrt((4.06-mres)*(4.06-mres))/(4.06-4.015)));
179 }
180 else if (mres<4.015 && mres>=3.9){
181 sigma*=((7./9.-7/9.*sqrt((4.015-mres)*(4.015-mres))/(4.015-3.9)));
182 }
183 else {
185 }
186 sigmacomputed = true;
187
188 }
189
190
192 {
193 if(mres>(2.112+2.112)){
195 }
196 else {
197
198
200 }
201 sigmacomputed = true;
202
203 }
204
205
210 {
211 if(mres>4.26){
213 }
214 else if (mres>4.18 && mres<=4.26){
215 sigma*=1./9.*(0.05+0.95*sqrt((4.26-mres)*(4.26-mres))/(4.26-4.18));
216 }
217 else if (mres>4.16 && mres<=4.18){
219 }
220 else if (mres<=4.16 && mres>4.08){
221 sigma*=1/9.*(1-sqrt((4.16-mres)*(4.16-mres))/(4.16-4.08));
222 }
223 else if (mres<=(4.08)){
225 }
226 sigmacomputed = true;
227
228 }
229
230
236 sigmacomputed = true;
237
238 }
239
240
243 sigmacomputed = true;
244
245 }
246
247
249 if(mres>4.03){
251 }
252 else {
254 }
255 sigmacomputed = true;
256
257 }
258
259 if (! sigmacomputed) {
260 report(
ERROR,
"EvtGen") <<
"VPHOTOVISRHI: This model requires daughters to be listed in a particular order." << endl
261 << "The following are acceptable:" << endl
262 << "D0 anti-D0" << endl
263 << "D+ D-" << endl
264 << "D*0 anti-D0" << endl
265 << "anti-D*0 D0" << endl
266 << "D*+ D-" << endl
267 << "D*- D+" << endl
268 << "D*0 anti-D*0" << endl
269 << "D*+ D*-" << endl
270 << "D_s+ D_s-" << endl
271 << "D_s*+ D_s-" << endl
272 << "D_s*- D_s+" << endl
273 << "D_s*+ D_s*-" << endl
274 << "(D* D pi can be in any order)" << endl
275 << "Aborting..." << endl;
276 assert(0);
277 }
278
280
281
282
283
284
285
287
289
290
291
292
293
294
295 double norm=sqrt(
sigma);
296
297
298
299
303
307
311
315
319
323
324 return;
325}
EvtComplex exp(const EvtComplex &c)
ostream & report(Severity severity, const char *facility)
DOUBLE_PRECISION count[3]
void vertex(const EvtComplex &)
static double getMeanMass(EvtId i)
static EvtId getId(const std::string &name)
virtual EvtVector4C epsParent(int i) const
virtual void init(EvtId part_n, const EvtVector4R &p4)=0
EvtVector4R getP4Restframe()
EvtParticle * getDaug(int i)
virtual EvtVector4C eps(int i) const