9#include <generators/modules/bhwideinput/BHWideInputModule.h>
11#include <framework/datastore/StoreArray.h>
13#include <Math/Vector3D.h>
30 setDescription(
"Generates radiative BhaBha scattering events with BHWide.");
34 "Min [0] and Max [1] value for the scattering angle [deg] of the positron.",
make_vector(15.0, 165.0));
36 "Min [0] and Max [1] value for the scattering angle [deg] of the electron.",
make_vector(15.0, 165.0));
39 addParam(
"MinEnergy",
m_eMin,
"Minimum energy for electrons in the final state [GeV] (default: 0.2 GeV)", 0.2);
41 "Vacuum polarization: off (off - EW off, too), Burkhardt89 (bhlumi), Eidelman/Jegerlehner95 (eidelman) or Burkhardt/Pietrzyk95 (burkhardt)",
42 std::string(
"burkhardt"));
43 addParam(
"WtMax",
m_wtMax,
"Maximum of weight (wtmax, default: 3.0), if <0: internal maximum search", 3.);
76 B2FATAL(
"BHWideInputModule::event(): BeamParameters have changed within a job, this is not supported for BHWide!");
84 ROOT::Math::LorentzRotation boost = initial.
getCMSToLab();
87 ROOT::Math::XYZVector vertex = initial.
getVertex();
100 B2RESULT(
"BHWideInputModule: Total cross section: " <<
m_generator.getCrossSection() * 0.001 <<
" nb +- " <<
102 m_generator.getCrossSectionError() * 0.001 <<
" nb");
108 double ecm = nominal.getMass();
129 B2INFO(
"BHWideInputModule: Switching OFF EW corrections");
135 else B2FATAL(
"BHWideInputModule: Vacuum Polarization option does not exist: " <<
m_vacPolString);
@ PP_BURKHARDT
Burkhardt and Pietrzyk 1995 (Moriond).
@ PP_BHLUMI
Burkhardt et.al.
@ PP_OFF
Photon vacuum polarization is off.
This class contains the nominal beam parameters and the parameters used for smearing of the primary v...
This class contains the initial state for the given event.
const ROOT::Math::LorentzRotation & getCMSToLab() const
Return the LorentzRotation to convert from CMS to lab frame.
const ROOT::Math::XYZVector & getVertex() const
Get the position of the collision.
@ c_checkCyclic
Check for cyclic dependencies.
@ c_setDecayInfo
Set decay time and vertex.
void setDescription(const std::string &description)
Sets the description of the module.
bool registerInDataStore(DataStore::EStoreFlags storeFlags=DataStore::c_WriteOut)
Register the object/array in the DataStore.
Accessor to arrays stored in the data store.
void addParam(const std::string &name, T ¶mVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module.
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
std::pair< T, T > vectorToPair(std::vector< T > &vec, const std::string &name="")
std::vector< T > make_vector(T const &t1, T const &t2)
make_vector.
Abstract base class for different kinds of events.