Simulates the Fluorescence and Cerenkov light along the shower axis. More...
#include <ShowerLightSimulator.h>
Public Types | |
enum | ResultFlag { eSuccess, eFailure, eBreakLoop, eContinueLoop } |
Flag returned by module methods to the RunController. More... | |
enum | VersionInfoType { eFilename = 1, eRevisionNumber = 2, eDate = 3, eTime = 4, eLastEditor = 5 } |
Different types of version info that can be retrieved from GetVersionInfo. More... | |
Public Member Functions | |
void | CherenkovLight (evt::Event &event, double distInit, double distFinal, bool upwardGoing, bool useCherenkovProfile) |
Simulate the Cherenkov light beam along the shower axis. More... | |
fwk::VModule::ResultFlag | Finish () |
Finish: invoked at end of the run (NOT end of the event) More... | |
void | FluorescenceLight (evt::Event &event, double distInit, double distFinal, bool upwardGoing) |
Simulate the Fluorescence photons generated isotropically along the shower axis. More... | |
utl::Stopwatch & | GetStopwatch () |
const utl::Stopwatch & | GetStopwatch () const |
std::string | GetVersionInfo (const VersionInfoType v) const |
Retrieve different sorts of module version info. More... | |
fwk::VModule::ResultFlag | Init () |
Initialize: invoked at beginning of run (NOT beginning of event) More... | |
void | InitTiming () |
void | PrimaryCherenkovLight (evt::Event &event) |
Generate Cherenkov emission from primary particle. More... | |
fwk::VModule::ResultFlag | Run (evt::Event &event) |
Run: invoked once per event. More... | |
ResultFlag | RunWithTiming (evt::Event &event) |
ShowerLightSimulator () | |
~ShowerLightSimulator () | |
Static Public Member Functions | |
static std::string | GetResultFlagByName (const ResultFlag flag) |
Protected Types | |
enum | InfoLevel { eInfoNone = 0, eInfoFinal = 1, eInfoIntermediate = 2, eInfoDebug = 3 } |
Protected Attributes | |
int | fInfoLevel = 0 |
Private Member Functions | |
REGISTER_MODULE ("ShowerLightSimulatorKG", ShowerLightSimulator) | |
Private Attributes | |
bool | fCherenkov |
bool | fFlatEarth |
bool | fFluorescence |
int | fOverRidePrimaryCharge |
bool | fPrimaryCherenkov |
double | fTimeBin |
bool | fUseCherenkovProfile |
Simulates the Fluorescence and Cerenkov light along the shower axis.
Definition at line 40 of file ShowerLightSimulator.h.
|
protectedinherited |
|
inherited |
Flag returned by module methods to the RunController.
Enumerator | |
---|---|
eSuccess |
Report success to RunController. |
eFailure |
Report failure to RunController, causing RunController to terminate execution. |
eBreakLoop |
Break current loop. It works for nested loops too! |
eContinueLoop |
Skip remaining modules in the current loop and continue with next iteration of the loop. |
|
inherited |
|
inline |
Definition at line 43 of file ShowerLightSimulator.h.
|
inline |
Definition at line 44 of file ShowerLightSimulator.h.
void ShowerLightSimulator::CherenkovLight | ( | evt::Event & | event, |
double | distInitCore, | ||
double | distFinalCore, | ||
bool | upwardGoing, | ||
bool | useCherenkovProfile | ||
) |
Simulate the Cherenkov light beam along the shower axis.
Simulate the Cherenkov light production and beam along the shower axis.
Cherenkov light is NOT isotropically emitted, and therefore the shower direction has to be taken properly into account
Definition at line 573 of file ShowerLightSimulator.cc.
References evt::ShowerSimData::AddCherenkovBeamPhotons(), evt::ShowerSimData::AddCherenkovBeamProductionPhotons(), evt::ShowerSimData::AddCherenkovPhotons(), evt::ShowerSimData::eElectron, ERROR, atm::Atmosphere::EvaluateCherenkovPhotons(), atm::Atmosphere::EvaluateDepthVsHeight(), atm::Atmosphere::EvaluateMieAttenuation(), atm::Atmosphere::EvaluateRayleighAttenuation(), atm::Atmosphere::EvaluateSlantDepthVsDistance(), fwk::CoordinateSystemRegistry::Get(), det::Detector::GetAtmosphere(), evt::ShowerSimData::GetCherenkovBeamPhotons(), evt::ShowerSimData::GetCherenkovBeamProductionPhotons(), evt::ShowerSimData::GetCherenkovPhotons(), evt::ShowerSimData::GetDirection(), evt::ShowerSimData::GetEnergyCutoff(), evt::ShowerSimData::GetGHParameters(), evt::ShowerSimData::GetLocalCoordinateSystem(), evt::ShowerSimData::GetLongitudinalProfile(), evt::ShowerSimData::GetMaxCherenkovWavelength(), evt::ShowerSimData::GetMinCherenkovWavelength(), utl::TabulatedFunction::GetNPoints(), evt::ShowerSimData::GetShowerCoordinateSystem(), atm::AttenuationResult::GetTransmissionFactor(), atm::Atmosphere::GetWavelengths(), evt::VGaisserHillasParameter::GetXMax(), utl::TabulatedFunction::GetY(), evt::ShowerSimData::HasCherenkovBeamPhotons(), evt::ShowerSimData::HasCherenkovBeamProductionPhotons(), evt::ShowerSimData::HasCherenkovPhotons(), INFO, utl::TabulatedFunction::Insert(), utl::kSpeedOfLight, G4StationSimulatorOG::p, utl::ReferenceEllipsoid::PointToLatitudeLongitudeHeight(), atm::Atmosphere::SetCherenkovEnergyCutoff(), utl::ShowerAge(), WARNING, atm::ProfileResult::Y(), and utl::TabulatedFunction::Y().
|
virtual |
Finish: invoked at end of the run (NOT end of the event)
This method is for things that should be done at the end of the run (for example, closing files or writing out histograms) {You must override this method in your concrete module}
Implements fwk::VModule.
Definition at line 457 of file ShowerLightSimulator.cc.
References io::eSuccess.
void ShowerLightSimulator::FluorescenceLight | ( | evt::Event & | event, |
double | distInitCore, | ||
double | distFinalCore, | ||
bool | upwardGoing | ||
) |
Simulate the Fluorescence photons generated isotropically along the shower axis.
Simulate the Fluorescence light generate isotropically on the shower axis
Fluorescence light has no directional information (it is isotropically emitted), and therefore it doesn't matter if the shower is UP or DOWNWARD.
Definition at line 472 of file ShowerLightSimulator.cc.
References evt::ShowerSimData::AddFluorescencePhotons(), ERROR, atm::Atmosphere::EvaluateDepthVsHeight(), atm::Atmosphere::EvaluateFluorescenceYield(), atm::Atmosphere::EvaluateSlantDepthVsDistance(), fwk::CoordinateSystemRegistry::Get(), det::Detector::GetAtmosphere(), evt::ShowerSimData::GetdEdX(), atm::Atmosphere::GetdEdX0(), evt::ShowerSimData::GetDirection(), evt::ShowerSimData::GetFluorescencePhotons(), evt::ShowerSimData::GetLocalCoordinateSystem(), evt::ShowerSimData::GetShowerCoordinateSystem(), atm::Atmosphere::GetWavelengths(), evt::ShowerSimData::HasFluorescencePhotons(), INFO, utl::TabulatedFunction::Insert(), utl::kSpeedOfLight, G4StationSimulatorOG::p, utl::ReferenceEllipsoid::PointToLatitudeLongitudeHeight(), atm::ProfileResult::Y(), and utl::TabulatedFunction::Y().
|
staticinherited |
Definition at line 8 of file VModule.cc.
References fwk::VModule::eBreakLoop, fwk::VModule::eContinueLoop, fwk::VModule::eFailure, and fwk::VModule::eSuccess.
Referenced by fwk::RunController::DoNextInSequence(), fwk::RunController::FinishBranch(), and fwk::RunController::InitBranch().
|
inlineinherited |
Definition at line 106 of file VModule.h.
References fwk::VModule::fStopwatch.
|
inlineinherited |
Definition at line 107 of file VModule.h.
References fwk::VModule::fStopwatch.
|
inherited |
Retrieve different sorts of module version info.
Definition at line 26 of file VModule.cc.
Referenced by fwk::CentralConfig::GetConfig(), ThresholdCalculatorKG::ThresholdCalculator::Init(), fdDoubleBumpFinder::FdDoubleBumpFinder::Init(), LaserGeneratorNA::LaserGenerator::Init(), LaserLightSimulatorNA::LaserLightSimulator::Init(), FdElectronicsSimulatorOG::FdElectronicsSimulator::Init(), TelescopeSimulatorKG::TelescopeSimulator::Init(), TelescopeSimulatorKG2::TelescopeSimulator::Init(), SdSimpleSimKG::SdSimpleSim::Init(), ShowerPhotonGeneratorOG::ShowerPhotonGenerator::Init(), and testRunController::testModuleVersionInfo().
|
virtual |
Initialize: invoked at beginning of run (NOT beginning of event)
This method is for things that should be done once at the beginning of a run (for example, booking histograms, performing calculations that need to be done only once, initializing parameters) {You must override this method in your concrete module}
Implements fwk::VModule.
Definition at line 60 of file ShowerLightSimulator.cc.
References io::eSuccess, utl::Branch::GetChild(), utl::Branch::GetData(), utl::Branch::GetTopBranch(), and INFO.
|
inlineinherited |
Definition at line 95 of file VModule.h.
References fwk::VModule::fStopwatch, and utl::Stopwatch::Reset().
void ShowerLightSimulator::PrimaryCherenkovLight | ( | evt::Event & | event | ) |
Generate Cherenkov emission from primary particle.
Definition at line 783 of file ShowerLightSimulator.cc.
References utl::abs(), utl::cm2, utl::Particle::eIron, utl::Particle::eNeutron, utl::Particle::ePhoton, utl::Particle::eProton, ERROR, atm::Atmosphere::EvaluateDepthVsHeight(), atm::Atmosphere::EvaluateDistanceVsSlantDepth(), atm::Atmosphere::EvaluateHeightVsSlantDepth(), atm::Atmosphere::EvaluateMieAttenuation(), atm::Atmosphere::EvaluateRayleighAttenuation(), atm::Atmosphere::EvaluateRefractionIndexVsHeight(), utl::g, fwk::CoordinateSystemRegistry::Get(), det::Detector::GetAtmosphere(), evt::ShowerSimData::GetPrimaryParticle(), evt::ShowerSimData::GetShowerCoordinateSystem(), atm::AttenuationResult::GetTransmissionFactor(), atm::Atmosphere::GetWavelengths(), evt::ShowerSimData::GetXFirst(), INFO, utl::kPi, utl::kSpeedOfLight, utl::m, atm::ProfileResult::MaxX(), atm::ProfileResult::MinX(), G4StationSimulatorOG::p, utl::ReferenceEllipsoid::PointToLatitudeLongitudeHeight(), std::pow(), atm::ProfileResult::Y(), and utl::TabulatedFunction::Y().
|
private |
|
virtual |
Run: invoked once per event.
This method is for things that should be done once per event {You must override this method in your concrete module}
Implements fwk::VModule.
Definition at line 88 of file ShowerLightSimulator.cc.
References utl::cm, utl::cm2, utl::deg, ERROR, io::eSuccess, atm::Atmosphere::EvaluateDensityVsHeight(), atm::Atmosphere::EvaluateDepthVsHeight(), atm::Atmosphere::EvaluateDistanceVsSlantDepth(), atm::Atmosphere::EvaluateHeightVsDepth(), atm::Atmosphere::EvaluateHeightVsDistance(), atm::Atmosphere::EvaluateHeightVsSlantDepth(), atm::Atmosphere::EvaluateSlantDepthVsDistance(), atm::Atmosphere::EvaluateTemperatureVsHeight(), utl::g, fwk::CoordinateSystemRegistry::Get(), det::Detector::GetAtmosphere(), evt::ShowerSimData::GetdEdX(), evt::ShowerSimData::GetDirection(), evt::ShowerSimData::GetLocalCoordinateSystem(), evt::ShowerSimData::GetLongitudinalProfile(), utl::AugerException::GetMessage(), utl::TabulatedFunction::GetNPoints(), evt::ShowerSimData::GetShowerCoordinateSystem(), evt::ShowerSimData::HasdEdX(), evt::ShowerSimData::HasGHParameters(), evt::ShowerSimData::HasLongitudinalProfile(), evt::Event::HasSimShower(), INFO, utl::Intersection(), km, utl::m, max, atm::ProfileResult::MaxX(), atm::ProfileResult::MinX(), utl::mm, utl::ReferenceEllipsoid::PointToLatitudeLongitudeHeight(), and atm::ProfileResult::Y().
|
inlineinherited |
Definition at line 98 of file VModule.h.
References fwk::VModule::fStopwatch, fwk::VModule::Run(), utl::Stopwatch::Start(), and utl::Stopwatch::Stop().
Referenced by fwk::RunController::DoNextInSequence().
|
private |
Definition at line 69 of file ShowerLightSimulator.h.
|
private |
Definition at line 71 of file ShowerLightSimulator.h.
|
private |
Definition at line 68 of file ShowerLightSimulator.h.
|
protectedinherited |
Definition at line 123 of file VModule.h.
Referenced by RdChannelASCIINoiseImporterRD::RdChannelASCIINoiseImporterRD::Init(), Rd2dLDFFitter::Rd2dLDFFitter::Init(), RdChannelNoiseImporter_AERA::RdChannelNoiseImporter_AERA::Init(), and Rd2dLDFFitter::Rd2dLDFFitter::Run().
|
private |
Definition at line 73 of file ShowerLightSimulator.h.
|
private |
Definition at line 70 of file ShowerLightSimulator.h.
|
private |
Definition at line 72 of file ShowerLightSimulator.h.
|
private |
Definition at line 74 of file ShowerLightSimulator.h.