1 #ifndef _SdPMTSimulatorASCII_SdPMTSimulator_h_
2 #define _SdPMTSimulatorASCII_SdPMTSimulator_h_
4 #include <fwk/VModule.h>
5 #include <utl/TabulatedFunction.h>
6 #include <utl/TimeDistribution-fwd.h>
7 #include <utl/config.h>
9 #include <sevt/SEvent.h>
10 #include <sevt/StationConstants.h>
11 #include <CLHEP/Random/Randomize.h>
21 namespace SdPMTSimulatorASCII {
unsigned int fNStationsPerCycle
std::vector< sevt::StationConstants::SignalComponent > fFundamentalComponents
CLHEP::RandGeneral * fChargeDist
fwk::VModule::ResultFlag Run(evt::Event &event)
Run: invoked once per event.
Class to hold collection (x,y) points and provide interpolation between them.
utl::RandomEngine * fRandomEngine
Histogram class for time distributions with suppressed empty bins.
std::string fRootHistoFilename
void SimulateSaturation(utl::TimeDistributionD &baseSignal, const utl::TimeDistributionD &totalBaseSignal)
fwk::VModule::ResultFlag Init()
Initialize: invoked at beginning of run (NOT beginning of event)
virtual ~SdPMTSimulator()
Wraps the random number engine used to generate distributions.
sevt::SEvent::StationIterator fStationIterator
std::vector< sevt::StationConstants::SignalComponent > fFundamentalComponents_ASCII
utl::TabulatedFunction::Iterator fMaxPulseHeight
fwk::VModule::ResultFlag Finish()
Finish: invoked at end of the run (NOT end of the event)
PMT simulation from PE release times to PE charge distribution.
void ConvertPEToBaseSignal(const utl::TimeDistributionI &pe, utl::TimeDistributionD &baseSignal, double PMTGain)
ResultFlag
Flag returned by module methods to the RunController.
utl::TabulatedFunction * fAveragePulseShape
utl::TabulatedFunction * fSaturationFunction
double fCurrent2VoltageMultiplier
boost::indirect_iterator< InternalStationIterator, Station & > StationIterator
Iterator over all stations.
bool fLimitStationsPerCycle
REGISTER_MODULE("SdPMTSimulatorASCII", SdPMTSimulator)