21#ifndef EVTPsi3Sdecay_HH
22#define EVTPsi3Sdecay_HH
24#include "EvtGenBase/EvtParticle.hh"
25#include "EvtGenBase/EvtId.hh"
26#include "EvtGenBase/EvtPDL.hh"
27#include "EvtGenBase/EvtPolInt.hh"
46 double xx[32]={3.72968, 3.73922, 3.87180, 3.87987, 3.93660, 3.97, 3.99, 4.01, 4.01392, 4.015, 4.02052, 4.03, 4.06, 4.08040, 4.12, 4.14, 4.16, 4.17, 4.18, 4.2, 4.22420, 4.26, 4.30, 4.34, 4.38, 4.42, 4.46, 4.50, 4.54, 4.58, 4.62, 4.66 };
47 double y0[32]={0., 3 , 51, 54, 74, 86, 133, 76, 23, 10, 139, 334, 410, 374, 303, 177, 167, 177, 179, 180, 142, 86, 31, 49, 65, 196, 52, 87, 166, 14, 33, 49};
48 double y1[32]={0., 0., 81, 86, 118, 137, 90, 135, 57, 38, 101, 196, 480, 423, 310, 200, 200, 182, 197, 181, 146, 94, 108, 96, 154, 165, 171, 106, 27, 144, 36, 22};
49 double y2[32]={0., 0., 0., 713, 983, 1140, 1370, 1660, 1868, 1920, 1792, 1600, 1115, 976, 700, 675, 626, 636, 605, 515, 525, 540, 748, 880, 556, 657, 477, 494, 320, 616, 575, 373};
50 double y3[32]={0., 0., 0., 713, 983, 1140, 1370, 1660, 1868, 1920, 1792, 1600, 1115, 976, 700, 675, 626, 636, 605, 515, 525, 540, 748, 880, 556, 657, 477, 494, 320, 616, 575, 373};
51 double y4[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 213, 928, 2000, 2290, 2376, 2550, 2443, 2566, 2363, 2173, 1830, 1205, 269, 822, 1045, 1020, 820, 398, 588, 690, 459, 360, 398};
52 double y5[32]={0., 0., 0., 0, 962, 1115, 1375, 1650, 1810, 1851, 1770, 1650, 1085, 983, 780, 688, 688, 642, 648, 535, 525, 511, 748, 880, 556, 657, 477, 494, 320, 616, 575, 373};
53 double y6[32]={0., 0., 0., 0, 962, 1115, 1375, 1650, 1810, 1851, 1770, 1650, 1085, 983, 780, 688, 688, 642, 648, 535, 525, 511, 748, 880, 556, 657, 477, 494, 320, 616, 575, 373};
54 double y7[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 1400, 2390, 2353, 2280, 2556, 2479, 2357, 2145, 1564, 1033, 237, 822, 1045, 1020, 820, 398, 588, 690, 459, 360, 398};
55 double y8[32]={0., 0., 0., 0, 0, 102, 133, 269, 254, 250, 219, 174, 51, 42, 26, 25, 15, 34, 7, 15, 28, 47, 106, 70, 36, 10, 2, 28, 60, 60, 48, 36};
56 double y9[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 239, 342, 452.5,458, 444.5,406, 250, 17, 157, 184, 159, 178.5,146, 85.5, 33, 51.5, 95, 136};
57 double y10[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 239, 342, 452.5,458, 444.5,406, 250, 17, 157, 184, 159, 178.5,146, 85.5, 33, 51.5, 95, 136};
58 double y11[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 440, 398, 428, 310, 131, 0, 45, 126, 98, 39, 0};
59 double y12[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 3.8, 32.4, 32.4, 37, 48, 61.2, 58, 53.6, 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 };
60 double y13[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 3.8, 32.4, 32.4, 37, 48, 61.2, 58, 53.6, 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 };
61 double y14[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 18, 7.5, 68.6, 64.8, 73.3, 95.8, 122.5,116, 106.3,98, 378, 650, 564, 167, 304, 359, 381, 497, 110};
62 double y15[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 18, 7.5, 68.6, 64.8, 73.3, 95.8, 122.5,116, 106.3,98, 378, 650, 564, 167, 304, 359, 381, 497, 110};
63 double y16[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 18, 7.5, 68.6, 64.8, 73.3, 95.8, 122.5,116, 106.3,98, 378, 650, 564, 167, 304, 359, 381, 497, 110};
64 double y17[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 18, 7.5, 68.6, 64.8, 73.3, 95.8, 122.5,116, 106.3,98, 378, 650, 564, 167, 304, 359, 381, 497, 110};
65 double y18[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53.6, 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 };
66 double y19[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107.3,98, 378, 650, 564, 167, 304, 359, 381, 497, 110 };
67 double y20[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107.3,98, 378, 650, 564, 167, 304, 359, 381, 497, 110 };
68 double y21[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53.6, 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 };
69 double y22[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 3.8, 32.4, 32.4, 37, 48, 61.2, 58, 53.6, 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 };
70 double y23[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 3.8, 32.4, 32.4, 37, 48, 61.2, 58, 53.6, 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 };
96 for(
int i=0;i<32;i++){
98 d0d0bar.push_back(y0[i]);
99 dpdm.push_back(y1[i]);
100 d0dst0bar.push_back(y2[i]);
101 d0bardst0.push_back(y3[i]);
102 dst0dst0bar.push_back(y4[i]);
103 dstpdm.push_back( y5[i]);
104 dstmdp.push_back( y6[i]);
105 dstpdstm.push_back(y7[i]);
106 dspdsm.push_back( y8[i]);
107 dsspdsm.push_back( y9[i]);
108 dssmdsp.push_back( y10[i]);
109 dsspdssm.push_back( y11[i]);
110 xs12.push_back( y12[i] );
111 xs13.push_back( y13[i] );
112 xs14.push_back( y14[i] );
113 xs15.push_back( y15[i] );
114 xs16.push_back( y16[i] );
115 xs17.push_back( y17[i] );
116 xs18.push_back( y18[i] );
117 xs19.push_back( y19[i] );
118 xs20.push_back( y20[i] );
119 xs21.push_back( y21[i] );
120 xs22.push_back( y22[i] );
121 xs23.push_back( y23[i] );
133 double xx[32]={3.72968, 3.73922, 3.87180, 3.87987, 3.93660, 3.97, 3.99, 4.01, 4.01392, 4.015, 4.02052, 4.03, 4.06, 4.08040, 4.12, 4.14, 4.16, 4.17, 4.18, 4.2, 4.22420, 4.26, 4.30, 4.34, 4.38, 4.42, 4.46, 4.50, 4.54, 4.58, 4.62, 4.66 };
134 double y0[32]={0., 3 , 51, 54, 74, 86, 133, 76, 23, 10, 139, 334, 410, 374, 303, 177, 167, 177, 179, 180, 142, 86, 31, 49, 65, 196, 52, 87, 166, 14, 33, 49};
135 double y1[32]={0., 0., 81, 86, 118, 137, 90, 135, 57, 38, 101, 196, 480, 423, 310, 200, 200, 182, 197, 181, 146, 94, 108, 96, 154, 165, 171, 106, 27, 144, 36, 22};
136 double y2[32]={0., 0., 0., 713, 983, 1140, 1370, 1660, 1868, 1920, 1792, 1600, 1115, 976, 700, 675, 626, 636, 605, 515, 525, 540, 748, 880, 556, 657, 477, 494, 320, 616, 575, 373};
137 double y3[32]={0., 0., 0., 713, 983, 1140, 1370, 1660, 1868, 1920, 1792, 1600, 1115, 976, 700, 675, 626, 636, 605, 515, 525, 540, 748, 880, 556, 657, 477, 494, 320, 616, 575, 373};
138 double y4[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 213, 928, 2000, 2290, 2376, 2550, 2443, 2566, 2363, 2173, 1830, 1205, 269, 822, 1045, 1020, 820, 398, 588, 690, 459, 360, 398};
139 double y5[32]={0., 0., 0., 0, 962, 1115, 1375, 1650, 1810, 1851, 1770, 1650, 1085, 983, 780, 688, 688, 642, 648, 535, 525, 511, 748, 880, 556, 657, 477, 494, 320, 616, 575, 373};
140 double y6[32]={0., 0., 0., 0, 962, 1115, 1375, 1650, 1810, 1851, 1770, 1650, 1085, 983, 780, 688, 688, 642, 648, 535, 525, 511, 748, 880, 556, 657, 477, 494, 320, 616, 575, 373};
141 double y7[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 1400, 2390, 2353, 2280, 2556, 2479, 2357, 2145, 1564, 1033, 237, 822, 1045, 1020, 820, 398, 588, 690, 459, 360, 398};
142 double y8[32]={0., 0., 0., 0, 0, 102, 133, 269, 254, 250, 219, 174, 51, 42, 26, 25, 15, 34, 7, 15, 28, 47, 106, 70, 36, 10, 2, 28, 60, 60, 48, 36};
143 double y9[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 239, 342, 452.5,458, 444.5,406, 250, 17, 157, 184, 159, 178.5,146, 85.5, 33, 51.5, 95, 136};
144 double y10[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 239, 342, 452.5,458, 444.5,406, 250, 17, 157, 184, 159, 178.5,146, 85.5, 33, 51.5, 95, 136};
145 double y11[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 440, 398, 428, 310, 131, 0, 45, 126, 98, 39, 0};
146 double y12[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 3.8, 32.4, 32.4, 37, 48, 61.2, 58, 53.6, 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 };
147 double y13[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 3.8, 32.4, 32.4, 37, 48, 61.2, 58, 53.6, 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 };
148 double y14[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 18, 7.5, 68.6, 64.8, 73.3, 95.8, 122.5,116, 106.3,98, 378, 650, 564, 167, 304, 359, 381, 497, 110};
149 double y15[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 18, 7.5, 68.6, 64.8, 73.3, 95.8, 122.5,116, 106.3,98, 378, 650, 564, 167, 304, 359, 381, 497, 110};
150 double y16[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 18, 7.5, 68.6, 64.8, 73.3, 95.8, 122.5,116, 106.3,98, 378, 650, 564, 167, 304, 359, 381, 497, 110};
151 double y17[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 18, 7.5, 68.6, 64.8, 73.3, 95.8, 122.5,116, 106.3,98, 378, 650, 564, 167, 304, 359, 381, 497, 110};
152 double y18[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53.6, 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 };
153 double y19[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107.3,98, 378, 650, 564, 167, 304, 359, 381, 497, 110 };
154 double y20[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107.3,98, 378, 650, 564, 167, 304, 359, 381, 497, 110 };
155 double y21[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53.6, 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 };
156 double y22[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 3.8, 32.4, 32.4, 37, 48, 61.2, 58, 53.6, 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 };
157 double y23[32]={0., 0., 0., 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 3.8, 32.4, 32.4, 37, 48, 61.2, 58, 53.6, 49, 169, 325, 282, 83.5, 152, 179, 190, 248, 55 };
182 for(
int i=0;i<32;i++){
184 d0d0bar.push_back(y0[i]);
185 dpdm.push_back(y1[i]);
186 d0dst0bar.push_back(y2[i]);
187 d0bardst0.push_back(y3[i]);
188 dst0dst0bar.push_back(y4[i]);
189 dstpdm.push_back( y5[i]);
190 dstmdp.push_back( y6[i]);
191 dstpdstm.push_back(y7[i]);
192 dspdsm.push_back( y8[i]);
193 dsspdsm.push_back( y9[i]);
194 dssmdsp.push_back( y10[i]);
195 dsspdssm.push_back( y11[i]);
196 xs12.push_back( y12[i] );
197 xs13.push_back( y13[i] );
198 xs14.push_back( y14[i] );
199 xs15.push_back( y15[i] );
200 xs16.push_back( y16[i] );
201 xs17.push_back( y17[i] );
202 xs18.push_back( y18[i] );
203 xs19.push_back( y19[i] );
204 xs20.push_back( y20[i] );
205 xs21.push_back( y21[i] );
206 xs22.push_back( y22[i] );
207 xs23.push_back( y23[i] );
215 Vson.push_back(
"D0"); Vson.push_back(
"anti-D0");
216 VmodeSon.push_back(Vson);
220 Vson.push_back(
"D+"); Vson.push_back(
"D-");
221 VmodeSon.push_back(Vson);
225 Vson.push_back(
"D0"); Vson.push_back(
"anti-D*0");
226 VmodeSon.push_back(Vson);
230 Vson.push_back(
"anti-D0"); Vson.push_back(
"D*0");
231 VmodeSon.push_back(Vson);
235 Vson.push_back(
"D*0"); Vson.push_back(
"anti-D*0");
236 VmodeSon.push_back(Vson);
240 Vson.push_back(
"D*+"); Vson.push_back(
"D-");
241 VmodeSon.push_back(Vson);
245 Vson.push_back(
"D*-"); Vson.push_back(
"D+");
246 VmodeSon.push_back(Vson);
250 Vson.push_back(
"D*+"); Vson.push_back(
"D*-");
251 VmodeSon.push_back(Vson);
255 Vson.push_back(
"D_s+"); Vson.push_back(
"D_s-");
256 VmodeSon.push_back(Vson);
260 Vson.push_back(
"D_s*+"); Vson.push_back(
"D_s-");
261 VmodeSon.push_back(Vson);
265 Vson.push_back(
"D_s*-"); Vson.push_back(
"D_s+");
266 VmodeSon.push_back(Vson);
270 Vson.push_back(
"D_s*+"); Vson.push_back(
"D_s*-");
271 VmodeSon.push_back(Vson);
275 Vson.push_back(
"D*+"); Vson.push_back(
"D-");Vson.push_back(
"pi0");
276 VmodeSon.push_back(Vson);
280 Vson.push_back(
"D*-"); Vson.push_back(
"D+");Vson.push_back(
"pi0");
281 VmodeSon.push_back(Vson);
285 Vson.push_back(
"D*+"); Vson.push_back(
"anti-D0");Vson.push_back(
"pi-");
286 VmodeSon.push_back(Vson);
290 Vson.push_back(
"D*-"); Vson.push_back(
"D0");Vson.push_back(
"pi+");
291 VmodeSon.push_back(Vson);
295 Vson.push_back(
"D+"); Vson.push_back(
"anti-D*0");Vson.push_back(
"pi-");
296 VmodeSon.push_back(Vson);
300 Vson.push_back(
"D-"); Vson.push_back(
"D*0");Vson.push_back(
"pi+");
301 VmodeSon.push_back(Vson);
305 Vson.push_back(
"D*+"); Vson.push_back(
"D*-");Vson.push_back(
"pi0");
306 VmodeSon.push_back(Vson);
310 Vson.push_back(
"anti-D*0"); Vson.push_back(
"D*+");Vson.push_back(
"pi-");
311 VmodeSon.push_back(Vson);
315 Vson.push_back(
"D*0"); Vson.push_back(
"D*-");Vson.push_back(
"pi+");
316 VmodeSon.push_back(Vson);
320 Vson.push_back(
"D*0"); Vson.push_back(
"anti-D*0");Vson.push_back(
"pi0");
321 VmodeSon.push_back(Vson);
325 Vson.push_back(
"anti-D0"); Vson.push_back(
"D*0");Vson.push_back(
"pi0");
326 VmodeSon.push_back(Vson);
330 Vson.push_back(
"anti-D*0"); Vson.push_back(
"D0");Vson.push_back(
"pi0");
331 VmodeSon.push_back(Vson);
339 double polint( std::vector <double> points);
343 double theProb(std::vector<double> myxs,
int ich);
346 std::vector<EvtId>
getVId(
int mode);
354 if(m<0 || m>32) {std::cout<<
"EvtPsi3Decay::setMode: bad mode"<<std::endl;abort();}
355 _themode = m;_excflag=1;}
361 std::vector <double> x;
362 std::vector <double> d0d0bar;
363 std::vector <double> dpdm;
364 std::vector <double> d0dst0bar;
365 std::vector <double> d0bardst0;
366 std::vector <double> dst0dst0bar;
367 std::vector <double> dstpdm;
368 std::vector <double> dstmdp;
369 std::vector <double> dstpdstm;
370 std::vector <double> dspdsm;
371 std::vector <double> dsspdsm;
372 std::vector <double> dssmdsp;
373 std::vector <double> dsspdssm;
374 std::vector <double> xs12;
375 std::vector <double> xs13;
376 std::vector <double> xs14;
377 std::vector <double> xs15;
378 std::vector <double> xs16;
379 std::vector <double> xs17;
380 std::vector <double> xs18;
381 std::vector <double> xs19;
382 std::vector <double> xs20;
383 std::vector <double> xs21;
384 std::vector <double> xs22;
385 std::vector <double> xs23;
388 double theXsection[50];
390 std::vector<std::string> Vson;
391 std::vector<EvtId> Vid;
393 std::vector< std::vector<std::string> > VmodeSon;
394 std::vector< std::vector<EvtId> > VmodeId;
395 int _themode,_excflag;
397 std::vector<EvtVector4R> v_p4;
398 static int psi3Scount;
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)
double polint(std::vector< double > points)
EvtPsi3Sdecay(double ecms, EvtParticle *parent)
std::vector< EvtVector4R > getDaugP4()
std::vector< EvtId > getDaugId()