9#include <generators/modules/bbbreminput/BBBremInputModule.h>
11#include <framework/logging/Logger.h>
12#include <framework/datastore/DataStore.h>
13#include <framework/datastore/StoreArray.h>
14#include <framework/datastore/StoreObjPtr.h>
15#include <framework/dataobjects/EventMetaData.h>
17#include <Math/Vector3D.h>
35 setDescription(
"Generates low scattering angle radiative Bhabha events (Beam-Beam Bremsstrahlung).");
38 addParam(
"MinPhotonEnergyFraction",
m_photonEFrac,
"Fraction of the minimum photon energy.", 0.000001);
72 B2FATAL(
"BBBremInputModule::event(): BeamParameters have changed within a job, this is not supported for BBBREM!");
82 ROOT::Math::LorentzRotation boost = initial.
getCMSToLab();
85 ROOT::Math::XYZVector vertex = initial.
getVertex();
93 evtMetaData->setGeneratedWeight(weight);
101 B2RESULT(
"Cross-section (weighted): " <<
m_generator.getCrossSection() <<
" +/- " <<
103 B2RESULT(
"Maximum weight delivered: " <<
m_generator.getMaxWeightDelivered());
104 B2RESULT(
"Overweight bias cross-section (unweighted): " <<
m_generator.getCrossSectionOver() <<
" +/- " <<
105 m_generator.getCrossSectionErrorOver() <<
" [mb]");
112 double centerOfMassEnergy = nominal.getMass();
This class contains the nominal beam parameters and the parameters used for smearing of the primary v...
@ c_Event
Different object in each event, all objects/arrays are invalidated after event() function has been ca...
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.
Type-safe access to single objects 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.
Abstract base class for different kinds of events.