PMT simulation from PE release times to PE charge distribution. More...
#include <SdPMTSimulator.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 () |
fwk::VModule::ResultFlag | Run (evt::Event &event) |
Run: invoked once per event. More... | |
ResultFlag | RunWithTiming (evt::Event &event) |
SdPMTSimulator () | |
virtual | ~SdPMTSimulator () |
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 | |
void | ConvertPEToBaseSignal (const utl::TimeDistributionI &pe, utl::TimeDistributionD &baseSignal, double PMTGain) |
REGISTER_MODULE ("SdPMTSimulatorASCII", SdPMTSimulator) | |
void | SimulateSaturation (utl::TimeDistributionD &baseSignal, const utl::TimeDistributionD &totalBaseSignal) |
Private Attributes | |
TH1D * | fAnodePulseHisto |
utl::TabulatedFunction * | fAveragePulseShape |
CLHEP::RandGeneral * | fChargeDist |
TH1D * | fChargeHisto |
double | fCurrent2VoltageMultiplier |
bool | fFirstCycle |
std::vector < sevt::StationConstants::SignalComponent > | fFundamentalComponents |
std::vector < sevt::StationConstants::SignalComponent > | fFundamentalComponents_ASCII |
bool | fLimitStationsPerCycle |
double | fMaxCharge |
utl::TabulatedFunction::Iterator | fMaxPulseHeight |
double | fMinCharge |
unsigned int | fNStationsPerCycle |
double | fPMTGain_ASCII |
double | fPMTGain_WCD |
utl::RandomEngine * | fRandomEngine |
std::string | fRootHistoFilename |
utl::TabulatedFunction * | fSaturationFunction |
sevt::SEvent::StationIterator | fStationIterator |
bool | fWantRootHistos |
PMT simulation from PE release times to PE charge distribution.
This simulation takes PE release times from the tank simulation and produces a distribution of charge (in electrons) as a function of time. The charge includes the PMT gain (G), so that, for example, 1 photoelectron produces a total charge of G electrons.
Traces are broken down by component. Note, however, that the total signal may not be exactly equal to the sum of the signal components. This is because each component is simulated independently (including the total), and the simulation involves drawing random numbers to normalize the pulse shape for each photoelectron. We do it this way, rather than summing all components to make the total, because some components include other components. For example, the first-bounce component includes contributions from all particle types. Accounting for this in the sum would require hardwiring such that summing takes place only over exclusive components.
Definition at line 48 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.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 |
SdPMTSimulator::SdPMTSimulator | ( | ) |
Definition at line 27 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.cc.
|
virtual |
Definition at line 40 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.cc.
References fAnodePulseHisto, fAveragePulseShape, fChargeDist, fChargeHisto, and fSaturationFunction.
|
private |
Definition at line 209 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.cc.
References utl::TimeDistribution< T >::AddTime(), fAveragePulseShape, fChargeDist, fMaxCharge, fMaxPulseHeight, fMinCharge, utl::TimeDistribution< T >::GetBinning(), utl::TabulatedFunction::GetNPoints(), utl::TimeDistribution< T >::SparseBegin(), utl::TimeDistribution< T >::SparseEnd(), utl::Pair::X(), and utl::TabulatedFunction::Y().
Referenced by Run().
|
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 357 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.cc.
References fwk::VModule::eSuccess, fAnodePulseHisto, fAveragePulseShape, fChargeDist, fChargeHisto, fRootHistoFilename, fSaturationFunction, and fWantRootHistos.
|
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 51 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.cc.
References utl::TabulatedFunction::Begin(), fwk::VModule::eFailure, utl::TabulatedFunction::End(), ERROR, fwk::VModule::eSuccess, fAnodePulseHisto, fAveragePulseShape, fChargeDist, fChargeHisto, fCurrent2VoltageMultiplier, fFirstCycle, fFundamentalComponents, fFundamentalComponents_ASCII, fLimitStationsPerCycle, fMaxCharge, fMaxPulseHeight, fMinCharge, fNStationsPerCycle, fPMTGain_ASCII, fPMTGain_WCD, fRandomEngine, fRootHistoFilename, fSaturationFunction, fWantRootHistos, utl::Branch::GetChild(), utl::Branch::GetData(), utl::RandomEngine::GetEngine(), utl::TabulatedFunction::GetNPoints(), utl::Branch::GetTopBranch(), INFO, utl::nanosecond, and galactic::volt.
|
inlineinherited |
Definition at line 95 of file VModule.h.
References fwk::VModule::fStopwatch, and utl::Stopwatch::Reset().
|
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 264 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.cc.
References ConvertPEToBaseSignal(), sdet::PMTConstants::eAnyType, fwk::VModule::eBreakLoop, fwk::VModule::eFailure, ERROR, fwk::VModule::eSuccess, cevt::StationConstants::eTotal, sdet::PMTConstants::eWaterCherenkovLarge, fFirstCycle, fFundamentalComponents, fFundamentalComponents_ASCII, fLimitStationsPerCycle, fNStationsPerCycle, fPMTGain_ASCII, fPMTGain_WCD, fSaturationFunction, fStationIterator, sevt::PMTSimData::GetBaseSignal(), sevt::PMTSimData::GetPETimeDistribution(), sevt::PMTSimData::HasBaseSignal(), sevt::PMTSimData::HasPETimeDistribution(), evt::Event::HasSEvent(), INFO, sevt::PMTSimData::MakeBaseSignal(), SimulateSaturation(), utl::TimeDistribution< T >::SparseBegin(), utl::TimeDistribution< T >::SparseEnd(), sevt::SEvent::StationsBegin(), and sevt::SEvent::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 249 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.cc.
References fSaturationFunction, utl::TimeDistribution< T >::GetStart(), utl::TimeDistribution< T >::GetStop(), max, and utl::TabulatedFunction::Y().
Referenced by Run().
|
private |
Definition at line 85 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.
Referenced by Finish(), Init(), and ~SdPMTSimulator().
|
private |
Definition at line 68 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.
Referenced by ConvertPEToBaseSignal(), Finish(), Init(), and ~SdPMTSimulator().
|
private |
Definition at line 58 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.
Referenced by ConvertPEToBaseSignal(), Finish(), Init(), and ~SdPMTSimulator().
|
private |
Definition at line 84 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.
Referenced by Finish(), Init(), and ~SdPMTSimulator().
|
private |
Definition at line 88 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.
Referenced by Init().
|
private |
Definition at line 61 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.
|
private |
Definition at line 92 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.
|
private |
Definition at line 92 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.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 62 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.
|
private |
Definition at line 79 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.
Referenced by ConvertPEToBaseSignal(), and Init().
|
private |
Definition at line 66 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.
Referenced by ConvertPEToBaseSignal(), and Init().
|
private |
Definition at line 78 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.
Referenced by ConvertPEToBaseSignal(), and Init().
|
private |
Definition at line 63 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.
|
private |
Definition at line 70 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.
|
private |
Definition at line 69 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.
|
private |
Definition at line 90 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.
Referenced by Init().
|
private |
Definition at line 81 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.
|
private |
Definition at line 87 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.
Referenced by Finish(), Init(), Run(), SimulateSaturation(), and ~SdPMTSimulator().
|
private |
Definition at line 60 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.
Referenced by Run().
|
private |
Definition at line 80 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.