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: EvtEtaDalitz.cc 00012 // 00013 // Description: Routine to decay eta -> pi+ pi- pi0 00014 // 00015 // Modification history: 00016 // 00017 // DJL/RYD July 23, 1997 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 "EvtGenModels/EvtEtaDalitz.hh" 00027 #include "EvtGenBase/EvtReport.hh" 00028 #include <string> 00029 00030 EvtEtaDalitz::~EvtEtaDalitz() {} 00031 00032 void EvtEtaDalitz::getName(std::string& model_name){ 00033 00034 model_name="ETA_DALITZ"; 00035 00036 } 00037 00038 00039 EvtDecayBase* EvtEtaDalitz::clone(){ 00040 00041 return new EvtEtaDalitz; 00042 00043 } 00044 00045 void EvtEtaDalitz::init(){ 00046 00047 // check that there are 0 arguments 00048 checkNArg(0); 00049 checkNDaug(3); 00050 00051 checkSpinParent(EvtSpinType::SCALAR); 00052 00053 checkSpinDaughter(0,EvtSpinType::SCALAR); 00054 checkSpinDaughter(1,EvtSpinType::SCALAR); 00055 checkSpinDaughter(2,EvtSpinType::SCALAR); 00056 } 00057 00058 00059 void EvtEtaDalitz::initProbMax(){ 00060 00061 setProbMax(2.1); 00062 00063 } 00064 00065 void EvtEtaDalitz::decay( EvtParticle *p){ 00066 00067 p->initializePhaseSpace(getNDaug(),getDaugs()); 00068 00069 EvtVector4R mompi0 = p->getDaug(2)->getP4(); 00070 double masspip = p->getDaug(0)->mass(); 00071 double masspim = p->getDaug(1)->mass(); 00072 double masspi0 = p->getDaug(2)->mass(); 00073 double m_eta = p->mass(); 00074 00075 double y; 00076 00077 //The decay amplitude coems from Layter et al PRD 7 pA2M5. 00078 //this reference doesn't make sence!!! 00079 00080 y=(mompi0.get(0)-masspi0)*(3.0/(m_eta-masspip-masspim-masspi0))-1.0; 00081 00082 EvtComplex amp(sqrt(1.0-1.07*y),0.0); 00083 00084 vertex(amp); 00085 00086 return ; 00087 00088 } 00089 00090