1 #ifndef RdREASSimPreparatorNG_H
2 #define RdREASSimPreparatorNG_H
4 #include <fwk/VModule.h>
5 #include <utl/TimeStamp.h>
7 #include <utl/Vector.h>
11 #include <boost/tuple/tuple.hpp>
99 utl::Point GetCore(
const double zenith = std::nan(
"1"),
const double azimuth = std::nan(
"1"));
109 const std::string& corsikaparameterfile,
111 const std::string eventId,
123 std::string
AddZero(
const int runID,
const int numberofdigit);
124 std::vector<Option>
GetOptionSet(
const std::string& SetName);
145 const bool useParamCorrection =
false);
149 const double maxRadius,
const double distanceToApex);
154 const utl::Point& position,
const double distanceToApex);
160 double PowerLaw(
const double min,
const double max,
const double index)
const;
164 const unsigned int nCherenkov);
double fNeutrinoFirstIntHeight
std::vector< Option > fOptions
double fSlantDepthForCherenkovRadius
double fAzimuthHighGeneratedEvent
std::vector< double > fDiscreteZenithAngles
std::string CreateCoREASContent(const utl::Point &thecore, const utl::Vector &theAxis, const float energy, const std::string &corsikaparameterfile, const utl::TimeStamp theTime, const std::string eventId, const int rEventId, const int runId)
bool IsStationToFarAway(const utl::Point &core, const utl::Vector &axis, const utl::Point &position, const double maxRadius, const double distanceToApex)
std::vector< OptionSet > fOptionSets
bool fVariableDepthForNeutrinoChRadius
double GetEarlyLateCorrectedAxisDistance(const utl::Point &core, const utl::Vector &axis, const utl::Point &position, const double distanceToApex)
std::string CreateCoREASListContent(const utl::Point &core, const utl::Vector &axis, const EPrimary primary)
void RecordFile(const std::string &filename, const std::string &buffer)
double fAzimuthLowGeneratedEvent
bool EventHitsAERA(const utl::Point &core, const utl::Vector &axis, const unsigned int nStation, const unsigned int nCherenkov)
Prepares stearing cards for CORSIKA/CoREAS simulations and scripts for running the simulations...
std::vector< double > fDiscreteEnergies
unsigned int fNumberOfSkippedEvents
double fEnergyLowGeneratedEvent
std::vector< double > fDiscreteAzimuthAngles
double fNeutrinoFirstIntDepth
void CreateSimulationInput(const SimulationInput &input)
float GetSeaLevelRefractiveIndex()
bool fWriteAllAERAStations
A TimeStamp holds GPS second and nanosecond for some event.
bool fDistInUnitsOfCherenkovRadii
bool HasOptionSet(const std::string &SetName)
fwk::VModule::ResultFlag Run(evt::Event &event) override
Run: invoked once per event.
std::string fCreateDatabase
std::string CreateBashContent(const std::string &inpfilename)
std::pair< double, double > CherenkovRadius(const utl::Point &theCore, const utl::Vector &theAxis, const double depth=750 *utl::g/utl::cm2, const bool useParamCorrection=false)
utl::RandomEngine * fRandomEngine
Wraps the random number engine used to generate distributions.
std::string fTypeOfNeutrinoFirstInt
Structure holding content to be put in the stearing card.
void GenerateCoreAroundRandomSDStation(utl::Point &theCore)
std::string CreateCORSIKAContent(const utl::Vector &theAxis, const float energy, const utl::Point &core, const EPrimary primary)
const std::map< std::string, EPrimary > ePrimaryConvertor
std::string GetEventNumber(const std::string &eventid)
Extract Event Number from the Event ID string.
double fNeutrinoFirstIntDepthLow
SimulationInput FillEventInput(SimulationInput &input, const evt::Event &theEvent)
double fZenithHighGeneratedEvent
eTypeOfCreatedSimulations fTypeOfCreatedSimulations
void GenerateCoreAroundStation(const utl::Point ¢er, const std::vector< utl::Point > &crownStations, utl::Point &theCore)
std::vector< Option > GetOptionSet(const std::string &SetName)
std::vector< Set > fSimulationSets
double fEnergyHighGeneratedEvent
ResultFlag
Flag returned by module methods to the RunController.
std::string fHighEnergyHadronicModel
double PowerLaw(const double min, const double max, const double index) const
bool fSimulateInfillEvent
REGISTER_MODULE("RdREASSimPreparatorNG", RdREASSimPreparatorNG)
unsigned int fNeutrinoInteractionChannel
SimulationInput FillGenericRandomInput(SimulationInput &input)
void GenerateCoreForAERA(utl::Point &theCore, const double zenith, const double azimuth)
bool fVaryCoreWithinDiscreteADbin
double fNeutrinoFirstIntDepthHigh
double fMultipleOfCherenkovRadii
utl::TimeStamp fTimeGeneratedEvent
std::string AddZero(const int runID, const int numberofdigit)
fwk::VModule::ResultFlag Finish() override
Finish: invoked at end of the run (NOT end of the event)
eTypeOfCreatedSimulations
utl::Point GetCore(const double zenith=std::nan("1"), const double azimuth=std::nan("1"))
fwk::VModule::ResultFlag Init() override
Initialize: invoked at beginning of run (NOT beginning of event)
double fZenithLowGeneratedEvent
double fEnergySlopeGeneratedEvent