BOSS 7.0.7
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
25#include "EvtGenBase/EvtId.hh"
26#include "EvtGenBase/EvtPDL.hh"
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, 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 }; // 32 energy points
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}; // 0) D0D0bar cross section
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}; // 1) D+D-
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}; // 2)D0D*0bar
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}; // 3)D0bar D*0
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}; // 4)D*0 D*0bar
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}; // 5)D*+D-
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}; // 6)D*-D+
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}; // 7)D*+D*-
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}; // 8)Ds+ Ds-
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}; // 9)Ds*+ Ds-
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}; //10)Ds*- Ds+
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}; //11)Ds*+ Ds*-
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 }; //12)D*+ D- pi0 //------ DD* pi----
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 }; //13)D*- D+ pi0
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}; //14)D*+ anti-D0 pi-
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}; //15)D*- D0 pi+
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}; //16)D+ anti-D*0 pi-
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}; //17)D- D*0 pi+
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 }; //18) D*+ D*- pi0 //------D*D*pi, above 4.26Gev, assumed xs as D*D pi
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 };//19) anti-D*0 D*+ pi-
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 };//20) D*0 D*- pi+
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 }; //21) D*0 D*0bar pi0
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 }; //22)D*0 D0bar pi0 //------ DD* pi----
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 }; //23)D*bar D0 pi0
71 d0d0bar.clear();
72 dpdm.clear();
73 d0dst0bar.clear();
74 dst0dst0bar.clear();
75 d0bardst0.clear();
76 dstpdm.clear();
77 dstmdp.clear();
78 dstpdstm.clear();
79 dspdsm.clear();
80 dsspdsm.clear();
81 dssmdsp.clear();
82 dsspdssm.clear();
83 xs12.clear();
84 xs13.clear();
85 xs14.clear();
86 xs15.clear();
87 xs16.clear();
88 xs17.clear();
89 xs18.clear();
90 xs19.clear();
91 xs20.clear();
92 xs21.clear();
93 xs22.clear();
94 xs23.clear();
95
96 for(int i=0;i<32;i++){
97 x.push_back(xx[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] );
122 }
123 }
124
125//---
126 EvtPsi3Sdecay() {//for 2-body and 3-body decays
127 //initializer
128 // Ecms = ecms;
129 nsize = 32;
130
131 x.clear();
132 // open charm cross section, see PRD 80, 072001, xross section in pb
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 }; // 32 energy points
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}; // 0) D0D0bar cross section
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}; // 1) D+D-
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}; // 2)D0D*0bar
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}; // 3)D0bar D*0
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}; // 4)D*0 D*0bar
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}; // 5)D*+D-
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}; // 6)D*-D+
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}; // 7)D*+D*-
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}; // 8)Ds+ Ds-
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}; // 9)Ds*+ Ds-
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}; //10)Ds*- Ds+
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}; //11)Ds*+ Ds*-
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 }; //12)D*+ D- pi0 //------ DD* pi----
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 }; //13)D*- D+ pi0
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}; //14)D*+ anti-D0 pi-
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}; //15)D*- D0 pi+
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}; //16)D+ anti-D*0 pi-
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}; //17)D- D*0 pi+
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 }; //18) D*+ D*- pi0 //------D*D*pi, above 4.26Gev, assumed xs as D*D pi
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 };//19) anti-D*0 D*+ pi-
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 };//20) D*0 D*- pi+
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 }; //21) D*0 D*0bar pi0
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 }; //22)D*0 D0bar pi0 //------ DD* pi----
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 }; //23)D*bar D0 pi0
158 d0d0bar.clear();
159 dpdm.clear();
160 d0dst0bar.clear();
161 dst0dst0bar.clear();
162 d0bardst0.clear();
163 dstpdm.clear();
164 dstmdp.clear();
165 dstpdstm.clear();
166 dspdsm.clear();
167 dsspdsm.clear();
168 dssmdsp.clear();
169 dsspdssm.clear();
170 xs12.clear();
171 xs13.clear();
172 xs14.clear();
173 xs15.clear();
174 xs16.clear();
175 xs17.clear();
176 xs18.clear();
177 xs19.clear();
178 xs20.clear();
179 xs21.clear();
180 xs22.clear();
181 xs23.clear();
182 for(int i=0;i<32;i++){
183 x.push_back(xx[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] );
208 }
209
210//---- initilize Vmode
211
212 VmodeSon.clear();
213 //0: D0 anti-D0
214 Vson.clear();
215 Vson.push_back("D0"); Vson.push_back("anti-D0");
216 VmodeSon.push_back(Vson);
217
218 //1: D+ D-
219 Vson.clear();
220 Vson.push_back("D+"); Vson.push_back("D-");
221 VmodeSon.push_back(Vson);
222
223 //2: D0 anti-D*0
224 Vson.clear();
225 Vson.push_back("D0"); Vson.push_back("anti-D*0");
226 VmodeSon.push_back(Vson);
227
228 //3: anti-D0 D*0
229 Vson.clear();
230 Vson.push_back("anti-D0"); Vson.push_back("D*0");
231 VmodeSon.push_back(Vson);
232
233 //4: D*0 anti-D*0
234 Vson.clear();
235 Vson.push_back("D*0"); Vson.push_back("anti-D*0");
236 VmodeSon.push_back(Vson);
237
238 //5: D*+ D-
239 Vson.clear();
240 Vson.push_back("D*+"); Vson.push_back("D-");
241 VmodeSon.push_back(Vson);
242
243 //6: D*- D+
244 Vson.clear();
245 Vson.push_back("D*-"); Vson.push_back("D+");
246 VmodeSon.push_back(Vson);
247
248 //7: D*+ D*-
249 Vson.clear();
250 Vson.push_back("D*+"); Vson.push_back("D*-");
251 VmodeSon.push_back(Vson);
252
253 //8: D_s+ D_s-
254 Vson.clear();
255 Vson.push_back("D_s+"); Vson.push_back("D_s-");
256 VmodeSon.push_back(Vson);
257
258 //9: D_s*+ D_s-
259 Vson.clear();
260 Vson.push_back("D_s*+"); Vson.push_back("D_s-");
261 VmodeSon.push_back(Vson);
262
263 //10: D_s*- D_s+
264 Vson.clear();
265 Vson.push_back("D_s*-"); Vson.push_back("D_s+");
266 VmodeSon.push_back(Vson);
267
268 //11: D_s*+ D_s*-
269 Vson.clear();
270 Vson.push_back("D_s*+"); Vson.push_back("D_s*-");
271 VmodeSon.push_back(Vson);
272
273 //12: D*+ D- pi0
274 Vson.clear();
275 Vson.push_back("D*+"); Vson.push_back("D-");Vson.push_back("pi0");
276 VmodeSon.push_back(Vson);
277
278 //13: D*- D+ pi0
279 Vson.clear();
280 Vson.push_back("D*-"); Vson.push_back("D+");Vson.push_back("pi0");
281 VmodeSon.push_back(Vson);
282
283 //14: D*+ anti-D0 pi-
284 Vson.clear();
285 Vson.push_back("D*+"); Vson.push_back("anti-D0");Vson.push_back("pi-");
286 VmodeSon.push_back(Vson);
287
288 //15: D*- D0 pi+
289 Vson.clear();
290 Vson.push_back("D*-"); Vson.push_back("D0");Vson.push_back("pi+");
291 VmodeSon.push_back(Vson);
292
293 //16: D+ anti-D*0 pi-
294 Vson.clear();
295 Vson.push_back("D+"); Vson.push_back("anti-D*0");Vson.push_back("pi-");
296 VmodeSon.push_back(Vson);
297
298 //17: D- D*0 pi+
299 Vson.clear();
300 Vson.push_back("D-"); Vson.push_back("D*0");Vson.push_back("pi+");
301 VmodeSon.push_back(Vson);
302
303 //18: D*+ D*- pi0
304 Vson.clear();
305 Vson.push_back("D*+"); Vson.push_back("D*-");Vson.push_back("pi0");
306 VmodeSon.push_back(Vson);
307
308 //19: anti-D*0 D*+ pi-
309 Vson.clear();
310 Vson.push_back("anti-D*0"); Vson.push_back("D*+");Vson.push_back("pi-");
311 VmodeSon.push_back(Vson);
312
313 //20: D*0 D*- pi+
314 Vson.clear();
315 Vson.push_back("D*0"); Vson.push_back("D*-");Vson.push_back("pi+");
316 VmodeSon.push_back(Vson);
317
318 //21: D*0 D*0bar pi0
319 Vson.clear();
320 Vson.push_back("D*0"); Vson.push_back("anti-D*0");Vson.push_back("pi0");
321 VmodeSon.push_back(Vson);
322
323 //22: D0bar D*0 pi0
324 Vson.clear();
325 Vson.push_back("anti-D0"); Vson.push_back("D*0");Vson.push_back("pi0");
326 VmodeSon.push_back(Vson);
327
328 //23: D*0bar D0 pi0
329 Vson.clear();
330 Vson.push_back("anti-D*0"); Vson.push_back("D0");Vson.push_back("pi0");
331 VmodeSon.push_back(Vson);
332
333 }
334
335 // destructor
336 virtual ~EvtPsi3Sdecay(){}
337
338 int findPoints(); //return the lower size at the end of the segment containing Ecms points
339 double polint( std::vector <double> points);
340 bool choseDecay(); //determing accept or reject a generated decay
342 int getDecay(double ecms); //determing accept or reject a generated decay
343 double theProb(std::vector<double> myxs,int ich);
344 int findMode( );
345 int getMode(){return _themode;};
346 std::vector<EvtId> getVId(int mode);
347
348
349 void PHSPDecay(EvtParticle * par);
350 std::vector<EvtId> getDaugId(){return Vid;}
351 std::vector<EvtVector4R> getDaugP4(){return v_p4;}
352 bool AngSam(EvtVector4R parent_p4cm,EvtVector4R son_p4cm,double alpha);
353 void setMode(int m){
354 if(m<0 || m>32) {std::cout<<"EvtPsi3Decay::setMode: bad mode"<<std::endl;abort();}
355 _themode = m;_excflag=1;}
356private:
357 double Ecms;
358 EvtParticle *theParent;
359 EvtId *Daughters;
360 int Ndaugs;
361 std::vector <double> x;
362 std::vector <double> d0d0bar; // 0)
363 std::vector <double> dpdm; // 1)
364 std::vector <double> d0dst0bar; // 2)
365 std::vector <double> d0bardst0; // 3)
366 std::vector <double> dst0dst0bar; // 4)
367 std::vector <double> dstpdm; // 5)
368 std::vector <double> dstmdp; // 6)
369 std::vector <double> dstpdstm; // 7)
370 std::vector <double> dspdsm; // 8)
371 std::vector <double> dsspdsm; // 9)
372 std::vector <double> dssmdsp; //10)
373 std::vector <double> dsspdssm; //11)
374 std::vector <double> xs12; //12)
375 std::vector <double> xs13; //13)
376 std::vector <double> xs14; //14)
377 std::vector <double> xs15; //15)
378 std::vector <double> xs16; //16)
379 std::vector <double> xs17; //17)
380 std::vector <double> xs18; //18)
381 std::vector <double> xs19; //19)
382 std::vector <double> xs20; //20)
383 std::vector <double> xs21; //21)
384 std::vector <double> xs22; //22)
385 std::vector <double> xs23; //23)
386
387 int nsize; //the simze of the energy points
388 double theXsection[50];
389 int theLocation;
390 std::vector<std::string> Vson;
391 std::vector<EvtId> Vid;
392
393 std::vector< std::vector<std::string> > VmodeSon;
394 std::vector< std::vector<EvtId> > VmodeId;
395 int _themode,_excflag;
396 //
397 std::vector<EvtVector4R> v_p4;
398 static int psi3Scount;
399};
400
401
402#endif
const double alpha
Definition: EvtId.hh:27
int getNDaug() const
Definition: EvtParticle.cc:125
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:42