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: EvtDecayParm.cc 00012 // 00013 // Description: Store decay parameters for one decay. 00014 // 00015 // Modification history: 00016 // 00017 // RYD April 5, 1997 Module created 00018 // 00019 //------------------------------------------------------------------------ 00020 // 00021 #include "EvtGenBase/EvtPatches.hh" 00022 #include <iostream> 00023 #include <fstream> 00024 #include <stdlib.h> 00025 #include <ctype.h> 00026 #include "EvtGenBase/EvtParticleDecay.hh" 00027 #include "EvtGenBase/EvtParticle.hh" 00028 #include "EvtGenBase/EvtRandom.hh" 00029 #include "EvtGenBase/EvtReport.hh" 00030 #include "EvtGenBase/EvtPDL.hh" 00031 #include "EvtGenBase/EvtId.hh" 00032 #include <string> 00033 #include <vector> 00034 using std::fstream; 00035 void EvtParticleDecay::printSummary(){ 00036 00037 if (_decay!=0) _decay->printSummary(); 00038 00039 } 00040 00041 void EvtParticleDecay::chargeConj(EvtParticleDecay *decay){ 00042 00043 _brfrsum=decay->_brfrsum; 00044 _massmin=decay->_massmin; 00045 00046 _decay=decay->_decay->clone(); 00047 00048 int ndaug=decay->_decay->getNDaug(); 00049 int narg=decay->_decay->getNArg(); 00050 double brfr=decay->_decay->getBranchingFraction(); 00051 std::string name; 00052 decay->_decay->getName(name); 00053 EvtId ipar=EvtPDL::chargeConj(decay->_decay->getParentId()); 00054 int i; 00055 EvtId* daug=new EvtId[ndaug]; 00056 for(i=0;i<ndaug;i++){ 00057 daug[i]=EvtPDL::chargeConj(decay->_decay->getDaug(i)); 00058 } 00059 //Had to add 1 to make sure the vector is not empty! 00060 std::vector<std::string> args; 00061 for(i=0;i<narg;i++){ 00062 args.push_back(decay->_decay->getArgStr(i)); 00063 } 00064 00065 _decay->saveDecayInfo(ipar,ndaug,daug,narg,args,name,brfr); 00066 00067 if (decay->_decay->getPHOTOS()) _decay->setPHOTOS(); 00068 00069 delete [] daug; 00070 00071 } 00072 00073 00074 00075 00076 00077 00078