//-------------------------------------------------------------------------- // // Environment: // This software is part of the EvtGen package developed jointly // for the BaBar and CLEO collaborations. If you use all or part // of it, please give an appropriate acknowledgement. // // Copyright Information: See EvtGen/COPYRIGHT // Copyright (C) 2001 Caltech, UCSB // // Module: EvtSVSCPLH.cc // // Description: The decay of a scalar to a scalar and a vector particle are // performed with CP violation and different widths for // the cp even and odd states. E.g. B->J/psi K_S. // // Modification history: // // Ryd March 29, 2001 Module created // //------------------------------------------------------------------------ // #include "EvtGenBase/EvtPatches.hh" #include #include "EvtGenBase/EvtParticle.hh" #include "EvtGenBase/EvtGenKine.hh" #include "EvtGenBase/EvtCPUtil.hh" #include "EvtGenBase/EvtPDL.hh" #include "EvtGenBase/EvtReport.hh" #include "EvtGenModels/EvtSVSCPLH.hh" #include "EvtGenBase/EvtId.hh" #include #include "EvtGenBase/EvtConst.hh" #include "EvtGenBase/EvtVector4C.hh" using std::endl; EvtSVSCPLH::~EvtSVSCPLH() {} std::string EvtSVSCPLH::getName(){ return "SVS_CPLH"; } EvtDecayBase* EvtSVSCPLH::clone(){ return new EvtSVSCPLH; } void EvtSVSCPLH::init(){ // check that there are 8 arguments checkNArg(8); checkNDaug(2); checkSpinParent(EvtSpinType::SCALAR); checkSpinDaughter(0,EvtSpinType::VECTOR); checkSpinDaughter(1,EvtSpinType::SCALAR); static double ctau=EvtPDL::getctau(EvtPDL::getId("B0")); // hbar/s _dm=getArg(0); _dgamma=EvtConst::c*getArg(1)/ctau; _qop=getArg(2)*exp(EvtComplex(0.0,getArg(3))); _poq=1.0/_qop; _Af=getArg(4)*exp(EvtComplex(0.0,getArg(5))); _Abarf=getArg(6)*exp(EvtComplex(0.0,getArg(7))); if (verbose()){ report(INFO,"EvtGen")<<":EvtSVSCPLH:dm="<<_dm<getP4Restframe();; double norm=p->getDaug(0)->mass()/(p->getDaug(0)->getP4().d3mag()*p4_parent.mass()); EvtParticle* v=p->getDaug(0); vertex(0,amp*norm*(p4_parent*(v->epsParent(0)))); vertex(1,amp*norm*(p4_parent*(v->epsParent(1)))); vertex(2,amp*norm*(p4_parent*(v->epsParent(2)))); return ; }