00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "EvtGenBase/EvtPatches.hh"
00024 #include <stdlib.h>
00025 #include "EvtGenBase/EvtParticle.hh"
00026 #include "EvtGenBase/EvtGenKine.hh"
00027 #include "EvtGenBase/EvtPDL.hh"
00028 #include "EvtGenBase/EvtVector4C.hh"
00029 #include "EvtGenBase/EvtVector4R.hh"
00030 #include "EvtGenBase/EvtTensor4C.hh"
00031 #include "EvtGenBase/EvtReport.hh"
00032 #include "EvtGenBase/EvtHelSys.hh"
00033 #include "EvtJ2BB2.hh"
00034 #include "EvtGenBase/EvtdFunctionSingle.hh"
00035 #include "EvtGenBase/EvtRaritaSchwinger.hh"
00036 #include "EvtGenBase/EvtRaritaSchwingerParticle.hh"
00037
00038 #include <string>
00039
00040 using std::endl;
00041 using std::cout;
00042 EvtJ2BB2::~EvtJ2BB2() {}
00043
00044 void EvtJ2BB2::getName(std::string& model_name){
00045
00046 model_name="J2BB2";
00047
00048 }
00049
00050
00051 EvtDecayBase* EvtJ2BB2::clone(){
00052
00053 return new EvtJ2BB2;
00054
00055 }
00056
00057 void EvtJ2BB2::init(){
00058
00059 checkNDaug(2);
00060 checkSpinParent(EvtSpinType::VECTOR);
00061 checkSpinDaughter(0,EvtSpinType::RARITASCHWINGER);
00062 checkSpinDaughter(1,EvtSpinType::RARITASCHWINGER);
00063
00064 }
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074 void EvtJ2BB2::decay( EvtParticle *p){
00075
00076 static EvtId DZP=EvtPDL::getId("Delta0");
00077 static EvtId DZM=EvtPDL::getId("anti-Delta0");
00078 static EvtId DPP=EvtPDL::getId("Delta+");
00079 static EvtId DPM=EvtPDL::getId("anti-Delta-");
00080 static EvtId DMP=EvtPDL::getId("Delta-");
00081 static EvtId DMM=EvtPDL::getId("anti-Delta+");
00082 static EvtId DPPP=EvtPDL::getId("Delta++");
00083 static EvtId DPPM=EvtPDL::getId("anti-Delta--");
00084
00085 static EvtId SZP=EvtPDL::getId("Sigma*0");
00086 static EvtId SZM=EvtPDL::getId("anti-Sigma*0");
00087 static EvtId SPP=EvtPDL::getId("Sigma*+");
00088 static EvtId SPM=EvtPDL::getId("anti-Sigma*-");
00089 static EvtId SMP=EvtPDL::getId("Sigma*-");
00090 static EvtId SMM=EvtPDL::getId("anti-Sigma*+");
00091
00092 static EvtId XP=EvtPDL::getId("Xi*-");
00093 static EvtId XM=EvtPDL::getId("anti-Xi*+");
00094 static EvtId XZP=EvtPDL::getId("Xi*0");
00095 static EvtId XZM=EvtPDL::getId("anti-Xi*0");
00096
00097 static EvtId OP=EvtPDL::getId("Omega-");
00098 static EvtId OM=EvtPDL::getId("anti-Omega+");
00099
00100 p->initializePhaseSpace(getNDaug(),getDaugs());
00101
00102 EvtParticle *v,*s1;
00103 EvtVector4R pv,ps,ppr;
00104
00105 v =p->getDaug(0);
00106 s1=p->getDaug(1);
00107 pv=v->getP4();
00108 ps=s1->getP4();
00109 ppr=p->getP4();
00110
00111 EvtHelSys angles(ppr,pv);
00112 double theta =angles.getHelAng(1);
00113 double phi =angles.getHelAng(2);
00114 double gamma=0;
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126 double mass_b1,mass_b2;
00127 EvtId d1;
00128 d1=v->getId();
00129
00130
00131
00132 if((d1==XP)||(d1==XM)||(d1==XZP)||(d1==XZM)) {mass_b1=1.532;}
00133 else if((d1==SPP)||(d1==SPM)||(d1==SMP)||(d1==SMM)||(d1==SZP)||(d1==SZM)){mass_b1=1.383;}
00134 else if((d1==DZP)||(d1==DZM)||(d1==DPP)||(d1==DPM)||(d1==DMP)||(d1==DMM)||(d1==DPPP)||(d1==DPPM)){mass_b1=1.232;}
00135 else if((d1==OP)||d1==OM){mass_b1=1.67245;}
00136 else{cout<<"The decay is not the process: J/psi->B10 B10bar(decuplet baryon) ."<<endl;}
00137
00138 mass_b2=mass_b1;
00139 double mass_M = EvtPDL::getMass(getParentId());
00140
00141
00142
00143
00144 double R=pow(mass_b1+mass_M/2.0,2.0);
00145 double c1=mass_M*mass_M/4.0-mass_b1*mass_b1;
00146 double u=pow((R-c1)/(R+c1),2.0);
00147
00148 if(getNArg()>0){ alpha=getArg(0);}
00149 else{
00150 alpha=(-9*u*u*u+17*u*u-16*u+8)/(9*u*u*u-7*u*u+8);
00151 }
00152
00153 double F00,F01,F03,F10,F11,F22,F23,F30,F32,F33;
00154 double scale1=sqrt(3.0)*u/(u-2.0);
00155 double scale2=3.0*u/(3.0*u-4);
00156
00157
00158
00159
00160 F00=sqrt((1-alpha)/(4.0*(1.0+scale2*scale2)));
00161 F03=sqrt((1+alpha)/(2.0*(1.0+2.0*scale1*scale1)));
00162 F01=scale1*F03;F11=scale2*F00;
00163 F22=F11;F32=F01;F33=F00;F30=F03;F10=F01;F23=F32;
00164
00165
00166
00167 vertex(0,0,0,Djmn(1, 1, 0,phi,theta,gamma)*F00);
00168 vertex(0,0,1,Djmn(1, 1,-1,phi,theta,gamma)*F01);
00169 vertex(0,0,2,0.0);
00170 vertex(0,0,3,Djmn(1, 1, 1,phi,theta,gamma)*F03);
00171 vertex(0,1,0,Djmn(1, 1, 1,phi,theta,gamma)*F10);
00172 vertex(0,1,1,Djmn(1, 1, 0,phi,theta,gamma)*F11);
00173 vertex(0,1,2,0.0);
00174 vertex(0,1,3,0.0);
00175 vertex(0,2,0,0.0);
00176 vertex(0,2,1,0.0);
00177 vertex(0,2,2,Djmn(1, 1, 0,phi,theta,gamma)*F22);
00178 vertex(0,2,3,Djmn(1, 1,-1,phi,theta,gamma)*F23);
00179 vertex(0,3,0,Djmn(1, 1,-1,phi,theta,gamma)*F30);
00180 vertex(0,3,1,0.0);
00181 vertex(0,3,2,Djmn(1, 1, 1,phi,theta,gamma)*F32);
00182 vertex(0,3,3,Djmn(1, 1, 0,phi,theta,gamma)*F33);
00183
00184 vertex(1,0,0,Djmn(1,-1, 0,phi,theta,gamma)*F00);
00185 vertex(1,0,1,Djmn(1,-1,-1,phi,theta,gamma)*F01);
00186 vertex(1,0,2,0.0);
00187 vertex(1,0,3,Djmn(1,-1, 1,phi,theta,gamma)*F03);
00188 vertex(1,1,0,Djmn(1,-1, 1,phi,theta,gamma)*F10);
00189 vertex(1,1,1,Djmn(1,-1, 0,phi,theta,gamma)*F11);
00190 vertex(1,1,2,0.0);
00191 vertex(1,1,3,0.0);
00192 vertex(1,2,0,0.0);
00193 vertex(1,2,1,0.0);
00194 vertex(1,2,2,Djmn(1,-1, 0,phi,theta,gamma)*F22);
00195 vertex(1,2,3,Djmn(1,-1,-1,phi,theta,gamma)*F23);
00196 vertex(1,3,0,Djmn(1,-1,-1,phi,theta,gamma)*F30);
00197 vertex(1,3,1,0.0);
00198 vertex(1,3,2,Djmn(1,-1, 1,phi,theta,gamma)*F32);
00199 vertex(1,3,3,Djmn(1,-1, 0,phi,theta,gamma)*F33);
00200
00201 vertex(2,0,0,Djmn(1, 0, 0,phi,theta,gamma)*F00);
00202 vertex(2,0,1,Djmn(1, 0,-1,phi,theta,gamma)*F01);
00203 vertex(2,0,2,0.0);
00204 vertex(2,0,3,Djmn(1, 0, 1,phi,theta,gamma)*F03);
00205 vertex(2,1,0,Djmn(1, 0, 1,phi,theta,gamma)*F10);
00206 vertex(2,1,1,Djmn(1, 0, 0,phi,theta,gamma)*F11);
00207 vertex(2,1,2,0.0);
00208 vertex(2,1,3,0.0);
00209 vertex(2,2,0,0.0);
00210 vertex(2,2,1,0.0);
00211 vertex(2,2,2,Djmn(1, 0, 0,phi,theta,gamma)*F22);
00212 vertex(2,2,3,Djmn(1, 0,-1,phi,theta,gamma)*F23);
00213 vertex(2,3,0,Djmn(1, 0,-1,phi,theta,gamma)*F30);
00214 vertex(2,3,1,0.0);
00215 vertex(2,3,2,Djmn(1, 0, 1,phi,theta,gamma)*F32);
00216 vertex(2,3,3,Djmn(1, 0, 0,phi,theta,gamma)*F33);
00217
00218 return ;
00219
00220 }
00221
00222
00223
00224