00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "EvtGenBase/EvtPatches.hh"
00022 #include <math.h>
00023 #include <stdlib.h>
00024 #include "EvtGenBase/EvtParticle.hh"
00025 #include "EvtGenBase/EvtKine.hh"
00026
00027 #include "EvtGenBase/EvtVector4C.hh"
00028 #include "EvtGenBase/EvtVector4R.hh"
00029 #include "EvtGenBase/EvtTensor4C.hh"
00030 #include "EvtGenBase/EvtHelSys.hh"
00031 #include "EvtGenModels/EvtVVS.hh"
00032 #include <string>
00033 using namespace std;
00034
00035
00036 double VVS::R00(double r){
00037 return r;
00038 }
00039
00040 double VVS::Fij(int i, int j, double r){
00041 double mpsi=(_pd[0]+_pd[1]+_pd[2]).mass();
00042 double temp=mpsi*r;
00043 if(i==0&& j==0) return 0;
00044 if(i==1&& j==0) return temp;
00045 if(i==-1&& j==0) return -temp;
00046
00047 }
00048
00049 EvtComplex VVS::amps1(int m, int i, int j){
00050 double mrho=_res[0];
00051 double wrho=_res[1];
00052 double s;
00053 EvtComplex img(0.0,1.0),dpro;
00054 EvtVector4R prho;
00055 prho=_pd[i]+_pd[j];
00056 s=prho.mass2();
00057 dpro=s-mrho*mrho+img*sqrt(s)*wrho;
00058 EvtHelSys angles(prho,_pd[i]),labAngles;
00059 double theta,phi,ct1,st1,phi1,st,ct;
00060 double rpp=angles.getHelAng(0);
00061 theta=angles.getHelAng(1);
00062 phi =angles.getHelAng(2);
00063 ct1 =labAngles.Angles(prho,1);
00064 phi1=labAngles.Angles(prho,2);
00065 int lamb;
00066 EvtComplex temp(0.0,0.0);
00067 for(lamb=-1;lamb<=1;lamb++) temp=temp+Fij(lamb,0,prho.d3mag())*Djmn(1,m,lamb,phi1,ct1,0.0)/dpro*R00(rpp)*Djmn(1,lamb,0,phi,theta,0.0);
00068 return temp;
00069 }
00070
00071 double VVS::amps(){
00072 double r1=_par[0];
00073 double phase1=_par[1];
00074 double r2=_par[2];
00075 double phase2=_par[3];
00076 double temp=0.0;
00077 int m;
00078 for(m=-1;m<=1;m+=2) temp=temp+pow(abs(r1*exp(EvtComplex(0,phase1))*amps1(m,0,1)+r2*exp(EvtComplex(0,phase2))*amps1(m,0,2)+amps1(m,1,2)),2.);
00079 return temp;
00080 }