evtgen is hosted by Hepforge, IPPP Durham
EvtGen  2.0.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
EvtRadCorr.cpp
Go to the documentation of this file.
1 
2 /***********************************************************************
3 * Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
4 * *
5 * This file is part of EvtGen. *
6 * *
7 * EvtGen is free software: you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation, either version 3 of the License, or *
10 * (at your option) any later version. *
11 * *
12 * EvtGen is distributed in the hope that it will be useful, *
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15 * GNU General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU General Public License *
18 * along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
19 ***********************************************************************/
20 
21 #include "EvtGenBase/EvtRadCorr.hh"
22 
24 #include "EvtGenBase/EvtPatches.hh"
25 #include "EvtGenBase/EvtReport.hh"
26 
27 #include <iostream>
28 #include <stdlib.h>
29 using std::endl;
30 
32 bool EvtRadCorr::_alwaysRadCorr = false;
33 bool EvtRadCorr::_neverRadCorr = false;
34 
36 {
37  _fsrEngine = 0;
38  _alwaysRadCorr = false;
39  _neverRadCorr = false;
40 }
41 
43 {
44  if ( _fsrEngine )
45  delete _fsrEngine;
46  _fsrEngine = 0;
47 }
48 
50 {
51  _fsrEngine = fsrEngine;
52 }
53 
55 {
56  if ( _fsrEngine == 0 ) {
57  EvtGenReport( EVTGEN_ERROR, "EvtGen" )
58  << "No RadCorr model available in "
59  << "EvtRadCorr::doRadCorr()." << endl;
60  ::abort();
61  }
62 
63  if ( !_neverRadCorr )
64  _fsrEngine->doRadCorr( p );
65  return;
66 }
67 
69 {
70  return _alwaysRadCorr;
71 }
73 {
74  return _neverRadCorr;
75 }
76 
78 {
79  _alwaysRadCorr = true;
80  _neverRadCorr = false;
81 }
83 {
84  _alwaysRadCorr = false;
85  _neverRadCorr = true;
86 }
88 {
89  _alwaysRadCorr = false;
90  _neverRadCorr = false;
91 }
static void setAlwaysRadCorr()
Definition: EvtRadCorr.cpp:77
virtual void doRadCorr(EvtParticle *p)=0
static void doRadCorr(EvtParticle *p)
Definition: EvtRadCorr.cpp:54
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=0)
Definition: EvtReport.cpp:33
static void setRadCorrEngine(EvtAbsRadCorr *fsrEngine)
Definition: EvtRadCorr.cpp:49
static bool neverRadCorr()
Definition: EvtRadCorr.cpp:72
static EvtAbsRadCorr * _fsrEngine
Definition: EvtRadCorr.hh:45
static bool _neverRadCorr
Definition: EvtRadCorr.hh:47
static void setNormalRadCorr()
Definition: EvtRadCorr.cpp:87
static bool _alwaysRadCorr
Definition: EvtRadCorr.hh:46
static void setNeverRadCorr()
Definition: EvtRadCorr.cpp:82
static bool alwaysRadCorr()
Definition: EvtRadCorr.cpp:68