List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Attributes | Private Member Functions | Private Attributes
SdPMTSimulatorASCII::SdPMTSimulator Class Reference

PMT simulation from PE release times to PE charge distribution. More...

#include <SdPMTSimulator.h>

Inheritance diagram for SdPMTSimulatorASCII::SdPMTSimulator:
Inheritance graph
[legend]

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::StopwatchGetStopwatch ()
 
const utl::StopwatchGetStopwatch () 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::TabulatedFunctionfAveragePulseShape
 
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::RandomEnginefRandomEngine
 
std::string fRootHistoFilename
 
utl::TabulatedFunctionfSaturationFunction
 
sevt::SEvent::StationIterator fStationIterator
 
bool fWantRootHistos
 

Detailed Description

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.

Author
T. Paul
Date
1 March 2004

Definition at line 48 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.

Member Enumeration Documentation

enum fwk::VModule::InfoLevel
protectedinherited
Enumerator
eInfoNone 
eInfoFinal 
eInfoIntermediate 
eInfoDebug 

Definition at line 125 of file VModule.h.

enum fwk::VModule::ResultFlag
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.

Definition at line 60 of file VModule.h.

Different types of version info that can be retrieved from GetVersionInfo.

Enumerator
eFilename 
eRevisionNumber 
eDate 
eTime 
eLastEditor 

Definition at line 110 of file VModule.h.

Constructor & Destructor Documentation

SdPMTSimulator::SdPMTSimulator ( )
SdPMTSimulator::~SdPMTSimulator ( )
virtual

Member Function Documentation

void SdPMTSimulator::ConvertPEToBaseSignal ( const utl::TimeDistributionI pe,
utl::TimeDistributionD baseSignal,
double  PMTGain 
)
private
VModule::ResultFlag SdPMTSimulator::Finish ( )
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.

std::string fwk::VModule::GetResultFlagByName ( const ResultFlag  flag)
staticinherited
utl::Stopwatch& fwk::VModule::GetStopwatch ( )
inlineinherited

Definition at line 106 of file VModule.h.

References fwk::VModule::fStopwatch.

const utl::Stopwatch& fwk::VModule::GetStopwatch ( ) const
inlineinherited

Definition at line 107 of file VModule.h.

References fwk::VModule::fStopwatch.

std::string fwk::VModule::GetVersionInfo ( const VersionInfoType  v) const
inherited
VModule::ResultFlag SdPMTSimulator::Init ( )
virtual
void fwk::VModule::InitTiming ( )
inlineinherited

Definition at line 95 of file VModule.h.

References fwk::VModule::fStopwatch, and utl::Stopwatch::Reset().

SdPMTSimulatorASCII::SdPMTSimulator::REGISTER_MODULE ( "SdPMTSimulatorASCII"  ,
SdPMTSimulator   
)
private
VModule::ResultFlag SdPMTSimulator::Run ( evt::Event event)
virtual
ResultFlag fwk::VModule::RunWithTiming ( evt::Event event)
inlineinherited
void SdPMTSimulator::SimulateSaturation ( utl::TimeDistributionD baseSignal,
const utl::TimeDistributionD totalBaseSignal 
)
private

Member Data Documentation

TH1D* SdPMTSimulatorASCII::SdPMTSimulator::fAnodePulseHisto
private
utl::TabulatedFunction* SdPMTSimulatorASCII::SdPMTSimulator::fAveragePulseShape
private
CLHEP::RandGeneral* SdPMTSimulatorASCII::SdPMTSimulator::fChargeDist
private
TH1D* SdPMTSimulatorASCII::SdPMTSimulator::fChargeHisto
private
double SdPMTSimulatorASCII::SdPMTSimulator::fCurrent2VoltageMultiplier
private
bool SdPMTSimulatorASCII::SdPMTSimulator::fFirstCycle
private

Definition at line 61 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.

Referenced by Init(), and Run().

std::vector<sevt::StationConstants::SignalComponent> SdPMTSimulatorASCII::SdPMTSimulator::fFundamentalComponents
private

Definition at line 92 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.

Referenced by Init(), and Run().

std::vector<sevt::StationConstants::SignalComponent> SdPMTSimulatorASCII::SdPMTSimulator::fFundamentalComponents_ASCII
private

Definition at line 92 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.

Referenced by Init(), and Run().

int fwk::VModule::fInfoLevel = 0
protectedinherited
bool SdPMTSimulatorASCII::SdPMTSimulator::fLimitStationsPerCycle
private

Definition at line 62 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.

Referenced by Init(), and Run().

double SdPMTSimulatorASCII::SdPMTSimulator::fMaxCharge
private
utl::TabulatedFunction::Iterator SdPMTSimulatorASCII::SdPMTSimulator::fMaxPulseHeight
private
double SdPMTSimulatorASCII::SdPMTSimulator::fMinCharge
private
unsigned int SdPMTSimulatorASCII::SdPMTSimulator::fNStationsPerCycle
private

Definition at line 63 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.

Referenced by Init(), and Run().

double SdPMTSimulatorASCII::SdPMTSimulator::fPMTGain_ASCII
private

Definition at line 70 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.

Referenced by Init(), and Run().

double SdPMTSimulatorASCII::SdPMTSimulator::fPMTGain_WCD
private

Definition at line 69 of file Deprecated/UpgradeASCIITests/SdPMTSimulatorASCII/SdPMTSimulator.h.

Referenced by Init(), and Run().

utl::RandomEngine* SdPMTSimulatorASCII::SdPMTSimulator::fRandomEngine
private
std::string SdPMTSimulatorASCII::SdPMTSimulator::fRootHistoFilename
private
utl::TabulatedFunction* SdPMTSimulatorASCII::SdPMTSimulator::fSaturationFunction
private
sevt::SEvent::StationIterator SdPMTSimulatorASCII::SdPMTSimulator::fStationIterator
private
bool SdPMTSimulatorASCII::SdPMTSimulator::fWantRootHistos
private

The documentation for this class was generated from the following files:

, generated on Tue Sep 26 2023.