9 #ifndef _SdSimpleSimKG_SdSimpleSim_h_
10 #define _SdSimpleSimKG_SdSimpleSim_h_
20 #include <fwk/VModule.h>
21 #include <utl/Vector.h>
22 #include <utl/TabulatedFunction.h>
23 #include <evt/ShowerSimData.h>
40 namespace SdSimpleSimKG {
87 double TimeOffset,
double TimeWindow);
89 bool IsNoise (
double TimeWindow);
96 double NKG (
double N,
double Rm,
double R,
double s);
99 double TankRadius,
double TankHeight,
double Zenith,
100 double Age,
double Rm,
101 double Ne,
double Ng,
double Nmu,
102 bool fluctuations=
true);
110 double LTP (
double r,
195 #endif // _SdSimpleSimKG_SdSimpleSim_h_
utl::TabulatedFunction CalculateLogZdist(const utl::TabulatedFunction &MuonProfile, double cosTheta, double XobsVert)
FitParam(double a, double b)
double SampleEnergy(double Emin, double Emax, double Age)
Interface class to access to the SD part of an event.
FitParam FitDecay(const utl::TabulatedFunction &prof, bool dEdX=false)
Class to hold collection (x,y) points and provide interpolation between them.
static const double fNerlingA1b
REGISTER_MODULE("SdSimpleSimKG", SdSimpleSim)
double T1TriggerProbability(double signal, double S1000, double theta)
bool Noise(sevt::SEvent &sevent, const utl::TimeStamp &T0, int TankID, double TimeOffset, double TimeWindow)
fwk::VModule::ResultFlag Run(evt::Event &event)
Run: invoked once per event.
A TimeStamp holds GPS second and nanosecond for some event.
double CalculateTankSignal(double CoreDistance, double TankRadius, double TankHeight, double Zenith, double Age, double Rm, double Ne, double Ng, double Nmu, bool fluctuations=true)
double TankIntersection(double r, double phi, double z, double theta, double TankRadius)
bool fMuonProductionHeightFromProfile
static const double fNerlingA2a
class to hold data at Station level
fwk::VModule::ResultFlag Init()
Initialize: invoked at beginning of run (NOT beginning of event)
A super-simple-and-fast SD-event-generator. See GAP2008-061 for details.
double GenerateNoiseStation(sevt::Station &tank, const utl::TimeStamp &T0, double TimeOffset, double TimeWindow)
Wraps the random number engine used to generate distributions.
Class describing the Atmospheric profile.
double NerlingF2(double E, double a2, double s)
utl::RandomEngine & fRandomEngine
for CLHEP random nubers
double LTP(double r, double theta, double energy)
fwk::VModule::ResultFlag Finish()
Finish: invoked at end of the run (NOT end of the event)
static const double fNerlingA2b
std::map< evt::ShowerSimData::ProfileType, FitParam > fProfileExtrapolation
ResultFlag
Flag returned by module methods to the RunController.
TProfile * fElectron_vs_z
static const double fNerlingA1a
double NerlingF1(double E, double a1)
bool IsNoise(double TimeWindow)
FitParam FitAtmosphere(const atm::ProfileResult &prof)
double NKG(double N, double Rm, double R, double s)
double GetCDASTriggerTimeWindow(const utl::TimeStamp &time)
utl::TabulatedFunction GetLogZdist(const utl::TabulatedFunction &prof, const utl::Point &core, const utl::Vector &axis)
bool fForceClosestTankToTrigger
double fNoiseRatePerStation
FitParam fSlantDepthExtrapolation