16#include "EvtGenBase/EvtPatches.hh"
26#include "EvtGenBase/EvtId.hh"
27#include "EvtGenBase/EvtPDL.hh"
28#include "EvtGenBase/EvtConst.hh"
29#include "EvtGenBase/EvtComplex.hh"
30#include "EvtGenBase/EvtCyclic3.hh"
31#include "EvtGenBase/EvtSpinType.hh"
32#include "EvtGenBase/EvtPto3PAmp.hh"
33#include "EvtGenBase/EvtFlatAmp.hh"
34#include "EvtGenBase/EvtPto3PAmpFactory.hh"
35#include "EvtGenBase/EvtPropBreitWigner.hh"
36#include "EvtGenBase/EvtPropBreitWignerRel.hh"
37#include "EvtGenBase/EvtDalitzResPdf.hh"
38#include "EvtGenBase/EvtDalitzFlatPdf.hh"
46 printf(
"Make amplitude\n");
48 for(i=0;i<vv.size();i++) printf(
"%s\n",vv[i].
c_str());
57 if(vv[0] ==
"PHASESPACE") {
63 else if(vv[0] ==
"RESONANCE") {
79 if(resId.
getId() == -1) {
81 switch(atoi(vv[2].
c_str())) {
88 default: { assert(0);
break; }
91 mR = strtod(vv[3].
c_str(),0);
92 gR = strtod(vv[4].
c_str(),0);
107 if(vv[3] !=
"ANGULAR") {
110 printf(
"Setting m(%s)=%s g(%s)=%s\n",
113 mR = strtod(vv[3].
c_str(),0);
114 gR = strtod(vv[4].
c_str(),0);
121 if(vv[++i] !=
"ANGULAR") {
123 printf(
"%s instead of ANGULAR\n",vv[i].
c_str());
127 if(
_verbose) printf(
"Angle is measured between particles %s\n",vv[i].
c_str());
131 assert(vv[++i] ==
"TYPE");
132 std::string type = vv[++i];
140 else if(type ==
"RBW_ZEMACH") {
145 else if(type ==
"RBW_KUEHN") {
150 else if(type ==
"RBW_CLEO") {
159 if(i < vv.size() - 1) {
160 if(vv[i+1] ==
"DVFF") {
162 if(vv[++i] ==
"BLATTWEISSKOPF") {
164 double R = strtod(vv[++i].
c_str(),0);
171 if(i < vv.size() - 1) {
172 if(vv[i+1] ==
"BVFF") {
174 if(vv[++i] ==
"BLATTWEISSKOPF") {
177 double R = strtod(vv[++i].
c_str(),0);
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)
virtual void processAmp(EvtComplex c, std::vector< std::string > vv, bool conj)
Pair strToPair(const char *str)
complex_t R(double Q2, double M2, double G, double Mp2, double Mm2)