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

Fast parametrization-based tank simulation. More...

#include <FastTankSimulator.h>

Inheritance diagram for FastTankSimulatorOG::FastTankSimulator:
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

 FastTankSimulator ()
 
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...
 
VModule::ResultFlag Init ()
 Initialize: invoked at beginning of run (NOT beginning of event) More...
 
void InitTiming ()
 
VModule::ResultFlag Run (evt::Event &event)
 Run: invoked once per event. More...
 
ResultFlag RunWithTiming (evt::Event &event)
 

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 CalculateDistanceInTank (const utl::Particle &p)
 
double CalculateIntegratedCerenkovRate (const utl::Particle &p, const double)
 
void CalculatePhotoElectrons (const utl::Particle &p, const double)
 
 REGISTER_MODULE ("FastTankSimulatorOG", FastTankSimulator)
 
void SimulateComptonScattering (const utl::Particle &p)
 
void SimulateElectrons (const utl::Particle &p)
 
void SimulateMuons (const utl::Particle &p)
 
void SimulatePairProduction (const utl::Particle &p)
 
void SimulatePhotons (const utl::Particle &p)
 

Private Attributes

double fCerenkovMinElectron = 0
 
double fCerenkovMinMuon = 0
 
const sdet::StationfCurrentDetectorStation = nullptr
 
sevt::StationfCurrentEventStation = nullptr
 
double fdEdXElectron = 0
 
double fdEdXMuon = 0
 
double fEMinPhoton = 0
 
utl::Particle fInitialParticle
 
utl::TabulatedFunction fPairProductionProbability
 
std::vector< double > fPECumulativeProbability
 
double fPhotoElectronRate = 0
 
utl::TabulatedFunction fPhotonInteractionLength
 
utl::RandomEnginefRandomEngine = nullptr
 
double fTankHeight = 0
 
double fTankRadiusSquared = 0
 
double fWaterRIndex = 0
 

Detailed Description

Fast parametrization-based tank simulation.

Author
Troy Porter
Date
09 Sep 2003

Definition at line 38 of file FastTankSimulator.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

FastTankSimulator::FastTankSimulator ( )

Definition at line 54 of file FastTankSimulator.cc.

Member Function Documentation

double FastTankSimulator::CalculateDistanceInTank ( const utl::Particle p)
private
double FastTankSimulator::CalculateIntegratedCerenkovRate ( const utl::Particle p,
const double  energyLoss 
)
private
void FastTankSimulator::CalculatePhotoElectrons ( const utl::Particle p,
const double  cerenkovRate 
)
private
VModule::ResultFlag FastTankSimulator::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 172 of file FastTankSimulator.cc.

References fwk::VModule::eSuccess.

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 FastTankSimulator::Init ( )
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 67 of file FastTankSimulator.cc.

References fwk::VModule::eSuccess, fCerenkovMinElectron, fCerenkovMinMuon, fdEdXElectron, fdEdXMuon, fEMinPhoton, fPairProductionProbability, fPECumulativeProbability, fPhotoElectronRate, fPhotonInteractionLength, fRandomEngine, fWaterRIndex, utl::Branch::GetChild(), utl::Branch::GetData(), and utl::Branch::GetTopBranch().

void fwk::VModule::InitTiming ( )
inlineinherited

Definition at line 95 of file VModule.h.

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

FastTankSimulatorOG::FastTankSimulator::REGISTER_MODULE ( "FastTankSimulatorOG"  ,
FastTankSimulator   
)
private
VModule::ResultFlag FastTankSimulator::Run ( evt::Event event)
virtual
ResultFlag fwk::VModule::RunWithTiming ( evt::Event event)
inlineinherited
void FastTankSimulator::SimulateComptonScattering ( const utl::Particle p)
private
void FastTankSimulator::SimulateElectrons ( const utl::Particle p)
private
void FastTankSimulator::SimulateMuons ( const utl::Particle p)
private
void FastTankSimulator::SimulatePairProduction ( const utl::Particle p)
private
void FastTankSimulator::SimulatePhotons ( const utl::Particle p)
private

Member Data Documentation

double FastTankSimulatorOG::FastTankSimulator::fCerenkovMinElectron = 0
private

Definition at line 51 of file FastTankSimulator.h.

Referenced by Init(), and SimulateElectrons().

double FastTankSimulatorOG::FastTankSimulator::fCerenkovMinMuon = 0
private

Definition at line 50 of file FastTankSimulator.h.

Referenced by Init(), and SimulateMuons().

const sdet::Station* FastTankSimulatorOG::FastTankSimulator::fCurrentDetectorStation = nullptr
private

Definition at line 76 of file FastTankSimulator.h.

Referenced by CalculateDistanceInTank(), Run(), and SimulateComptonScattering().

sevt::Station* FastTankSimulatorOG::FastTankSimulator::fCurrentEventStation = nullptr
private

Definition at line 77 of file FastTankSimulator.h.

Referenced by CalculatePhotoElectrons(), and Run().

double FastTankSimulatorOG::FastTankSimulator::fdEdXElectron = 0
private

Definition at line 49 of file FastTankSimulator.h.

Referenced by CalculateIntegratedCerenkovRate(), Init(), and SimulateElectrons().

double FastTankSimulatorOG::FastTankSimulator::fdEdXMuon = 0
private

Definition at line 48 of file FastTankSimulator.h.

Referenced by CalculateIntegratedCerenkovRate(), Init(), and SimulateMuons().

double FastTankSimulatorOG::FastTankSimulator::fEMinPhoton = 0
private

Definition at line 52 of file FastTankSimulator.h.

Referenced by Init().

int fwk::VModule::fInfoLevel = 0
protectedinherited
utl::Particle FastTankSimulatorOG::FastTankSimulator::fInitialParticle
private

Definition at line 75 of file FastTankSimulator.h.

Referenced by CalculatePhotoElectrons(), and Run().

utl::TabulatedFunction FastTankSimulatorOG::FastTankSimulator::fPairProductionProbability
private

Definition at line 59 of file FastTankSimulator.h.

Referenced by Init(), and SimulatePhotons().

std::vector<double> FastTankSimulatorOG::FastTankSimulator::fPECumulativeProbability
private

Definition at line 56 of file FastTankSimulator.h.

Referenced by CalculatePhotoElectrons(), and Init().

double FastTankSimulatorOG::FastTankSimulator::fPhotoElectronRate = 0
private

Definition at line 53 of file FastTankSimulator.h.

Referenced by CalculateIntegratedCerenkovRate(), and Init().

utl::TabulatedFunction FastTankSimulatorOG::FastTankSimulator::fPhotonInteractionLength
private

Definition at line 58 of file FastTankSimulator.h.

Referenced by Init(), and SimulatePhotons().

utl::RandomEngine* FastTankSimulatorOG::FastTankSimulator::fRandomEngine = nullptr
private
double FastTankSimulatorOG::FastTankSimulator::fTankHeight = 0
private

Definition at line 62 of file FastTankSimulator.h.

Referenced by CalculateDistanceInTank(), and Run().

double FastTankSimulatorOG::FastTankSimulator::fTankRadiusSquared = 0
private

Definition at line 61 of file FastTankSimulator.h.

Referenced by CalculateDistanceInTank(), and Run().

double FastTankSimulatorOG::FastTankSimulator::fWaterRIndex = 0
private

Definition at line 54 of file FastTankSimulator.h.

Referenced by CalculateIntegratedCerenkovRate(), and Init().


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

, generated on Tue Sep 26 2023.