Simulates the shower profile with GH parametrization. More...
#include <ProfileSimulator.h>
Public Types | |
enum | ProfileType { eFromEnergy = 0, eFromFixParameters } |
Possible types of profile generation. More... | |
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 () |
ProfileSimulator () | |
fwk::VModule::ResultFlag | Run (evt::Event &theEvent) |
Run: invoked once per event. More... | |
ResultFlag | RunWithTiming (evt::Event &event) |
virtual | ~ProfileSimulator () |
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 | CalculatedEdX (double age, double density) const |
This function is obsolete Calculation of the mean energy deposition in the atmosphere. More... | |
double | CalculateNMax (double depth, double xZero, double xMax, double energy) const |
double | DicePowerLaw (double min, double max, double index) const |
double | RandomLambda (int primary, double energy) const |
double | RandomNMax (int primary, double energy) const |
double | RandomXMax (int primary, double energy) const |
double | RandomXOne (int primary, double energy) const |
double | RandomXZero (int primary, double energy) const |
REGISTER_MODULE ("ProfileSimulatorOG", ProfileSimulator) | |
Private Attributes | |
double | fAlphaSpectrum |
bool | fConstantX0 |
double | fEnergyCutoff |
bool | fGenerateEnergy |
evt::GaisserHillas4Parameter | fGH |
double | fMaxEnergy |
double | fMinEnergy |
double | fPhi |
int | fPrimary |
int | fProfileType |
utl::RandomEngine * | fRandomEngine = nullptr |
double | fTheta |
double | fXMaxSig |
Simulates the shower profile with GH parametrization.
Definition at line 24 of file ProfileSimulator.h.
|
protectedinherited |
Possible types of profile generation.
Enumerator | |
---|---|
eFromEnergy | |
eFromFixParameters |
Definition at line 35 of file ProfileSimulator.h.
|
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 |
ProfileSimulator::ProfileSimulator | ( | ) |
Definition at line 65 of file ProfileSimulator.cc.
References utl::Particle::eProton.
|
virtual |
Definition at line 72 of file ProfileSimulator.cc.
|
private |
This function is obsolete Calculation of the mean energy deposition in the atmosphere.
This function is based on the Bruce Dawson's algorithm. Calculate mean dE/dX as function of shower age and air density. Dai, 07/02/95
Definition at line 627 of file ProfileSimulator.cc.
|
private |
Evaluate Nmax for a known Xzero, Xmax and Energy at depth 'depth'. Taken from FDSim
Definition at line 590 of file ProfileSimulator.cc.
References utl::cm, utl::g, utl::kLambdaGH, and std::pow().
|
private |
Assuming a probability density function p(x) then
x / / max / | / | | p(x)dx / | p(x)dx = w, | / | min / / min /
where w is a flat distributed random number for p(x) being a powerlaw the equation is invertable and is solved analytically in this function
Definition at line 325 of file ProfileSimulator.cc.
References INFO, and std::pow().
|
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 305 of file ProfileSimulator.cc.
References io::eSuccess.
|
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 78 of file ProfileSimulator.cc.
References ERROR, io::eSuccess, evt::gh::eX0, utl::Branch::GetChild(), utl::Branch::GetData(), and fwk::CentralConfig::GetTopBranch().
|
inlineinherited |
Definition at line 95 of file VModule.h.
References fwk::VModule::fStopwatch, and utl::Stopwatch::Reset().
|
private |
Dices random lambda according to Corsika simulations. /author F.Salamida
Definition at line 482 of file ProfileSimulator.cc.
References RdGeoCeLDFFitter::c, utl::cm, utl::Particle::eProton, and utl::g.
|
private |
Dices random Nmax according to Corsika simulations. /author F.Salamida
Definition at line 535 of file ProfileSimulator.cc.
References RdGeoCeLDFFitter::c, and utl::Particle::eProton.
|
private |
Dices random XMax according to Corsika simulations.
Definition at line 429 of file ProfileSimulator.cc.
References RdGeoCeLDFFitter::c, utl::cm, utl::Particle::eProton, and utl::g.
|
private |
Dices a random Xone according to Corsika simulations.
Definition at line 351 of file ProfileSimulator.cc.
References RdGeoCeLDFFitter::c, utl::cm2, utl::Particle::eProton, and utl::g.
|
private |
Dices random XZero according to Corsika simulations.
Definition at line 388 of file ProfileSimulator.cc.
References RdGeoCeLDFFitter::c, utl::cm2, utl::Particle::eProton, and utl::g.
|
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 203 of file ProfileSimulator.cc.
References utl::abs(), utl::cm2, evt::gh::eLambda, utl::EnergyDeposit(), ERROR, io::eSuccess, atm::Atmosphere::EvaluateDepthVsHeight(), evt::gh::eX0, utl::g, utl::GaisserHillas(), det::Detector::GetAtmosphere(), evt::ShowerSimData::GetDirection(), evt::ShowerSimData::GetGHParameters(), evt::ShowerSimData::GetLocalCoordinateSystem(), evt::ShowerSimData::GetPrimaryParticle(), evt::VGaisserHillasParameter::GetXMax(), evt::Event::HasSimShower(), INFO, utl::kLambdaGH, utl::m, evt::ShowerSimData::MakedEdX(), evt::ShowerSimData::MakeGHParameters(), evt::ShowerSimData::MakeLongitudinalProfile(), std::pow(), utl::TabulatedFunction::PushBack(), evt::ShowerSimData::SetEnergy(), evt::ShowerSimData::SetEnergyCutoff(), 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 51 of file ProfileSimulator.h.
|
private |
Definition at line 59 of file ProfileSimulator.h.
|
private |
Definition at line 47 of file ProfileSimulator.h.
|
private |
Definition at line 50 of file ProfileSimulator.h.
|
private |
Definition at line 43 of file ProfileSimulator.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 46 of file ProfileSimulator.h.
|
private |
Definition at line 45 of file ProfileSimulator.h.
|
private |
Definition at line 58 of file ProfileSimulator.h.
|
private |
Definition at line 48 of file ProfileSimulator.h.
|
private |
Definition at line 49 of file ProfileSimulator.h.
|
private |
Definition at line 61 of file ProfileSimulator.h.
|
private |
Definition at line 57 of file ProfileSimulator.h.
|
private |
Definition at line 52 of file ProfileSimulator.h.