43{
45
46 printf("Make amplitude\n");
47 unsigned i;
48 for(i=0;i<vv.size();i++) printf(
"%s\n",vv[i].
c_str());
49 printf("\n");
50 }
51
54 std::string name;
55
56 int i;
57 if(vv[0] == "PHASESPACE") {
58
61 name = "NR";
62 }
63 else if(vv[0] == "RESONANCE") {
64
66
67
68
71 double mR, gR;
72 name = vv[2];
75
76
77
78
79 if(resId.
getId() == -1) {
80
81 switch(atoi(vv[2].
c_str())) {
82
88 default: { assert(0); break; }
89 }
90
91 mR = strtod(vv[3].
c_str(),0);
92 gR = strtod(vv[4].
c_str(),0);
93 i = 4;
94 }
95 else {
96
97
98
102 i = 2;
103
104
105
106
107 if(vv[3] != "ANGULAR") {
108
110 printf("Setting m(%s)=%s g(%s)=%s\n",
112
113 mR = strtod(vv[3].
c_str(),0);
114 gR = strtod(vv[4].
c_str(),0);
115 i = 4;
116 }
117 }
118
119
120
121 if(vv[++i] != "ANGULAR") {
122
123 printf(
"%s instead of ANGULAR\n",vv[i].
c_str());
124 exit(0);
125 }
127 if(
_verbose) printf(
"Angle is measured between particles %s\n",vv[i].
c_str());
128
129
130
131 assert(vv[++i] == "TYPE");
132 std::string type = vv[++i];
134
135 if(type == "NBW") {
136
139 }
140 else if(type == "RBW_ZEMACH") {
141
144 }
145 else if(type == "RBW_KUEHN") {
146
149 }
150 else if(type == "RBW_CLEO") {
151
154 }
155 else assert(0);
156
157
158
159 if(i < vv.size() - 1) {
160 if(vv[i+1] == "DVFF") {
161 i++;
162 if(vv[++i] == "BLATTWEISSKOPF") {
163
164 double R = strtod(vv[++i].
c_str(),0);
166 }
167 else assert(0);
168 }
169 }
170
171 if(i < vv.size() - 1) {
172 if(vv[i+1] == "BVFF") {
173 i++;
174 if(vv[++i] == "BLATTWEISSKOPF") {
175
177 double R = strtod(vv[++i].
c_str(),0);
179 }
180 else assert(0);
181 }
182 }
183
184 i++;
185
187 amp = partAmp;
188 }
189
190 assert(amp);
191 assert(pdf);
192
194
197 }
198 else {
199
201 delete pdf;
202 }
204}
Evt3Rank3C conj(const Evt3Rank3C &t2)
double abs2(const EvtComplex &c)
EvtPdfSum< EvtDalitzPoint > * _pc
EvtAmplitudeSum< EvtDalitzPoint > * _amp
EvtAmplitudeSum< EvtDalitzPoint > * _ampConj
std::vector< std::string > _names
void addOwnedTerm(EvtComplex c, EvtAmplitude< T > *amp)
static double getWidth(EvtId i)
static double getMeanMass(EvtId i)
static EvtSpinType::spintype getSpinType(EvtId i)
static EvtId getId(const std::string &name)
void addOwnedTerm(double c, EvtPdf< T > *pdf)
Pair strToPair(const char *str)
complex_t R(double Q2, double M2, double G, double Mp2, double Mm2)