21#include "EvtGenBase/EvtPatches.hh"
23#include "EvtGenBase/EvtParticle.hh"
24#include "EvtGenBase/EvtGenKine.hh"
25#include "EvtGenBase/EvtPDL.hh"
26#include "EvtGenBase/EvtReport.hh"
27#include "EvtGenModels/EvtCalHelAmp.hh"
28#include "EvtGenModels/EvtGlobalSet.hh"
42 model_name=
"CALHELAMP";
59 for(
int i=0;i<nd;i++) VC[i].resize(nd);
61 if(coverrf==0) {std::cout<<
"File of covariant error (myerr.dat)" <<
" is not found"<<endl;abort();}
62 for(
int i=0;i<nd;i++){
63 for(
int j=0;j<nd;j++){
79 if(
getNArg()!=4) {cout<<
"The model have 6 parameters: |g00| phi00 |g22| phi22 |g42| phi42"<<endl; abort();}
87 if(p1str==
"K_2*+" || p2str==
"K_2*+" ||p1str==
"K_2*0" || p2str==
"K_2*0" ) {
flag=2;}
else
88 if(p1str==
"K_3*+" || p2str==
"K_3*+" ||p1str==
"K_3*0" || p2str==
"K_3*0" ) {
flag=3;}
else
89 if(p1str==
"Zc+" || p2str==
"pi-" ||p1str==
"Zc-" || p2str==
"pi^+" ) {
flag=4;}
else
90 if(p0str==
"Zc+" && (p1str==
"J/psi" || p2str==
"J/psi") ) {
flag=5;}
93 double r= 2*p1.
d3mag();
99 double pmag=
phsp(mm0,mm1,mm2);
115 std::vector<EvtComplex> VG; VG.clear();
116 VG.push_back(G02); VG.push_back(G22);
117 std::vector<double> VH2,VH1,VH0;
118 VH2.resize(nd/2);VH1.resize(nd/2);VH0.resize(nd/2);
120 VH2[0]=sqrt(2./5.)*b1*r; VH2[1]= 1/sqrt(10.)*r*r*r*b3;
121 VH1[0]=-1/sqrt(10.)*b1*r; VH1[1]= r*r*r*b3*sqrt(2./5.);
123 VH2[0]=sqrt(5./14.)*b2*r*r; VH2[1]= 1/sqrt(7.)*r*r*r*r*b4;
124 VH1[0]=sqrt(1./7.)*b2*r*r; VH1[1]= -sqrt(5./14.)*r*r*r*r*b4;
126 VH2[0]=sqrt(1./3.)*b0; VH2[1]= 1/sqrt(6.)*r*r*b2;
127 VH1[0]=sqrt(1./3.)*b0; VH1[1]=-2/sqrt(6.)*r*r*b2;
128 }
else{std::cout<<
"Not allowed mode!"<<std::endl; abort();}
133 std::vector<double> DH1,DH2;
140 for(
int i=0;i<nd;i++){
141 for(
int j=0;j<nd;j++){
142 _H2err += DH2[i]*DH2[j]*VC[i][j];
143 _H1err += DH1[i]*DH1[j]*VC[i][j];
156 std::vector<double> fd;
161 std::vector<double> vpar;
162 vpar.push_back(g02);vpar.push_back(phi02);vpar.push_back(g22);vpar.push_back(phi22);
166 double hamps0 =
abs2(H20);
167 for(
int i=0;i<vpar.size();i++){
169 vpar.push_back(g02);vpar.push_back(phi02);vpar.push_back(g22);vpar.push_back(phi22);
175 double hamps2=
abs2(H20);
176 double xder=(hamps2-hamps0)/dev;
185 double rp4 = rp2*rp2;
186 double rp6 = rp2 * rp4;
187 double rp8 = rp4 * rp4;
193 return 1.0/sqrt(1+R*R*pmag*pmag);
196 return 1.0/sqrt(1+rp2/3.+rp4/9.);
199 return 1.0/sqrt(225 + 45*rp2 + 6*rp4 + rp6 );
202 return 1.0/sqrt(11025 + 1575*rp2 + 135*rp4 + 10*rp6 + rp8 );
205 cout<<
"lineshape::blattfactor: No expression for L>4 is availabe."<<endl;
218 if(m1+m2>m0) {cout<<
"HelAmp::phsp: m1("<<m1<<
") + m2("<<m2<<
") > m0("<<m0<<
") "<<endl;::abort();}
222 double m12s = m12*m12;
224 double md12s=md12*md12;
226 double pmag = sqrt( fabs( (m0s-m12s)*(m0s-md12s) ) )/2/m0;
double sin(const BesAngle a)
double cos(const BesAngle a)
*********Class see also m_nmax DOUBLE PRECISION m_MasPhot DOUBLE PRECISION m_phsu DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_r2 DOUBLE PRECISION m_WtMass INTEGER m_nmax INTEGER m_Nevgen INTEGER m_IsFSR INTEGER m_MarTot *COMMON c_KarFin $ !Output file $ !Event serial number $ !alpha QED at Thomson limit $ !minimum energy at CMS for remooval $ !infrared dimensionless $ !dummy photon IR regulator $ !crude photon multiplicity enhancement factor *EVENT $ !MC crude volume of PhhSpace *Sfactors $ !YFS formfactor IR part only $ !YFS formfactor non IR finite part $ !mass weight
double abs2(const EvtComplex &c)
double getBlattRatio(int L, double R, double pmag, double pmag0)
double phsp(double m0, double m1, double m2)
double blattfactor(int L, double R, double pmag)
void getName(std::string &name)
void decay(EvtParticle *p)
std::vector< double > firstder(std::vector< double > vh)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
static double getMeanMass(EvtId i)
static std::string name(EvtId i)
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
complex_t R(double Q2, double M2, double G, double Mp2, double Mm2)