00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "EvtGenBase/EvtPatches.hh"
00023 #include <stdlib.h>
00024 #include "EvtGenBase/EvtParticle.hh"
00025 #include "EvtGenBase/EvtGenKine.hh"
00026 #include "EvtGenBase/EvtPDL.hh"
00027 #include "EvtGenBase/EvtVector4R.hh"
00028 #include "EvtGenBase/EvtVector4C.hh"
00029 #include "EvtGenBase/EvtTensor4C.hh"
00030 #include "EvtGenBase/EvtReport.hh"
00031 #include "EvtGenBase/EvtComplex.hh"
00032 #include "EvtGenModels/EvtSVPHelAmp.hh"
00033 #include <string>
00034
00035 EvtSVPHelAmp::~EvtSVPHelAmp() {}
00036
00037 void EvtSVPHelAmp::getName(std::string& model_name){
00038
00039 model_name="SVP_HELAMP";
00040
00041 }
00042
00043
00044 EvtDecayBase* EvtSVPHelAmp::clone(){
00045
00046 return new EvtSVPHelAmp;
00047
00048 }
00049
00050 void EvtSVPHelAmp::initProbMax(){
00051
00052 setProbMax(getArg(0)*getArg(0)+getArg(2)*getArg(2));
00053
00054 }
00055
00056
00057 void EvtSVPHelAmp::init(){
00058
00059
00060 checkNArg(4);
00061 checkNDaug(2);
00062
00063 checkSpinParent(EvtSpinType::SCALAR);
00064
00065 checkSpinDaughter(0,EvtSpinType::VECTOR);
00066 checkSpinDaughter(1,EvtSpinType::PHOTON);
00067
00068 }
00069
00070 void EvtSVPHelAmp::decay( EvtParticle *p ){
00071
00072 EvtComplex hp(getArg(0)*cos(getArg(1)),getArg(0)*sin(getArg(1)));
00073 EvtComplex hm(getArg(2)*cos(getArg(3)),getArg(2)*sin(getArg(3)));
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083 EvtComplex h0=EvtComplex(0.0,0.0);
00084
00085 EvtParticle *v1,*ph;
00086
00087 p->initializePhaseSpace(getNDaug(),getDaugs());
00088 v1 = p->getDaug(0);
00089 ph = p->getDaug(1);
00090 EvtVector4R momv1 = v1->getP4();
00091 EvtVector4R momph = ph->getP4();
00092
00093 EvtTensor4C d,g;
00094
00095 g.setdiag(1.0,-1.0,-1.0,-1.0);
00096
00097 EvtVector4R v,vp;
00098
00099 v=momv1/momv1.d3mag();
00100 vp=(momv1+momph)/(momv1+momph).mass();
00101
00102 d=((1.0/sqrt(3.0))*(h0-(hp+hm))*(-1.0/sqrt(3.0)))*g+
00103 ((1.0/sqrt(2.0))*(hp-hm)*EvtComplex(0.0,1.0)*(sqrt(1.0/2.0)))*dual(directProd(v,vp))+
00104 (sqrt(2.0/3.0)*(h0+0.5*(hp+hm))*sqrt(3.0/2.0))*(directProd(v,v)+(1.0/3.0)*g);
00105
00106 EvtVector4C ep0,ep1,ep2;
00107
00108 ep0=d.cont1(v1->eps(0).conj());
00109 ep1=d.cont1(v1->eps(1).conj());
00110 ep2=d.cont1(v1->eps(2).conj());
00111
00112 EvtVector4C ep20,ep21,ep22;
00113
00114 ep20=ph->epsParentPhoton(0).conj();
00115 ep21=ph->epsParentPhoton(1).conj();
00116
00117 vertex(0,0,ep0*ep20);
00118 vertex(0,1,ep0*ep21);
00119
00120 vertex(1,0,ep1*ep20);
00121 vertex(1,1,ep1*ep21);
00122
00123 vertex(2,0,ep2*ep20);
00124 vertex(2,1,ep2*ep21);
00125
00126
00127 return ;
00128
00129 }
00130