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: EvtRadCorr.cc 00012 // 00013 // Description: RadCorr interface for EvtGen 00014 // 00015 // 00016 // Modification history: 00017 // 00018 // Lange April 27, 2002 - Created 00019 // 00020 //------------------------------------------------------------------------ 00021 // 00022 #include "EvtGenBase/EvtPatches.hh" 00023 00024 #include <stdlib.h> 00025 #include <iostream> 00026 #include "EvtGenBase/EvtAbsRadCorr.hh" 00027 #include "EvtGenBase/EvtRadCorr.hh" 00028 #include "EvtGenBase/EvtReport.hh" 00029 using std::endl; 00030 00031 00032 EvtAbsRadCorr* EvtRadCorr::_isrEngine=0; 00033 bool EvtRadCorr::_alwaysRadCorr=false; 00034 bool EvtRadCorr::_neverRadCorr=false; 00035 00036 EvtRadCorr::EvtRadCorr() { 00037 _isrEngine=0; 00038 _alwaysRadCorr=false; 00039 _neverRadCorr=false; 00040 } 00041 00042 EvtRadCorr::~EvtRadCorr() { 00043 if ( _isrEngine ) delete _isrEngine; 00044 _isrEngine=0; 00045 } 00046 00047 void EvtRadCorr::setRadCorrEngine(EvtAbsRadCorr* isrEngine){ 00048 _isrEngine=isrEngine; 00049 } 00050 00051 00052 void EvtRadCorr::doRadCorr(EvtParticle *p){ 00053 00054 if (_isrEngine==0){ 00055 report(ERROR,"EvtGen") <<"No RadCorr model available in " 00056 <<"EvtRadCorr::doRadCorr()."<<endl; 00057 ::abort(); 00058 } 00059 00060 if ( !_neverRadCorr) _isrEngine->doRadCorr(p); 00061 return; 00062 } 00063 00064 00065 bool EvtRadCorr::alwaysRadCorr() {return _alwaysRadCorr;} 00066 bool EvtRadCorr::neverRadCorr() {return _neverRadCorr;} 00067 00068 void EvtRadCorr::setAlwaysRadCorr() { _alwaysRadCorr=true; _neverRadCorr=false;} 00069 void EvtRadCorr::setNeverRadCorr() { _alwaysRadCorr=false; _neverRadCorr=true;} 00070 void EvtRadCorr::setNormalRadCorr() {_alwaysRadCorr=false; _neverRadCorr=false;} 00071 00072 00073 00074 00075 00076 00077