BOSS 7.0.5
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtPsi3Sdecay Class Reference

#include <EvtPsi3Sdecay.hh>

Public Member Functions

 EvtPsi3Sdecay (double ecms, EvtParticle *parent)
 
 EvtPsi3Sdecay ()
 
virtual ~EvtPsi3Sdecay ()
 
int findPoints ()
 
double polint (std::vector< double > points)
 
bool choseDecay ()
 
EvtParticlechoseDecay (EvtParticle *par)
 
int getDecay (double ecms)
 
double theProb (std::vector< double > myxs, int ich)
 
int findMode ()
 
int getMode ()
 
std::vector< EvtIdgetVId (int mode)
 
void PHSPDecay (EvtParticle *par)
 
std::vector< EvtIdgetDaugId ()
 
std::vector< EvtVector4RgetDaugP4 ()
 
bool AngSam (EvtVector4R parent_p4cm, EvtVector4R son_p4cm, double alpha)
 
void setMode (int m)
 

Detailed Description

Definition at line 33 of file EvtPsi3Sdecay.hh.

Constructor & Destructor Documentation

◆ EvtPsi3Sdecay() [1/2]

EvtPsi3Sdecay::EvtPsi3Sdecay ( double  ecms,
EvtParticle parent 
)
inline

Definition at line 36 of file EvtPsi3Sdecay.hh.

36 { //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 }
int getNDaug() const
Definition: EvtParticle.cc:125
const double ecms
Definition: inclkstar.cxx:42

◆ EvtPsi3Sdecay() [2/2]

EvtPsi3Sdecay::EvtPsi3Sdecay ( )
inline

Definition at line 126 of file EvtPsi3Sdecay.hh.

126 {//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 }

◆ ~EvtPsi3Sdecay()

virtual EvtPsi3Sdecay::~EvtPsi3Sdecay ( )
inlinevirtual

Definition at line 336 of file EvtPsi3Sdecay.hh.

336{}

Member Function Documentation

◆ AngSam()

bool EvtPsi3Sdecay::AngSam ( EvtVector4R  parent_p4cm,
EvtVector4R  son_p4cm,
double  alpha 
)

Definition at line 423 of file EvtPsi3Sdecay.cc.

423 {
424 EvtHelSys angles(parent_p4cm,son_p4cm);
425 double theta=angles.getHelAng(1);
426 //double phi =angles.getHelAng(2);
427 //double gamma=0;
428 double costheta=cos(theta); //using helicity angles in parent system
429 double max_alpha;
430 if(alpha>=0) {max_alpha = 1+alpha;}else
431 {max_alpha=1;}
432 double ags = (1+alpha*costheta*costheta)/max_alpha;
433 double rand=EvtRandom::Flat(0.0, 1.0);
434 if(rand <=ags) {return true;}
435 else {return false;}
436}
const double alpha
double cos(const BesAngle a)
static double Flat()
Definition: EvtRandom.cc:74
float costheta

Referenced by PHSPDecay().

◆ choseDecay() [1/2]

bool EvtPsi3Sdecay::choseDecay ( )

Definition at line 133 of file EvtPsi3Sdecay.cc.

133 { //determing accept or reject a generated decay
134
135 // findPoints();
136 double d0d0bar_xs=polint(d0d0bar);
137 double dpdm_xs = polint(dpdm);
138 double d0dst0bar_xs = polint(d0dst0bar);
139 double d0bardst0_xs = polint(d0bardst0);
140
141 double dst0dst0bar_xs = polint(dst0dst0bar);
142 double dstpdm_xs = polint(dstpdm);
143
144 double dstmdp_xs = polint(dstmdp);
145 double dstpdstm_xs = polint(dstpdstm);
146
147 double dspdsm_xs = polint(dspdsm);
148
149 double dsspdsm_xs = polint(dsspdsm);
150 double dssmdsp_xs = polint(dssmdsp);
151
152 double dsspdssm_xs = polint(dsspdssm);
153 //--- DDpi modes
154 double _xs12 = polint(xs12);
155 double _xs13 = polint(xs13);
156 double _xs14 = polint(xs14);
157 double _xs15 = polint(xs15);
158 double _xs16 = polint(xs16);
159 double _xs17 = polint(xs17);
160 double _xs18 = polint(xs18);
161 double _xs19 = polint(xs19);
162 double _xs20 = polint(xs20);
163 double _xs21 = polint(xs21);
164 double _xs22 = polint(xs22);
165 double _xs23 = polint(xs23);
166
167 int ich = findMode();
168 // std::cout<<"calculated XS "<< d0d0bar_xs<<" "<<dpdm_xs<<" "<<d0dst0bar_xs<<" "<<d0bardst0_xs<< " "<<dst0dst0bar_xs<<" "<<dstpdm_xs<< " "<<dstmdp_xs<<" "<<dstpdstm_xs<<" "<<dspdsm_xs<<std::endl;
169
170
171 double xmtotal=0;
172 for(int i=0;i<Vid.size();i++){
173 xmtotal += EvtPDL::getMinMass(Vid[i]);
174 }
175 double mparent= theParent->getP4().mass();
176 // std::cout<<"mparent= "<<mparent<<", xmtotal= "<<xmtotal<<endl;
177 if (mparent<xmtotal){return false;}
178
179
180 std::vector<double> myxs; myxs.clear();
181 myxs.push_back(d0d0bar_xs); //0
182 myxs.push_back(dpdm_xs);
183 myxs.push_back(d0dst0bar_xs); //2
184 myxs.push_back(d0bardst0_xs);
185 myxs.push_back(dst0dst0bar_xs); //4
186 myxs.push_back(dstpdm_xs);
187 myxs.push_back(dstmdp_xs); //6
188 myxs.push_back(dstpdstm_xs);
189 myxs.push_back(dspdsm_xs); //8
190 myxs.push_back(dsspdsm_xs);
191 myxs.push_back(dssmdsp_xs); //10
192 myxs.push_back(dsspdssm_xs); //11
193
194 myxs.push_back(_xs12); //12
195 myxs.push_back(_xs13); //13
196 myxs.push_back(_xs14); //14
197 myxs.push_back(_xs15); //15
198 myxs.push_back(_xs16); //16
199 myxs.push_back(_xs17); //17
200 myxs.push_back(_xs18); //18
201 myxs.push_back(_xs19); //19
202 myxs.push_back(_xs20); //20
203 myxs.push_back(_xs21); //21
204 myxs.push_back(_xs22); //22
205 myxs.push_back(_xs23); //23
206
207 double Prop0,Prop1;
208 if(ich==0){ Prop0=0;} else
209 {
210 Prop0 = theProb(myxs,ich-1);
211 }
212 Prop1 = theProb(myxs,ich);
213
214 double pm= EvtRandom::Flat(0.,1);
215 bool flag = false;
216 if( Prop0 < pm && pm<= Prop1 ) flag = true;
217
218 //--- debuging
219
220 if(flag) {
221 //std::cout<<"findMode= "<<ich<<std::endl;
222 //for(int i=0;i<myxs.size();i++){ std::cout<<"channel "<<i<<" myxs: "<<myxs[i]<<std::endl;}
223 //std::cout<<"prop0,prop1= "<<Prop0<<" "<<Prop1<<std::endl;
224 }
225
226 //-------------
227
228 return flag;
229}
static double getMinMass(EvtId i)
Definition: EvtPDL.hh:51
const EvtVector4R & getP4() const
Definition: EvtParticle.cc:121
double theProb(std::vector< double > myxs, int ich)
double polint(std::vector< double > points)
double mass() const
Definition: EvtVector4R.cc:39

◆ choseDecay() [2/2]

EvtParticle * EvtPsi3Sdecay::choseDecay ( EvtParticle par)

Definition at line 232 of file EvtPsi3Sdecay.cc.

232 { //decay par
233 double xm = par->mass();
234 int themode = getDecay(xm);
235 std::vector< EvtId > theid = getVId(themode);
236 int ndaugjs = theid.size();
237 EvtId myId[3];
238 for(int i=0;i<ndaugjs;i++){myId[i]=theid[i];}
239 par->makeDaughters(ndaugjs,myId);
240
241 for(int i=0;i<par->getNDaug();i++){
242 EvtParticle* di=par->getDaug(i);
243 double xmi=EvtPDL::getMinMass(di->getId());
244 di->setMass(xmi);
245 }
246 par->initializePhaseSpace(ndaugjs,myId);
247 _themode = themode;
248 return par;
249}
Definition: EvtId.hh:27
void setMass(double m)
Definition: EvtParticle.hh:372
void makeDaughters(int ndaug, EvtId *id)
EvtId getId() const
Definition: EvtParticle.cc:113
EvtParticle * getDaug(int i)
Definition: EvtParticle.cc:85
double mass() const
Definition: EvtParticle.cc:127
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
int getDecay(double ecms)
std::vector< EvtId > getVId(int mode)

◆ findMode()

int EvtPsi3Sdecay::findMode ( )

Definition at line 73 of file EvtPsi3Sdecay.cc.

73 {
74 // mode index: 0) D0D0bar, 1)D+D-; 2)D0D*0bar , 3)D0bar D*0, 4)D*0 D*0 bar, 5)D*+D- 6)D*-D+ 7)D*+ D*- 8) Ds+ Ds-
75 // more modes: 9) D_s^*+ D_s^- ;10) D_s^*- D_s^+; 11) D_s^*+ D_s^*-
76
77 std::string son0,son1,son2;
78 Vson.clear();
79 Vid.clear();
80 for(int i=0;i<Ndaugs;i++){
81 std::string nson=EvtPDL::name(theParent->getDaug(i)->getId());
82 if(nson!="gammaFSR" && nson!="gamma"){ Vson.push_back(nson);Vid.push_back(theParent->getDaug(i)->getId());}
83 }
84 int nh=Vson.size();
85 //debugging
86 //std::cout<<"nh= "<<nh<<" "<<Vson[0]<<" "<<Vson[1]<<" "<<Vson[2]<<std::endl;
87 //theParent->printTree();
88
89 if(nh == 2){
90 //std::cout<<"2 final states: "<<Vson[0]<<" "<<Vson[1]<<std::endl;
91 son0 = Vson[0];son1 = Vson[1];
92 if(son0 == "D0" && son1 == "anti-D0" || son1 == "D0" && son0 == "anti-D0") {return 0;} else
93 if(son0 == "D+" && son1 == "D-" || son1 == "D+" && son0 == "D-" ) {return 1;} else
94 if(son0 == "D0" && son1 == "anti-D*0" || son1 == "D0" && son0 == "anti-D*0") {return 2;} else
95 if(son0 == "anti-D0" && son1 == "D*0" || son1 == "anti-D0" && son0 == "D*0") {return 3;} else
96 if(son0 == "D*0" && son1 == "anti-D*0" || son1 == "D*0" && son0 == "anti-D*0") {return 4;} else
97 if(son0 == "D*+" && son1 == "D-" || son1 == "D*+" && son0 == "D-") {return 5;} else
98 if(son0 == "D*-" && son1 == "D+" || son1 == "D*-" && son0 == "D+") {return 6;} else
99 if(son0 == "D*+" && son1 == "D*-" || son1 == "D*+" && son0 == "D*-") {return 7;} else
100 if(son0 == "D_s+" && son1 == "D_s-" || son1 == "D_s+" && son0 == "D_s-") {return 8;} else
101 if(son0 == "D_s*+" && son1 == "D_s-" || son1 == "D_s*+" && son0 == "D_s-") {return 9;} else
102 if(son0 == "D_s*-" && son1 == "D_s+" || son1 == "D_s*-" && son0 == "D_s+") {return 10;}else
103 if(son0 == "D_s*+" && son1 == "D_s*-" || son1 == "D_s*+" && son0 == "D_s*-") {return 11;}else {goto ErrInfo;}
104 } else if(nh == 3){
105 //std::cout<<"3 final states: "<<Vson[0]<<" "<<Vson[1]<<" "<<Vson[2]<<std::endl;
106 son0 = Vson[0];son1 = Vson[1];son2 = Vson[2];
107 if(son0 == "D*+" && son1 == "D-" && son2 == "pi0" ) {return 12;} else
108 if(son0 == "D*-" && son1 == "D+" && son2 == "pi0" ) {return 13;} else
109 if(son0 == "D*+" && son1 == "anti-D0" && son2 == "pi-" ) {return 14;} else
110 if(son0 == "D*-" && son1 == "D0" && son2 == "pi+" ) {return 15;} else
111 if(son0 == "D+" && son1 == "anti-D*0" && son2 == "pi-" ) {return 16;} else
112 if(son0 == "D-" && son1 == "D*0" && son2 == "pi+" ) {return 17;} else
113 if(son0 == "D*+" && son1 == "D*-" && son2 == "pi0" ) {return 18;} else
114 if(son0 == "anti-D*0" &&son1 == "D*+" && son2 == "pi-" ) {return 19;} else
115 if(son0 == "D*0" && son1 == "D*-" && son2 == "pi+" ) {return 20;} else
116 if(son0 == "D*0" && son1 == "anti-D*0" && son2 == "pi0" ) {return 21;} else
117 if(son0 == "D0" && son1 == "anti-D*0" && son2 == "pi0" ) {return 22;} else
118 if(son0 == "anti-D0" && son1 == "D*0" && son2 == "pi0" ) {return 23;} else {goto ErrInfo;}
119 }
120 ErrInfo:
121 std::cout<<"Not open charm decay"<<std::endl;
122 std::cout<<"final states \"";
123 for(int j=0;j<nh;j++){
124 std::cout<<Vson[j]<<" ";
125 }
126 std::cout<<" \" is not in the Psi3Decay list, see $BESEVTGENROOT/src/EvtGen/EvtGenModels/EvtPsi3Sdecay.hh"<<std::endl;
127 ::abort();
128
129
130}
static std::string name(EvtId i)
Definition: EvtPDL.hh:64

Referenced by choseDecay().

◆ findPoints()

int EvtPsi3Sdecay::findPoints ( )

Definition at line 32 of file EvtPsi3Sdecay.cc.

32 {
33 if(Ecms < x[0] ){theLocation =0;} else
34 if(Ecms >=x[nsize-1]) {theLocation = nsize-1;} else{
35 for (int i=0;i<nsize-1;i++){
36 if( x[i] <= Ecms && x[i+1] > Ecms) {theLocation=i;}
37 }
38 }
39 return theLocation;
40}

Referenced by polint().

◆ getDaugId()

std::vector< EvtId > EvtPsi3Sdecay::getDaugId ( )
inline

Definition at line 350 of file EvtPsi3Sdecay.hh.

350{return Vid;}

Referenced by EvtOpenCharm::decay().

◆ getDaugP4()

std::vector< EvtVector4R > EvtPsi3Sdecay::getDaugP4 ( )
inline

Definition at line 351 of file EvtPsi3Sdecay.hh.

351{return v_p4;}

Referenced by EvtOpenCharm::decay().

◆ getDecay()

int EvtPsi3Sdecay::getDecay ( double  ecms)

Definition at line 314 of file EvtPsi3Sdecay.cc.

314 { //pick up a decay by the accept-reject sampling method
315 if(ecms<3.97 || ecms >4.66){std::cout<<"EvtPsi3Sdecay::getDecay: You need to set the CMS energy between 3.97~4.66 GeV, but you have ecms= "<<ecms<< " GeV.The lower end can be set at KKMC"<<std::endl; }
316 if(_excflag ==1) return _themode;
317 Ecms = ecms;
318 // findPoints();
319 double d0d0bar_xs=polint(d0d0bar);
320 double dpdm_xs = polint(dpdm);
321 double d0dst0bar_xs = polint(d0dst0bar);
322 double d0bardst0_xs = polint(d0bardst0);
323
324 double dst0dst0bar_xs = polint(dst0dst0bar);
325 double dstpdm_xs = polint(dstpdm);
326
327 double dstmdp_xs = polint(dstmdp);
328 double dstpdstm_xs = polint(dstpdstm);
329
330 double dspdsm_xs = polint(dspdsm);
331
332 double dsspdsm_xs = polint(dsspdsm);
333 double dssmdsp_xs = polint(dssmdsp);
334
335 double dsspdssm_xs = polint(dsspdssm);
336
337 double _xs12 = polint(xs12);
338 double _xs13 = polint(xs13);
339 double _xs14 = polint(xs14);
340 double _xs15 = polint(xs15);
341 double _xs16 = polint(xs16);
342 double _xs17 = polint(xs17);
343 double _xs18 = polint(xs18);
344 double _xs19 = polint(xs19);
345 double _xs20 = polint(xs20);
346 double _xs21 = polint(xs21);
347 double _xs22 = polint(xs22);
348 double _xs23 = polint(xs23);
349
350
351 std::vector<double> myxs; myxs.clear();
352 myxs.push_back(d0d0bar_xs); //0
353 myxs.push_back(dpdm_xs); //1
354 myxs.push_back(d0dst0bar_xs); //2
355 myxs.push_back(d0bardst0_xs); //3
356 myxs.push_back(dst0dst0bar_xs);//4
357 myxs.push_back(dstpdm_xs); //5
358 myxs.push_back(dstmdp_xs); //6
359 myxs.push_back(dstpdstm_xs); //7
360 myxs.push_back(dspdsm_xs); //8
361 myxs.push_back(dsspdsm_xs); //9
362 myxs.push_back(dssmdsp_xs); //10
363 myxs.push_back(dsspdssm_xs); //11
364 myxs.push_back(_xs12); //12
365 myxs.push_back(_xs13); //13
366 myxs.push_back(_xs14); //14
367 myxs.push_back(_xs15); //15
368 myxs.push_back(_xs16); //16
369 myxs.push_back(_xs17); //17
370 myxs.push_back(_xs18); //18
371 myxs.push_back(_xs19); //19
372 myxs.push_back(_xs20); //20
373 myxs.push_back(_xs21); //21
374 myxs.push_back(_xs22); //22
375 myxs.push_back(_xs23); //23
376
377 double mytotxs=0;
378 for(int i=0;i<myxs.size();i++){mytotxs += myxs[i];}
379 if(psi3Scount==0) {std::cout<<"The total xs at "<<ecms<<" is: "<<mytotxs<<" pb"<<std::endl;psi3Scount++;}
380 int niter = 0;
381 loop:
382 int ich = (int)24*EvtRandom::Flat(0.,1);//sampling modes over 24 channel
383
384 niter++;
385 if(niter>1000) {std::cout<<"EvtPsi3Sdecay:getDecay() do loops over 1000 times at Ecm= "<<ecms<<std::endl;abort();}
386
387 double xmtotal=0;
388 std::vector<EvtId> theVid;
389 theVid.clear();
390 theVid = getVId(ich);
391 for(int i=0;i<theVid.size();i++){
392 xmtotal += EvtPDL::getMinMass(theVid[i]);
393 }
394
395 if(Ecms < xmtotal ) {goto loop;}
396
397 double Prop0,Prop1;
398 if(ich==0){ Prop0=0;} else
399 {
400 Prop0 = theProb(myxs,ich-1);
401 }
402 Prop1 = theProb(myxs,ich);
403
404 double pm= EvtRandom::Flat(0.,1);
405
406 if( Prop0 < pm && pm<= Prop1 ) {return ich;}
407 else {goto loop;}
408
409}

Referenced by choseDecay(), and PHSPDecay().

◆ getMode()

int EvtPsi3Sdecay::getMode ( )
inline

Definition at line 345 of file EvtPsi3Sdecay.hh.

345{return _themode;};

Referenced by EvtOpenCharm::decay().

◆ getVId()

std::vector< EvtId > EvtPsi3Sdecay::getVId ( int  mode)

Definition at line 412 of file EvtPsi3Sdecay.cc.

412 {
413 std::vector<EvtId> theVid;
414 theVid.clear();
415 for(int i=0;i<VmodeSon[mode].size();i++){
416 EvtId theId = EvtPDL::getId(VmodeSon[mode][i]);
417 theVid.push_back(theId);
418 }
419 return theVid;
420}
static EvtId getId(const std::string &name)
Definition: EvtPDL.cc:287

Referenced by choseDecay(), getDecay(), and PHSPDecay().

◆ PHSPDecay()

void EvtPsi3Sdecay::PHSPDecay ( EvtParticle par)

Definition at line 254 of file EvtPsi3Sdecay.cc.

254 {//decay par
255 v_p4.clear();Vid.clear();
256 double xm = par->mass();
257 EvtVector4R p_ini(xm,0,0,0);
259
260 int themode = getDecay(xm);
261 std::vector< EvtId > theid = getVId(themode);
262 int ndaugjs = theid.size();
263 EvtId myId[3];
264 for(int i=0;i<ndaugjs;i++){myId[i]=theid[i];}
265 mypar->makeDaughters(ndaugjs,myId);
266
267 for(int i=0;i<mypar->getNDaug();i++){
268 EvtParticle* di=mypar->getDaug(i);
269 double xmi=EvtPDL::getMinMass(di->getId());
270 di->setMass(xmi);
271 }
272 loop:
273 mypar->initializePhaseSpace(ndaugjs,myId);
274
275 //-- here to do amgular distribution sampling
276 bool pp = (themode == 0||themode == 1 ||themode ==6); //V->PP mode, alpha = -1
277 bool vp = (themode >=2 && themode <=5 || themode >=7 && themode <=9 ); // V->VP mode, alpha = 1
278 bool flag1 = false;
279 double alpha;
280 if(pp){alpha=-1;}else if(vp){alpha=1;} else {alpha=0;}
281 EvtVector4R pp4=par->getP4();
282 EvtVector4R sp4=mypar->getDaug(1)->getP4();
283 flag1=AngSam(pp4,sp4,alpha);
284 if(alpha != 0 && !flag1 ) goto loop;
285 //--
286 _themode = themode;
287 for(int i=0;i<mypar->getNDaug();i++){
288 EvtParticle* di=mypar->getDaug(i);
289 v_p4.push_back( di->getP4() );
290 Vid.push_back(myId[i]);
291 // std::cout<<"Vid "<<EvtPDL::name(Vid[i])<<" p4: "<<v_p4[i]<<std::endl;
292 }
293
294
295 /*********** same function can be realized
296 double mass[3];
297 EvtVector4R p4[30];
298 for(int i=0;i<ndaugjs;i++){mass[i]=mypar->getDaug(i)->mass();}
299 EvtGenKine::PhaseSpace(ndaugjs,mass,p4,xm);
300 _themode = themode;
301 for(int i=0;i<mypar->getNDaug();i++){
302 v_p4.push_back( p4[i] );
303 Vid.push_back(myId[i]);
304 // std::cout<<"Vid "<<EvtPDL::name(Vid[i])<<" p4: "<<v_p4[i]<<std::endl;
305 }
306 *************/
307 mypar->deleteTree();
308 return;
309}
static EvtParticle * particleFactory(EvtSpinType::spintype spinType)
void deleteTree()
Definition: EvtParticle.cc:557
bool AngSam(EvtVector4R parent_p4cm, EvtVector4R son_p4cm, double alpha)

Referenced by EvtOpenCharm::decay().

◆ polint()

double EvtPsi3Sdecay::polint ( std::vector< double >  points)

Definition at line 42 of file EvtPsi3Sdecay.cc.

42 {
43
44 theLocation = findPoints();
45 double xs;
46 if(theLocation==nsize-1){xs = vy[nsize-1];} else{
47 xs = (vy[theLocation +1 ]- vy[theLocation]) / (x[theLocation+1]-x[theLocation])*(Ecms - x[theLocation])+vy[theLocation];
48 }
49 if(xs <0 ) xs = 0;
50 // for(int i=0;i<vy.size();i++){ std::cout<<"channel "<<i<<" xsection: "<<vy[i]<<std::endl;}
51 // std::cout<<"Ecms, theLocation= "<<Ecms<<" "<<theLocation<<" xs= "<<xs<<std::endl;
52 return xs;
53 }

Referenced by choseDecay(), and getDecay().

◆ setMode()

void EvtPsi3Sdecay::setMode ( int  m)
inline

Definition at line 353 of file EvtPsi3Sdecay.hh.

353 {
354 if(m<0 || m>32) {std::cout<<"EvtPsi3Decay::setMode: bad mode"<<std::endl;abort();}
355 _themode = m;_excflag=1;}

Referenced by EvtOpenCharm::decay().

◆ theProb()

double EvtPsi3Sdecay::theProb ( std::vector< double >  myxs,
int  ich 
)

Definition at line 55 of file EvtPsi3Sdecay.cc.

55 {
56 int Nchannels=myxs.size();
57 //---debuging
58 // std::cout<<"Nchannel= "<<Nchannels<<endl;
59
60 std::vector <double> thexs;
61 thexs.clear();
62 double sumxs=0;
63 for(int j=0;j<Nchannels;j++){
64 sumxs += myxs[j];
65 thexs.push_back(sumxs);
66 //----debugging
67 // std::cout<<"thexs["<<j<<"]= "<<myxs[j]<<std::endl;
68 }
69 if(sumxs == 0) {std::cout<<"EvtPsi3Sdecay::theProb, denominator is 0"<<std::endl;::abort();}
70 return thexs[ich] / sumxs ;
71}

Referenced by choseDecay(), and getDecay().


The documentation for this class was generated from the following files: