/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Generator/BesEvtGen/BesEvtGen-00-03-58/src/EvtGen/EvtGenModels/EvtPhiDalitz.cc

Go to the documentation of this file.
00001 #include "EvtGenBase/EvtPatches.hh"
00002  
00003 #include <stdlib.h>
00004 #include <math.h>
00005 #include "EvtGenBase/EvtVector4R.hh"
00006 #include "EvtGenBase/EvtParticle.hh"
00007 #include "EvtGenBase/EvtGenKine.hh"
00008 #include "EvtGenBase/EvtPDL.hh"
00009 #include "EvtGenModels/EvtPhiDalitz.hh"
00010 #include "EvtGenBase/EvtReport.hh"
00011 #include <string>
00012  
00013 EvtPhiDalitz::~EvtPhiDalitz() {}
00014 
00015 void EvtPhiDalitz::getName(std::string& model_name){
00016 
00017   model_name="PHI_DALITZ";     
00018 
00019 }
00020 
00021 
00022 EvtDecayBase* EvtPhiDalitz::clone(){
00023 
00024   return new EvtPhiDalitz;
00025 
00026 }
00027 
00028 void EvtPhiDalitz::init(){
00029 
00030   // check that there are 0 arguments
00031   checkNArg(0);
00032   checkNDaug(3);
00033 
00034   checkSpinParent(EvtSpinType::VECTOR);
00035 
00036   checkSpinDaughter(0,EvtSpinType::SCALAR);
00037   checkSpinDaughter(1,EvtSpinType::SCALAR);
00038   checkSpinDaughter(2,EvtSpinType::SCALAR);
00039 }
00040 
00041 
00042 
00043 void EvtPhiDalitz::decay( EvtParticle *p){
00044 
00045   EvtId PIP=EvtPDL::getId("pi+");
00046   EvtId PIM=EvtPDL::getId("pi-");
00047   EvtId PIZ=EvtPDL::getId("pi0");
00048   EvtId RHOP=EvtPDL::getId("rho+");
00049   EvtId RHOM=EvtPDL::getId("rho-");
00050   EvtId RHOZ=EvtPDL::getId("rho0");
00051   EvtId OMEGA=EvtPDL::getId("omega");
00052 
00053   p->initializePhaseSpace(getNDaug(),getDaugs());
00054 
00055   EvtVector4R Ppip = p->getDaug(0)->getP4();
00056   EvtVector4R Ppim = p->getDaug(1)->getP4();
00057   EvtVector4R Ppi0 = p->getDaug(2)->getP4();
00058   EvtVector4R Qp = (Ppim + Ppi0);
00059   EvtVector4R Qm = (Ppip + Ppi0);
00060   EvtVector4R Q0 = (Ppip + Ppim);
00061   double m2_pip = pow(EvtPDL::getMeanMass(PIP),2); 
00062   double m2_pim = pow(EvtPDL::getMeanMass(PIM),2);
00063   double m2_pi0 = pow(EvtPDL::getMeanMass(PIZ),2);
00064   double M2rhop = pow(EvtPDL::getMeanMass(RHOP),2);
00065   double M2rhom = pow(EvtPDL::getMeanMass(RHOM),2);
00066   double M2rho0 = pow(EvtPDL::getMeanMass(RHOZ),2);
00067   double M2omega = pow(EvtPDL::getMeanMass(OMEGA),2);
00068 
00069   double Wrhop = EvtPDL::getWidth(RHOP);
00070   double Wrhom = EvtPDL::getWidth(RHOM);
00071   double Wrho0 = EvtPDL::getWidth(RHOZ);
00072   double Womega = EvtPDL::getWidth(OMEGA);
00073     
00074   EvtComplex Atot(0,0);
00075 
00076   //Rho+ Risonance Amplitude
00077   double Gp = Wrhop*pow(((Qp.mass2()-m2_pim-m2_pi0)/2-M2rhop/4)/(M2rhop/4-(m2_pim+m2_pi0)/2),3/2)*(M2rhop/Qp.mass2());
00078   EvtComplex Drhop((Qp.mass2()-M2rhop),Qp.mass()*Gp);
00079   EvtComplex A1(M2rhop/Drhop);
00080 
00081   //Rho- Risonance Amplitude
00082   double Gm = Wrhom*pow(((Qm.mass2()-m2_pip-m2_pi0)/2-M2rhom/4)/(M2rhom/4-(m2_pip+m2_pi0)/2),3/2)*(M2rhom/Qm.mass2());
00083   EvtComplex Drhom((Qm.mass2()-M2rhom),Qm.mass()*Gm);
00084   EvtComplex A2(M2rhom/Drhom);
00085 
00086   //Rho0 Risonance Amplitude
00087   double G0 = Wrho0*pow(((Q0.mass2()-m2_pip-m2_pim)/2-M2rho0/4)/(M2rho0/4-(m2_pip+m2_pim)/2),3/2)*(M2rho0/Q0.mass2());
00088   EvtComplex Drho0((Q0.mass2()-M2rho0),Q0.mass()*G0);
00089   EvtComplex A3(M2rho0/Drho0);
00090  
00091   //Omega Risonance Amplitude
00092   EvtComplex OmegaPhase(0,-0.22);    
00093   EvtComplex DOmega((Q0.mass2()-M2omega),Q0.mass()*Womega);
00094   EvtComplex A4(0.0071*M2omega*exp(OmegaPhase)/DOmega);
00095 
00096   //Direct Decay Amplitude
00097   EvtComplex DirPhase(0,2.47);
00098   EvtComplex A5(0.78*exp(DirPhase));
00099 
00100   Atot=A1+A2+A3+A4+A5;
00101 
00102   vertex(0,Atot);
00103   vertex(1,Atot);
00104   vertex(2,Atot);
00105 
00106   return ;
00107    
00108 }
00109 
00110 
00111 
00112 
00113 
00114 
00115 

Generated on Tue Nov 29 23:12:20 2016 for BOSS_7.0.2 by  doxygen 1.4.7