12 #include <fwk/CentralConfig.h>
13 #include <fwk/RandomEngineRegistry.h>
15 #include <evt/Event.h>
16 #include <evt/ShowerSimData.h>
17 #include <evt/LaserData.h>
18 #include <evt/DefaultShowerGeometryProducer.h>
20 #include <utl/AugerCoordinateSystem.h>
21 #include <utl/AugerUnits.h>
22 #include <utl/CoordinateSystem.h>
23 #include <utl/ErrorLogger.h>
24 #include <utl/RandomEngine.h>
25 #include <utl/Reader.h>
26 #include <utl/Point.h>
27 #include <utl/Particle.h>
28 #include <utl/UTMPoint.h>
29 #include <utl/Vector.h>
30 #include <utl/PhysicalConstants.h>
32 #include <CLHEP/Random/RandGauss.h>
39 using namespace LaserGeneratorNA;
40 using CLHEP::RandGauss;
53 fDoEnergySmearing(false),
79 &RandomEngineRegistry::GetInstance().Get(RandomEngineRegistry::eDetector);
82 info <<
"Version: " <<
GetVersionInfo(VModule::eRevisionNumber) <<
"\n"
98 INFO(
"LaserGenerator");
101 ERROR(
"Shower sim data already exists. Cannot produce Laser simulation.");
120 info <<
"Laser energy: " << energy / (1e-3 *
joule) <<
" mJ";
void SetLaserWavelength(const double laserwavelength)
Branch GetTopBranch() const
void SetPolarizationStatus(const bool PolarizationStatus)
LaserData & GetLaserData()
Get the laser data.
bool HasLaserData() const
Check initialization of the LaserData.
Report success to RunController.
RandomEngineType & GetEngine()
void MakeLaserData()
Make the LaserData.
bool HasSimShower() const
void SetGroundParticleCoordinateSystemAzimuth(const double azimuth)
Set the azimuth angle of the shower. Angle in x-y plane wrt. to the x axis (0 is from east)...
#define INFO(message)
Macro for logging informational messages.
Branch GetChild(const std::string &childName) const
Get child of this Branch by child name.
std::string GetVersionInfo(const VersionInfoType v) const
Retrieve different sorts of module version info.
fwk::VModule::ResultFlag Init()
Initialize: invoked at beginning of run (NOT beginning of event)
constexpr double nanometer
Interface class to access Shower Simulated parameters.
fwk::VModule::ResultFlag Finish()
Finish: invoked at end of the run (NOT end of the event)
Class representing a document branch.
ShowerSimData & GetSimShower()
void SetEnergy(const double theEnergy)
Set the energy of the shower primary particle.
void GetData(bool &b) const
Overloads of the GetData member template function.
fwk::VModule::ResultFlag Run(evt::Event &theEvent)
Run: invoked once per event.
Data structure for Laser simulation and reconstruction.
void SetPrimaryParticle(const int type)
Set the type of the shower primary particle.
ResultFlag
Flag returned by module methods to the RunController.
void SetGroundParticleCoordinateSystemZenith(const double zenith)
Set the zenith angle of the shower. Room angle between z-axis and direction from where the shower is ...
utl::RandomEngine * fRandomEngine
void MakeSimShower(const evt::VShowerGeometryProducer &p)
Report failure to RunController, causing RunController to terminate execution.
#define ERROR(message)
Macro for logging error messages.
virtual ~LaserGenerator()