BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtPsi3Sdecay.hh
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2//
3// Environment:
4// This software is part of models developed at BES collaboration
5// based on the EvtGen framework. If you use all or part
6// of it, please give an appropriate acknowledgement.
7//
8// Copyright Information: See EvtGen/BesCopyright
9// Copyright (A) 2006 Ping Rong-Gang, Pang Cai-Ying@IHEP
10//
11// Module: EvtPsi3Sdecay.hh
12//
13// Description: Routine to re-select the psi(4040) decay according the .
14// measured xsection at different energy point, see CLEOc measurement:
15// PRD 80, 072001
16// Modification history:
17//
18// Ping R.-G. December, 2010 Module created
19//
20//------------------------------------------------------------------------
21#ifndef EVTPsi3Sdecay_HH
22#define EVTPsi3Sdecay_HH
23
28#include <stdlib.h>
29#include <string>
30#include <vector>
31using std::endl;
32
34public:
35 // constructor
36 EvtPsi3Sdecay( double ecms, EvtParticle* parent ) { // for 2-body decays
37 // initializer
38 Ecms = ecms;
39 theParent = parent;
40 Ndaugs = parent->getNDaug();
41 nsize = 32;
42
43 _excflag = 0;
44 x.clear();
45 // open charm cross section, see PRD 80, 072001, xs in unit pb.
46 double xx[32] = { 3.72968, 3.73922, 3.87180, 3.87987, 3.93660, 3.97, 3.99, 4.01, 4.01392,
47 4.015, 4.02052, 4.03, 4.06, 4.08040, 4.12, 4.14, 4.16, 4.17,
48 4.18, 4.2, 4.22420, 4.26, 4.30, 4.34, 4.38, 4.42, 4.46,
49 4.50, 4.54, 4.58, 4.62, 4.66 }; // 32 energy points
50 double y0[32] = { 0., 3, 51, 54, 74, 86, 133, 76, 23, 10, 139,
51 334, 410, 374, 303, 177, 167, 177, 179, 180, 142, 86,
52 31, 49, 65, 196, 52, 87, 166, 14, 33, 49 }; // 0) D0D0bar cross
53 // section
54 double y1[32] = { 0., 0., 81, 86, 118, 137, 90, 135, 57, 38, 101,
55 196, 480, 423, 310, 200, 200, 182, 197, 181, 146, 94,
56 108, 96, 154, 165, 171, 106, 27, 144, 36, 22 }; // 1) D+D-
57 double y2[32] = { 0., 0., 0., 713, 983, 1140, 1370, 1660, 1868, 1920, 1792,
58 1600, 1115, 976, 700, 675, 626, 636, 605, 515, 525, 540,
59 748, 880, 556, 657, 477, 494, 320, 616, 575, 373 }; // 2)D0D*0bar
60 double y3[32] = { 0., 0., 0., 713, 983, 1140, 1370, 1660, 1868, 1920, 1792,
61 1600, 1115, 976, 700, 675, 626, 636, 605, 515, 525, 540,
62 748, 880, 556, 657, 477, 494, 320, 616, 575, 373 }; // 3)D0bar D*0
63 double y4[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 213, 928,
64 2000, 2290, 2376, 2550, 2443, 2566, 2363, 2173, 1830, 1205, 269,
65 822, 1045, 1020, 820, 398, 588, 690, 459, 360, 398 }; // 4)D*0
66 // D*0bar
67 double y5[32] = { 0., 0., 0., 0, 962, 1115, 1375, 1650, 1810, 1851, 1770,
68 1650, 1085, 983, 780, 688, 688, 642, 648, 535, 525, 511,
69 748, 880, 556, 657, 477, 494, 320, 616, 575, 373 }; // 5)D*+D-
70 double y6[32] = { 0., 0., 0., 0, 962, 1115, 1375, 1650, 1810, 1851, 1770,
71 1650, 1085, 983, 780, 688, 688, 642, 648, 535, 525, 511,
72 748, 880, 556, 657, 477, 494, 320, 616, 575, 373 }; // 6)D*-D+
73 double y7[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
74 1400, 2390, 2353, 2280, 2556, 2479, 2357, 2145, 1564, 1033, 237,
75 822, 1045, 1020, 820, 398, 588, 690, 459, 360, 398 }; // 7)D*+D*-
76 double y8[32] = { 0., 0., 0., 0, 0, 102, 133, 269, 254, 250, 219,
77 174, 51, 42, 26, 25, 15, 34, 7, 15, 28, 47,
78 106, 70, 36, 10, 2, 28, 60, 60, 48, 36 }; // 8)Ds+ Ds-
79 double y9[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
80 0, 0, 0, 239, 342, 452.5, 458, 444.5, 406, 250, 17,
81 157, 184, 159, 178.5, 146, 85.5, 33, 51.5, 95, 136 }; // 9)Ds*+ Ds-
82 double y10[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
83 0, 0, 0, 239, 342, 452.5, 458, 444.5, 406, 250, 17,
84 157, 184, 159, 178.5, 146, 85.5, 33, 51.5, 95, 136 }; // 10)Ds*- Ds+
85 double y11[32] = {
86 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
87 0, 0, 0, 0, 0, 440, 398, 428, 310, 131, 0, 45, 126, 98, 39, 0 }; // 11)Ds*+
88 // Ds*-
89 double y12[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
90 0, 12, 9, 3.8, 32.4, 32.4, 37, 48, 61.2, 58, 53.6,
91 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 }; // 12)D*+ D- pi0
92 // //------ DD*
93 // pi----
94 double y13[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
95 0, 12, 9, 3.8, 32.4, 32.4, 37, 48, 61.2, 58, 53.6,
96 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 }; // 13)D*- D+ pi0
97 double y14[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
98 0, 24, 18, 7.5, 68.6, 64.8, 73.3, 95.8, 122.5, 116, 106.3,
99 98, 378, 650, 564, 167, 304, 359, 381, 497, 110 }; // 14)D*+
100 // anti-D0 pi-
101 double y15[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
102 0, 24, 18, 7.5, 68.6, 64.8, 73.3, 95.8, 122.5, 116, 106.3,
103 98, 378, 650, 564, 167, 304, 359, 381, 497, 110 }; // 15)D*- D0
104 // pi+
105 double y16[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
106 0, 24, 18, 7.5, 68.6, 64.8, 73.3, 95.8, 122.5, 116, 106.3,
107 98, 378, 650, 564, 167, 304, 359, 381, 497, 110 }; // 16)D+
108 // anti-D*0 pi-
109 double y17[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
110 0, 24, 18, 7.5, 68.6, 64.8, 73.3, 95.8, 122.5, 116, 106.3,
111 98, 378, 650, 564, 167, 304, 359, 381, 497, 110 }; // 17)D- D*0
112 // pi+
113 double y18[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
114 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53.6,
115 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 }; // 18) D*+ D*- pi0
116 // //------D*D*pi,
117 // above 4.26Gev,
118 // assumed xs as D*D
119 // pi
120 double y19[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
121 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107.3,
122 98, 378, 650, 564, 167, 304, 359, 381, 497, 110 }; // 19) anti-D*0 D*+
123 // pi-
124 double y20[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
125 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107.3,
126 98, 378, 650, 564, 167, 304, 359, 381, 497, 110 }; // 20) D*0 D*- pi+
127 double y21[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
128 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53.6,
129 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 }; // 21) D*0 D*0bar pi0
130 double y22[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
131 0, 12, 9, 3.8, 32.4, 32.4, 37, 48, 61.2, 58, 53.6,
132 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 }; // 22)D*0 D0bar pi0
133 // //------ DD*
134 // pi----
135 double y23[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
136 0, 12, 9, 3.8, 32.4, 32.4, 37, 48, 61.2, 58, 53.6,
137 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 }; // 23)D*bar D0 pi0
138 d0d0bar.clear();
139 dpdm.clear();
140 d0dst0bar.clear();
141 dst0dst0bar.clear();
142 d0bardst0.clear();
143 dstpdm.clear();
144 dstmdp.clear();
145 dstpdstm.clear();
146 dspdsm.clear();
147 dsspdsm.clear();
148 dssmdsp.clear();
149 dsspdssm.clear();
150 xs12.clear();
151 xs13.clear();
152 xs14.clear();
153 xs15.clear();
154 xs16.clear();
155 xs17.clear();
156 xs18.clear();
157 xs19.clear();
158 xs20.clear();
159 xs21.clear();
160 xs22.clear();
161 xs23.clear();
162
163 for ( int i = 0; i < 32; i++ )
164 {
165 x.push_back( xx[i] );
166 d0d0bar.push_back( y0[i] );
167 dpdm.push_back( y1[i] );
168 d0dst0bar.push_back( y2[i] );
169 d0bardst0.push_back( y3[i] );
170 dst0dst0bar.push_back( y4[i] );
171 dstpdm.push_back( y5[i] );
172 dstmdp.push_back( y6[i] );
173 dstpdstm.push_back( y7[i] );
174 dspdsm.push_back( y8[i] );
175 dsspdsm.push_back( y9[i] );
176 dssmdsp.push_back( y10[i] );
177 dsspdssm.push_back( y11[i] );
178 xs12.push_back( y12[i] );
179 xs13.push_back( y13[i] );
180 xs14.push_back( y14[i] );
181 xs15.push_back( y15[i] );
182 xs16.push_back( y16[i] );
183 xs17.push_back( y17[i] );
184 xs18.push_back( y18[i] );
185 xs19.push_back( y19[i] );
186 xs20.push_back( y20[i] );
187 xs21.push_back( y21[i] );
188 xs22.push_back( y22[i] );
189 xs23.push_back( y23[i] );
190 }
191 }
192
193 //---
194 EvtPsi3Sdecay() { // for 2-body and 3-body decays
195 // initializer
196 // Ecms = ecms;
197 nsize = 32;
198
199 x.clear();
200 // open charm cross section, see PRD 80, 072001, xross section in pb
201 double xx[32] = { 3.72968, 3.73922, 3.87180, 3.87987, 3.93660, 3.97, 3.99, 4.01, 4.01392,
202 4.015, 4.02052, 4.03, 4.06, 4.08040, 4.12, 4.14, 4.16, 4.17,
203 4.18, 4.2, 4.22420, 4.26, 4.30, 4.34, 4.38, 4.42, 4.46,
204 4.50, 4.54, 4.58, 4.62, 4.66 }; // 32 energy points
205 double y0[32] = { 0., 3, 51, 54, 74, 86, 133, 76, 23, 10, 139,
206 334, 410, 374, 303, 177, 167, 177, 179, 180, 142, 86,
207 31, 49, 65, 196, 52, 87, 166, 14, 33, 49 }; // 0) D0D0bar cross
208 // section
209 double y1[32] = { 0., 0., 81, 86, 118, 137, 90, 135, 57, 38, 101,
210 196, 480, 423, 310, 200, 200, 182, 197, 181, 146, 94,
211 108, 96, 154, 165, 171, 106, 27, 144, 36, 22 }; // 1) D+D-
212 double y2[32] = { 0., 0., 0., 713, 983, 1140, 1370, 1660, 1868, 1920, 1792,
213 1600, 1115, 976, 700, 675, 626, 636, 605, 515, 525, 540,
214 748, 880, 556, 657, 477, 494, 320, 616, 575, 373 }; // 2)D0D*0bar
215 double y3[32] = { 0., 0., 0., 713, 983, 1140, 1370, 1660, 1868, 1920, 1792,
216 1600, 1115, 976, 700, 675, 626, 636, 605, 515, 525, 540,
217 748, 880, 556, 657, 477, 494, 320, 616, 575, 373 }; // 3)D0bar D*0
218 double y4[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 213, 928,
219 2000, 2290, 2376, 2550, 2443, 2566, 2363, 2173, 1830, 1205, 269,
220 822, 1045, 1020, 820, 398, 588, 690, 459, 360, 398 }; // 4)D*0
221 // D*0bar
222 double y5[32] = { 0., 0., 0., 0, 962, 1115, 1375, 1650, 1810, 1851, 1770,
223 1650, 1085, 983, 780, 688, 688, 642, 648, 535, 525, 511,
224 748, 880, 556, 657, 477, 494, 320, 616, 575, 373 }; // 5)D*+D-
225 double y6[32] = { 0., 0., 0., 0, 962, 1115, 1375, 1650, 1810, 1851, 1770,
226 1650, 1085, 983, 780, 688, 688, 642, 648, 535, 525, 511,
227 748, 880, 556, 657, 477, 494, 320, 616, 575, 373 }; // 6)D*-D+
228 double y7[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
229 1400, 2390, 2353, 2280, 2556, 2479, 2357, 2145, 1564, 1033, 237,
230 822, 1045, 1020, 820, 398, 588, 690, 459, 360, 398 }; // 7)D*+D*-
231 double y8[32] = { 0., 0., 0., 0, 0, 102, 133, 269, 254, 250, 219,
232 174, 51, 42, 26, 25, 15, 34, 7, 15, 28, 47,
233 106, 70, 36, 10, 2, 28, 60, 60, 48, 36 }; // 8)Ds+ Ds-
234 double y9[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
235 0, 0, 0, 239, 342, 452.5, 458, 444.5, 406, 250, 17,
236 157, 184, 159, 178.5, 146, 85.5, 33, 51.5, 95, 136 }; // 9)Ds*+ Ds-
237 double y10[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
238 0, 0, 0, 239, 342, 452.5, 458, 444.5, 406, 250, 17,
239 157, 184, 159, 178.5, 146, 85.5, 33, 51.5, 95, 136 }; // 10)Ds*- Ds+
240 double y11[32] = {
241 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
242 0, 0, 0, 0, 0, 440, 398, 428, 310, 131, 0, 45, 126, 98, 39, 0 }; // 11)Ds*+
243 // Ds*-
244 double y12[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
245 0, 12, 9, 3.8, 32.4, 32.4, 37, 48, 61.2, 58, 53.6,
246 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 }; // 12)D*+ D- pi0
247 // //------ DD*
248 // pi----
249 double y13[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
250 0, 12, 9, 3.8, 32.4, 32.4, 37, 48, 61.2, 58, 53.6,
251 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 }; // 13)D*- D+ pi0
252 double y14[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
253 0, 24, 18, 7.5, 68.6, 64.8, 73.3, 95.8, 122.5, 116, 106.3,
254 98, 378, 650, 564, 167, 304, 359, 381, 497, 110 }; // 14)D*+
255 // anti-D0 pi-
256 double y15[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
257 0, 24, 18, 7.5, 68.6, 64.8, 73.3, 95.8, 122.5, 116, 106.3,
258 98, 378, 650, 564, 167, 304, 359, 381, 497, 110 }; // 15)D*- D0
259 // pi+
260 double y16[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
261 0, 24, 18, 7.5, 68.6, 64.8, 73.3, 95.8, 122.5, 116, 106.3,
262 98, 378, 650, 564, 167, 304, 359, 381, 497, 110 }; // 16)D+
263 // anti-D*0 pi-
264 double y17[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
265 0, 24, 18, 7.5, 68.6, 64.8, 73.3, 95.8, 122.5, 116, 106.3,
266 98, 378, 650, 564, 167, 304, 359, 381, 497, 110 }; // 17)D- D*0
267 // pi+
268 double y18[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53.6,
270 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 }; // 18) D*+ D*- pi0
271 // //------D*D*pi,
272 // above 4.26Gev,
273 // assumed xs as D*D
274 // pi
275 double y19[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107.3,
277 98, 378, 650, 564, 167, 304, 359, 381, 497, 110 }; // 19) anti-D*0 D*+
278 // pi-
279 double y20[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
280 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107.3,
281 98, 378, 650, 564, 167, 304, 359, 381, 497, 110 }; // 20) D*0 D*- pi+
282 double y21[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
283 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53.6,
284 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 }; // 21) D*0 D*0bar pi0
285 double y22[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
286 0, 12, 9, 3.8, 32.4, 32.4, 37, 48, 61.2, 58, 53.6,
287 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 }; // 22)D*0 D0bar pi0
288 // //------ DD*
289 // pi----
290 double y23[32] = { 0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0,
291 0, 12, 9, 3.8, 32.4, 32.4, 37, 48, 61.2, 58, 53.6,
292 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 }; // 23)D*bar D0 pi0
293 d0d0bar.clear();
294 dpdm.clear();
295 d0dst0bar.clear();
296 dst0dst0bar.clear();
297 d0bardst0.clear();
298 dstpdm.clear();
299 dstmdp.clear();
300 dstpdstm.clear();
301 dspdsm.clear();
302 dsspdsm.clear();
303 dssmdsp.clear();
304 dsspdssm.clear();
305 xs12.clear();
306 xs13.clear();
307 xs14.clear();
308 xs15.clear();
309 xs16.clear();
310 xs17.clear();
311 xs18.clear();
312 xs19.clear();
313 xs20.clear();
314 xs21.clear();
315 xs22.clear();
316 xs23.clear();
317 for ( int i = 0; i < 32; i++ )
318 {
319 x.push_back( xx[i] );
320 d0d0bar.push_back( y0[i] );
321 dpdm.push_back( y1[i] );
322 d0dst0bar.push_back( y2[i] );
323 d0bardst0.push_back( y3[i] );
324 dst0dst0bar.push_back( y4[i] );
325 dstpdm.push_back( y5[i] );
326 dstmdp.push_back( y6[i] );
327 dstpdstm.push_back( y7[i] );
328 dspdsm.push_back( y8[i] );
329 dsspdsm.push_back( y9[i] );
330 dssmdsp.push_back( y10[i] );
331 dsspdssm.push_back( y11[i] );
332 xs12.push_back( y12[i] );
333 xs13.push_back( y13[i] );
334 xs14.push_back( y14[i] );
335 xs15.push_back( y15[i] );
336 xs16.push_back( y16[i] );
337 xs17.push_back( y17[i] );
338 xs18.push_back( y18[i] );
339 xs19.push_back( y19[i] );
340 xs20.push_back( y20[i] );
341 xs21.push_back( y21[i] );
342 xs22.push_back( y22[i] );
343 xs23.push_back( y23[i] );
344 }
345
346 //---- initilize Vmode
347
348 VmodeSon.clear();
349 // 0: D0 anti-D0
350 Vson.clear();
351 Vson.push_back( "D0" );
352 Vson.push_back( "anti-D0" );
353 VmodeSon.push_back( Vson );
354
355 // 1: D+ D-
356 Vson.clear();
357 Vson.push_back( "D+" );
358 Vson.push_back( "D-" );
359 VmodeSon.push_back( Vson );
360
361 // 2: D0 anti-D*0
362 Vson.clear();
363 Vson.push_back( "D0" );
364 Vson.push_back( "anti-D*0" );
365 VmodeSon.push_back( Vson );
366
367 // 3: anti-D0 D*0
368 Vson.clear();
369 Vson.push_back( "anti-D0" );
370 Vson.push_back( "D*0" );
371 VmodeSon.push_back( Vson );
372
373 // 4: D*0 anti-D*0
374 Vson.clear();
375 Vson.push_back( "D*0" );
376 Vson.push_back( "anti-D*0" );
377 VmodeSon.push_back( Vson );
378
379 // 5: D*+ D-
380 Vson.clear();
381 Vson.push_back( "D*+" );
382 Vson.push_back( "D-" );
383 VmodeSon.push_back( Vson );
384
385 // 6: D*- D+
386 Vson.clear();
387 Vson.push_back( "D*-" );
388 Vson.push_back( "D+" );
389 VmodeSon.push_back( Vson );
390
391 // 7: D*+ D*-
392 Vson.clear();
393 Vson.push_back( "D*+" );
394 Vson.push_back( "D*-" );
395 VmodeSon.push_back( Vson );
396
397 // 8: D_s+ D_s-
398 Vson.clear();
399 Vson.push_back( "D_s+" );
400 Vson.push_back( "D_s-" );
401 VmodeSon.push_back( Vson );
402
403 // 9: D_s*+ D_s-
404 Vson.clear();
405 Vson.push_back( "D_s*+" );
406 Vson.push_back( "D_s-" );
407 VmodeSon.push_back( Vson );
408
409 // 10: D_s*- D_s+
410 Vson.clear();
411 Vson.push_back( "D_s*-" );
412 Vson.push_back( "D_s+" );
413 VmodeSon.push_back( Vson );
414
415 // 11: D_s*+ D_s*-
416 Vson.clear();
417 Vson.push_back( "D_s*+" );
418 Vson.push_back( "D_s*-" );
419 VmodeSon.push_back( Vson );
420
421 // 12: D*+ D- pi0
422 Vson.clear();
423 Vson.push_back( "D*+" );
424 Vson.push_back( "D-" );
425 Vson.push_back( "pi0" );
426 VmodeSon.push_back( Vson );
427
428 // 13: D*- D+ pi0
429 Vson.clear();
430 Vson.push_back( "D*-" );
431 Vson.push_back( "D+" );
432 Vson.push_back( "pi0" );
433 VmodeSon.push_back( Vson );
434
435 // 14: D*+ anti-D0 pi-
436 Vson.clear();
437 Vson.push_back( "D*+" );
438 Vson.push_back( "anti-D0" );
439 Vson.push_back( "pi-" );
440 VmodeSon.push_back( Vson );
441
442 // 15: D*- D0 pi+
443 Vson.clear();
444 Vson.push_back( "D*-" );
445 Vson.push_back( "D0" );
446 Vson.push_back( "pi+" );
447 VmodeSon.push_back( Vson );
448
449 // 16: D+ anti-D*0 pi-
450 Vson.clear();
451 Vson.push_back( "D+" );
452 Vson.push_back( "anti-D*0" );
453 Vson.push_back( "pi-" );
454 VmodeSon.push_back( Vson );
455
456 // 17: D- D*0 pi+
457 Vson.clear();
458 Vson.push_back( "D-" );
459 Vson.push_back( "D*0" );
460 Vson.push_back( "pi+" );
461 VmodeSon.push_back( Vson );
462
463 // 18: D*+ D*- pi0
464 Vson.clear();
465 Vson.push_back( "D*+" );
466 Vson.push_back( "D*-" );
467 Vson.push_back( "pi0" );
468 VmodeSon.push_back( Vson );
469
470 // 19: anti-D*0 D*+ pi-
471 Vson.clear();
472 Vson.push_back( "anti-D*0" );
473 Vson.push_back( "D*+" );
474 Vson.push_back( "pi-" );
475 VmodeSon.push_back( Vson );
476
477 // 20: D*0 D*- pi+
478 Vson.clear();
479 Vson.push_back( "D*0" );
480 Vson.push_back( "D*-" );
481 Vson.push_back( "pi+" );
482 VmodeSon.push_back( Vson );
483
484 // 21: D*0 D*0bar pi0
485 Vson.clear();
486 Vson.push_back( "D*0" );
487 Vson.push_back( "anti-D*0" );
488 Vson.push_back( "pi0" );
489 VmodeSon.push_back( Vson );
490
491 // 22: D0bar D*0 pi0
492 Vson.clear();
493 Vson.push_back( "anti-D0" );
494 Vson.push_back( "D*0" );
495 Vson.push_back( "pi0" );
496 VmodeSon.push_back( Vson );
497
498 // 23: D*0bar D0 pi0
499 Vson.clear();
500 Vson.push_back( "anti-D*0" );
501 Vson.push_back( "D0" );
502 Vson.push_back( "pi0" );
503 VmodeSon.push_back( Vson );
504 }
505
506 // destructor
507 virtual ~EvtPsi3Sdecay() {}
508
509 int findPoints(); // return the lower size at the end of the segment containing Ecms points
510 double polint( std::vector<double> points );
511 bool choseDecay(); // determing accept or reject a generated decay
513 int getDecay( double ecms ); // determing accept or reject a generated decay
514 double theProb( std::vector<double> myxs, int ich );
515 int findMode();
516 int getMode() { return _themode; };
517 std::vector<EvtId> getVId( int mode );
518
519 void PHSPDecay( EvtParticle* par );
520 std::vector<EvtId> getDaugId() { return Vid; }
521 std::vector<EvtVector4R> getDaugP4() { return v_p4; }
522 bool AngSam( EvtVector4R parent_p4cm, EvtVector4R son_p4cm, double alpha );
523 void setMode( int m ) {
524 if ( m < 0 || m > 32 )
525 {
526 std::cout << "EvtPsi3Decay::setMode: bad mode" << std::endl;
527 abort();
528 }
529 _themode = m;
530 _excflag = 1;
531 }
532
533private:
534 double Ecms;
535 EvtParticle* theParent;
536 EvtId* Daughters;
537 int Ndaugs;
538 std::vector<double> x;
539 std::vector<double> d0d0bar; // 0)
540 std::vector<double> dpdm; // 1)
541 std::vector<double> d0dst0bar; // 2)
542 std::vector<double> d0bardst0; // 3)
543 std::vector<double> dst0dst0bar; // 4)
544 std::vector<double> dstpdm; // 5)
545 std::vector<double> dstmdp; // 6)
546 std::vector<double> dstpdstm; // 7)
547 std::vector<double> dspdsm; // 8)
548 std::vector<double> dsspdsm; // 9)
549 std::vector<double> dssmdsp; // 10)
550 std::vector<double> dsspdssm; // 11)
551 std::vector<double> xs12; // 12)
552 std::vector<double> xs13; // 13)
553 std::vector<double> xs14; // 14)
554 std::vector<double> xs15; // 15)
555 std::vector<double> xs16; // 16)
556 std::vector<double> xs17; // 17)
557 std::vector<double> xs18; // 18)
558 std::vector<double> xs19; // 19)
559 std::vector<double> xs20; // 20)
560 std::vector<double> xs21; // 21)
561 std::vector<double> xs22; // 22)
562 std::vector<double> xs23; // 23)
563
564 int nsize; // the simze of the energy points
565 double theXsection[50];
566 int theLocation;
567 std::vector<std::string> Vson;
568 std::vector<EvtId> Vid;
569
570 std::vector<std::vector<std::string>> VmodeSon;
571 std::vector<std::vector<EvtId>> VmodeId;
572 int _themode, _excflag;
573 //
574 std::vector<EvtVector4R> v_p4;
575 static int psi3Scount;
576};
577
578#endif
double alpha
Definition EvtId.hh:27
int getNDaug() const
virtual ~EvtPsi3Sdecay()
int getDecay(double ecms)
double theProb(std::vector< double > myxs, int ich)
void PHSPDecay(EvtParticle *par)
bool AngSam(EvtVector4R parent_p4cm, EvtVector4R son_p4cm, double alpha)
std::vector< EvtId > getVId(int mode)
void setMode(int m)
double polint(std::vector< double > points)
EvtPsi3Sdecay(double ecms, EvtParticle *parent)
std::vector< EvtVector4R > getDaugP4()
std::vector< EvtId > getDaugId()
const double ecms
Definition inclkstar.cxx:26