Module to inject particles into a tank. More...
#include <ParticleInjector.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 | |
fwk::VModule::ResultFlag | Finish () |
Finish: invoked at end of the run (NOT end of the event) 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 () |
ParticleInjector () | |
fwk::VModule::ResultFlag | Run (evt::Event &theEvent) |
Run: invoked once per event. More... | |
ResultFlag | RunWithTiming (evt::Event &event) |
virtual | ~ParticleInjector () |
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 | |
double | GetAzimuth () |
double | GetDiscreteEnergy (std::vector< double > &flux, std::vector< double > &energy, double max) |
double | GetEnergy () |
double | GetTime () |
double | GetZenith () |
void | InjectParticles () |
REGISTER_MODULE ("ParticleInjectorOG", ParticleInjector) | |
void | SetPosition (double &x, double &y, double &z) |
Module to inject particles into a tank.
Definition at line 38 of file ParticleInjectorOG/ParticleInjector.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 |
ParticleInjector::ParticleInjector | ( | ) |
Definition at line 62 of file ParticleInjectorOG/ParticleInjector.cc.
|
virtual |
Definition at line 95 of file ParticleInjectorOG/ParticleInjector.cc.
References fContinuousAzimuthDistribution, fContinuousZenithDistribution, fElectronSpectrum, fMuonSpectrum, fPhotonSpectrum, and fTimeSpectrum.
|
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 263 of file ParticleInjectorOG/ParticleInjector.cc.
References fwk::VModule::eSuccess, fContinuousAzimuthDistribution, fContinuousZenithDistribution, fElectronSpectrum, fMuonSpectrum, and fPhotonSpectrum.
|
private |
Definition at line 332 of file ParticleInjectorOG/ParticleInjector.cc.
References fContinuousAzimuthDistribution, fDiscreteAzimuth, fRandomEngine, fUseDiscreteDirection, and utl::RandomEngine::GetEngine().
Referenced by InjectParticles().
|
private |
Definition at line 469 of file ParticleInjectorOG/ParticleInjector.cc.
References fRandomEngine, utl::RandomEngine::GetEngine(), INFO, and max.
Referenced by GetEnergy().
|
private |
Definition at line 374 of file ParticleInjectorOG/ParticleInjector.cc.
References utl::Particle::eAntiMuon, utl::Particle::eElectron, utl::Particle::eMuon, utl::Particle::ePhoton, utl::Particle::ePositron, fDiscreteElectronEnergy, fDiscreteElectronFlux, fDiscreteMuonEnergy, fDiscreteMuonFlux, fDiscretePhotonEnergy, fDiscretePhotonFlux, fElectronSpectrum, fElectronSpectrumMax, fMuonSpectrum, fMuonSpectrumMax, fParticleType, fPhotonSpectrum, fPhotonSpectrumMax, fUseDiscreteSpectrum, GetDiscreteEnergy(), utl::GeV, and INFO.
Referenced by InjectParticles().
|
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.
|
private |
Definition at line 412 of file ParticleInjectorOG/ParticleInjector.cc.
References fDiscreteParticleTime, fRandomEngine, and utl::RandomEngine::GetEngine().
Referenced by InjectParticles().
|
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().
|
private |
Definition at line 353 of file ParticleInjectorOG/ParticleInjector.cc.
References fContinuousZenithDistribution, fDiscreteZenith, fRandomEngine, fUseDiscreteDirection, and utl::RandomEngine::GetEngine().
Referenced by InjectParticles().
|
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 107 of file ParticleInjectorOG/ParticleInjector.cc.
References fwk::VModule::eSuccess, fContinuousAzimuthDistribution, fContinuousAzimuthString, fContinuousZenithDistribution, fContinuousZenithString, fDiscreteAzimuth, fDiscreteElectronEnergy, fDiscreteElectronFlux, fDiscreteMuonEnergy, fDiscreteMuonFlux, fDiscreteParticleTime, fDiscretePhotonEnergy, fDiscretePhotonFlux, fDiscreteZenith, fElectronEnergyMax, fElectronEnergyMin, fElectronSpectrum, fElectronSpectrumMax, fElectronSpectrumString, fMuonEnergyMax, fMuonEnergyMin, fMuonSpectrum, fMuonSpectrumMax, fMuonSpectrumString, fNumberOfParticles, fParticleType, fPhotonEnergyMax, fPhotonEnergyMin, fPhotonSpectrum, fPhotonSpectrumMax, fPhotonSpectrumString, fRandomEngine, fSingleTankID, fUseDiscreteDirection, fUseDiscreteSpectrum, fUseDiscreteTime, fUseInjectAllParticles, fUseSinglePosition, fUseSingleTank, fX, fY, fZ, utl::Branch::GetChild(), utl::Branch::GetData(), utl::Branch::GetTopBranch(), utl::GeV, and utl::kPi.
|
inlineinherited |
Definition at line 95 of file VModule.h.
References fwk::VModule::fStopwatch, and utl::Stopwatch::Reset().
|
private |
Definition at line 280 of file ParticleInjectorOG/ParticleInjector.cc.
References sevt::Station::AddParticle(), utl::Particle::eBackground, fCurrentDetectorStation, fNumberOfParticles, fParticleType, fRandomEngine, fSEvent, fUseInjectAllParticles, GetAzimuth(), GetEnergy(), utl::RandomEngine::GetEngine(), sdet::Station::GetId(), sdet::Station::GetLocalCoordinateSystem(), sevt::SEvent::GetStation(), GetTime(), GetZenith(), sevt::Station::HasSimData(), sevt::SEvent::HasStation(), sevt::Station::MakeSimData(), sevt::SEvent::MakeStation(), SetPosition(), and spectrumParticles.
Referenced by Run().
|
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 230 of file ParticleInjectorOG/ParticleInjector.cc.
References fwk::VModule::eFailure, ERROR, fwk::VModule::eSuccess, fCurrentDetectorStation, fSEvent, fSingleTankID, fUseSingleTank, evt::Event::GetSEvent(), sdet::SDetector::GetStation(), evt::Event::HasSEvent(), InjectParticles(), sdet::SDetector::StationsBegin(), and sdet::SDetector::StationsEnd().
|
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 427 of file ParticleInjectorOG/ParticleInjector.cc.
References fCurrentDetectorStation, fRandomEngine, fUseSinglePosition, fX, fY, fZ, utl::RandomEngine::GetEngine(), sdet::Station::GetHeight(), sdet::Station::GetRadius(), and utl::kPi.
Referenced by InjectParticles().
|
private |
Definition at line 80 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Finish(), GetAzimuth(), Init(), and ~ParticleInjector().
|
private |
Definition at line 73 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Init().
|
private |
Definition at line 74 of file ParticleInjectorOG/ParticleInjector.h.
|
private |
Definition at line 79 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Finish(), GetZenith(), Init(), and ~ParticleInjector().
|
private |
Definition at line 72 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Init().
|
private |
Definition at line 112 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by InjectParticles(), Run(), and SetPosition().
|
private |
Definition at line 62 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by GetAzimuth(), and Init().
|
private |
Definition at line 69 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by GetEnergy(), and Init().
|
private |
Definition at line 66 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by GetEnergy(), and Init().
|
private |
Definition at line 68 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by GetEnergy(), and Init().
|
private |
Definition at line 65 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by GetEnergy(), and Init().
|
private |
Definition at line 64 of file ParticleInjectorOG/ParticleInjector.h.
|
private |
Definition at line 70 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by GetEnergy(), and Init().
|
private |
Definition at line 67 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by GetEnergy(), and Init().
|
private |
Definition at line 63 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by GetZenith(), and Init().
|
private |
Definition at line 89 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Init().
|
private |
Definition at line 88 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Init().
|
private |
Definition at line 83 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Finish(), GetEnergy(), Init(), and ~ParticleInjector().
|
private |
Definition at line 93 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by GetEnergy(), and Init().
|
private |
Definition at line 76 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Init().
|
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 87 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Init().
|
private |
Definition at line 86 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Init().
|
private |
Definition at line 82 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Finish(), GetEnergy(), Init(), and ~ParticleInjector().
|
private |
Definition at line 92 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by GetEnergy(), and Init().
|
private |
Definition at line 75 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Init().
|
private |
Definition at line 57 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Init(), and InjectParticles().
|
private |
Definition at line 96 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by GetEnergy(), Init(), and InjectParticles().
|
private |
Definition at line 91 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Init().
|
private |
Definition at line 90 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Init().
|
private |
Definition at line 84 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Finish(), GetEnergy(), Init(), and ~ParticleInjector().
|
private |
Definition at line 94 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by GetEnergy(), and Init().
|
private |
Definition at line 77 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Init().
|
private |
Definition at line 98 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by GetAzimuth(), GetDiscreteEnergy(), GetTime(), GetZenith(), Init(), InjectParticles(), and SetPosition().
|
private |
Definition at line 113 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by InjectParticles(), and Run().
|
private |
Definition at line 58 of file ParticleInjectorOG/ParticleInjector.h.
|
private |
Definition at line 81 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by ~ParticleInjector().
|
private |
Definition at line 51 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by GetAzimuth(), GetZenith(), and Init().
|
private |
Definition at line 52 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by GetEnergy(), and Init().
|
private |
Definition at line 55 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Init().
|
private |
Definition at line 53 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Init(), and InjectParticles().
|
private |
Definition at line 54 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Init(), and SetPosition().
|
private |
Definition at line 50 of file ParticleInjectorOG/ParticleInjector.h.
|
private |
Definition at line 60 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Init(), and SetPosition().
|
private |
Definition at line 60 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Init(), and SetPosition().
|
private |
Definition at line 60 of file ParticleInjectorOG/ParticleInjector.h.
Referenced by Init(), and SetPosition().