00001 //-------------------------------------------------------------------------- 00002 // 00003 // Environment: 00004 // This software is part of the EvtGen package developed jointly 00005 // for the BaBar and CLEO collaborations. If you use all or part 00006 // of it, please give an appropriate acknowledgement. 00007 // 00008 // Copyright Information: See EvtGen/COPYRIGHT 00009 // Copyright (C) 1998 Caltech, UCSB 00010 // 00011 // Module: EvtVSS.cc 00012 // 00013 // Description: Routine to decay vector-> scalar scalar 00014 // 00015 // Modification history: 00016 // 00017 // RYD November 24, 1996 Module created 00018 // 00019 //------------------------------------------------------------------------ 00020 // 00021 #include "EvtGenBase/EvtPatches.hh" 00022 #include <stdlib.h> 00023 #include "EvtGenBase/EvtParticle.hh" 00024 #include "EvtGenBase/EvtGenKine.hh" 00025 #include "EvtGenBase/EvtPDL.hh" 00026 #include "EvtGenBase/EvtVector4C.hh" 00027 #include "EvtGenBase/EvtVector4R.hh" 00028 #include "EvtGenBase/EvtReport.hh" 00029 #include "EvtGenModels/EvtVSS.hh" 00030 #include <string> 00031 00032 EvtVSS::~EvtVSS() {} 00033 00034 void EvtVSS::getName(std::string& model_name){ 00035 00036 model_name="VSS"; 00037 00038 } 00039 00040 00041 EvtDecayBase* EvtVSS::clone(){ 00042 00043 return new EvtVSS; 00044 00045 } 00046 00047 void EvtVSS::init(){ 00048 00049 // check that there are 0 arguments 00050 checkNArg(0); 00051 00052 // check that there are 2 daughters 00053 checkNDaug(2); 00054 00055 // check the parent and daughter spins 00056 checkSpinParent(EvtSpinType::VECTOR); 00057 checkSpinDaughter(0,EvtSpinType::SCALAR); 00058 checkSpinDaughter(1,EvtSpinType::SCALAR); 00059 } 00060 00061 void EvtVSS::initProbMax() { 00062 00063 setProbMax(1.0); 00064 00065 } 00066 00067 void EvtVSS::decay( EvtParticle *p){ 00068 00069 p->initializePhaseSpace(getNDaug(),getDaugs()); 00070 00071 EvtVector4R pDaug = p->getDaug(0)->getP4(); 00072 00073 double norm=1.0/pDaug.d3mag(); 00074 00075 for (int i=0; i<3; i++) vertex(i,norm*pDaug*(p->eps(i))); 00076 00077 return; 00078 } 00079