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 "EvtPBB2.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 EvtPBB2::~EvtPBB2() {}
00043
00044 void EvtPBB2::getName(std::string& model_name){
00045
00046 model_name="PBB2";
00047
00048 }
00049
00050
00051 EvtDecayBase* EvtPBB2::clone(){
00052
00053 return new EvtPBB2;
00054
00055 }
00056
00057 void EvtPBB2::init(){
00058 checkNDaug(2);
00059 checkSpinParent(EvtSpinType::SCALAR);
00060 checkSpinDaughter(0,EvtSpinType::RARITASCHWINGER);
00061 checkSpinDaughter(1,EvtSpinType::RARITASCHWINGER);
00062
00063 }
00064
00065
00066 void EvtPBB2::initProbMax() {
00067
00068
00069 double rt =getArg(0);
00070 double pmax=2+2*rt*rt;
00071 setProbMax(pmax);
00072 }
00073
00074 void EvtPBB2::decay( EvtParticle *p){
00075
00076
00077 p->initializePhaseSpace(getNDaug(),getDaugs());
00078
00079 double rt =getArg(0);
00080 double phs=getArg(0);
00081
00082 int ii,jj;
00083 for(ii=0;ii<4;ii++){
00084 for(jj=0;jj<4;jj++){
00085 vertex(ii,jj,0);
00086 }
00087 }
00088
00089 vertex(0,0, 1.);
00090 vertex(1,1, rt*exp(EvtComplex(0,phs)));
00091 vertex(2,2,-rt*exp(EvtComplex(0,phs)));
00092 vertex(3,3, -1);
00093 return ;
00094
00095 }
00096
00097
00098
00099