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

Module to inject particles into a tank. More...

#include <ParticleInjector.h>

Inheritance diagram for ParticleInjectorOG::ParticleInjector:
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 ()
 
 ParticleInjector ()
 
fwk::VModule::ResultFlag Run (evt::Event &theEvent)
 Run: invoked once per event. More...
 
ResultFlag RunWithTiming (evt::Event &event)
 
virtual ~ParticleInjector ()
 

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 GetAzimuth ()
 
double GetDiscreteEnergy (std::vector< double > &flux, std::vector< double > &energy, double max)
 
double GetEnergy ()
 
double GetTime ()
 
double GetZenith ()
 
void InjectParticles ()
 
 REGISTER_MODULE ("ParticleInjectorOG", ParticleInjector)
 
void SetPosition (double &x, double &y, double &z)
 

Private Attributes

TF1 * fContinuousAzimuthDistribution
 
std::string fContinuousAzimuthString
 
std::string fContinuousTimeString
 
TF1 * fContinuousZenithDistribution
 
std::string fContinuousZenithString
 
const sdet::StationfCurrentDetectorStation
 
std::vector< double > fDiscreteAzimuth
 
std::vector< double > fDiscreteElectronEnergy
 
std::vector< double > fDiscreteElectronFlux
 
std::vector< double > fDiscreteMuonEnergy
 
std::vector< double > fDiscreteMuonFlux
 
std::vector< double > fDiscreteParticleTime
 
std::vector< double > fDiscretePhotonEnergy
 
std::vector< double > fDiscretePhotonFlux
 
std::vector< double > fDiscreteZenith
 
double fElectronEnergyMax
 
double fElectronEnergyMin
 
TF1 * fElectronSpectrum
 
double fElectronSpectrumMax
 
std::string fElectronSpectrumString
 
double fMuonEnergyMax
 
double fMuonEnergyMin
 
TF1 * fMuonSpectrum
 
double fMuonSpectrumMax
 
std::string fMuonSpectrumString
 
unsigned int fNumberOfParticles
 
utl::Particle::Type fParticleType
 
double fPhotonEnergyMax
 
double fPhotonEnergyMin
 
TF1 * fPhotonSpectrum
 
double fPhotonSpectrumMax
 
std::string fPhotonSpectrumString
 
utl::RandomEnginefRandomEngine
 
sevt::SEventfSEvent
 
unsigned int fSingleTankID
 
TF1 * fTimeSpectrum
 
bool fUseDiscreteDirection
 
bool fUseDiscreteSpectrum
 
bool fUseDiscreteTime
 
bool fUseInjectAllParticles
 
bool fUseSinglePosition
 
bool fUseSingleTank
 
double fX
 
double fY
 
double fZ
 

Detailed Description

Module to inject particles into a tank.

Author
Troy Porter
Date
Sept 2003

Definition at line 38 of file ParticleInjectorOG/ParticleInjector.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

ParticleInjector::ParticleInjector ( )

Definition at line 62 of file ParticleInjectorOG/ParticleInjector.cc.

ParticleInjector::~ParticleInjector ( )
virtual

Member Function Documentation

VModule::ResultFlag ParticleInjector::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 263 of file ParticleInjectorOG/ParticleInjector.cc.

References fwk::VModule::eSuccess, fContinuousAzimuthDistribution, fContinuousZenithDistribution, fElectronSpectrum, fMuonSpectrum, and fPhotonSpectrum.

double ParticleInjector::GetAzimuth ( )
private
double ParticleInjector::GetDiscreteEnergy ( std::vector< double > &  flux,
std::vector< double > &  energy,
double  max 
)
private

Definition at line 469 of file ParticleInjectorOG/ParticleInjector.cc.

References fRandomEngine, utl::RandomEngine::GetEngine(), INFO, and max.

Referenced by GetEnergy().

double ParticleInjector::GetEnergy ( )
private
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.

double ParticleInjector::GetTime ( )
private
std::string fwk::VModule::GetVersionInfo ( const VersionInfoType  v) const
inherited
double ParticleInjector::GetZenith ( )
private
VModule::ResultFlag ParticleInjector::Init ( )
virtual
void fwk::VModule::InitTiming ( )
inlineinherited

Definition at line 95 of file VModule.h.

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

void ParticleInjector::InjectParticles ( )
private
ParticleInjectorOG::ParticleInjector::REGISTER_MODULE ( "ParticleInjectorOG"  ,
ParticleInjector   
)
private
VModule::ResultFlag ParticleInjector::Run ( evt::Event event)
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 230 of file ParticleInjectorOG/ParticleInjector.cc.

References fwk::VModule::eFailure, ERROR, fwk::VModule::eSuccess, fCurrentDetectorStation, fSEvent, fSingleTankID, fUseSingleTank, evt::Event::GetSEvent(), sdet::SDetector::GetStation(), evt::Event::HasSEvent(), InjectParticles(), sdet::SDetector::StationsBegin(), and sdet::SDetector::StationsEnd().

ResultFlag fwk::VModule::RunWithTiming ( evt::Event event)
inlineinherited
void ParticleInjector::SetPosition ( double &  x,
double &  y,
double &  z 
)
private

Member Data Documentation

TF1* ParticleInjectorOG::ParticleInjector::fContinuousAzimuthDistribution
private

Definition at line 80 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Finish(), GetAzimuth(), Init(), and ~ParticleInjector().

std::string ParticleInjectorOG::ParticleInjector::fContinuousAzimuthString
private

Definition at line 73 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Init().

std::string ParticleInjectorOG::ParticleInjector::fContinuousTimeString
private

Definition at line 74 of file ParticleInjectorOG/ParticleInjector.h.

TF1* ParticleInjectorOG::ParticleInjector::fContinuousZenithDistribution
private

Definition at line 79 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Finish(), GetZenith(), Init(), and ~ParticleInjector().

std::string ParticleInjectorOG::ParticleInjector::fContinuousZenithString
private

Definition at line 72 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Init().

const sdet::Station* ParticleInjectorOG::ParticleInjector::fCurrentDetectorStation
private

Definition at line 112 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by InjectParticles(), Run(), and SetPosition().

std::vector<double> ParticleInjectorOG::ParticleInjector::fDiscreteAzimuth
private

Definition at line 62 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by GetAzimuth(), and Init().

std::vector<double> ParticleInjectorOG::ParticleInjector::fDiscreteElectronEnergy
private

Definition at line 69 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by GetEnergy(), and Init().

std::vector<double> ParticleInjectorOG::ParticleInjector::fDiscreteElectronFlux
private

Definition at line 66 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by GetEnergy(), and Init().

std::vector<double> ParticleInjectorOG::ParticleInjector::fDiscreteMuonEnergy
private

Definition at line 68 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by GetEnergy(), and Init().

std::vector<double> ParticleInjectorOG::ParticleInjector::fDiscreteMuonFlux
private

Definition at line 65 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by GetEnergy(), and Init().

std::vector<double> ParticleInjectorOG::ParticleInjector::fDiscreteParticleTime
private

Definition at line 64 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by GetTime(), and Init().

std::vector<double> ParticleInjectorOG::ParticleInjector::fDiscretePhotonEnergy
private

Definition at line 70 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by GetEnergy(), and Init().

std::vector<double> ParticleInjectorOG::ParticleInjector::fDiscretePhotonFlux
private

Definition at line 67 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by GetEnergy(), and Init().

std::vector<double> ParticleInjectorOG::ParticleInjector::fDiscreteZenith
private

Definition at line 63 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by GetZenith(), and Init().

double ParticleInjectorOG::ParticleInjector::fElectronEnergyMax
private

Definition at line 89 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Init().

double ParticleInjectorOG::ParticleInjector::fElectronEnergyMin
private

Definition at line 88 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Init().

TF1* ParticleInjectorOG::ParticleInjector::fElectronSpectrum
private

Definition at line 83 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Finish(), GetEnergy(), Init(), and ~ParticleInjector().

double ParticleInjectorOG::ParticleInjector::fElectronSpectrumMax
private

Definition at line 93 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by GetEnergy(), and Init().

std::string ParticleInjectorOG::ParticleInjector::fElectronSpectrumString
private

Definition at line 76 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Init().

int fwk::VModule::fInfoLevel = 0
protectedinherited
double ParticleInjectorOG::ParticleInjector::fMuonEnergyMax
private

Definition at line 87 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Init().

double ParticleInjectorOG::ParticleInjector::fMuonEnergyMin
private

Definition at line 86 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Init().

TF1* ParticleInjectorOG::ParticleInjector::fMuonSpectrum
private

Definition at line 82 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Finish(), GetEnergy(), Init(), and ~ParticleInjector().

double ParticleInjectorOG::ParticleInjector::fMuonSpectrumMax
private

Definition at line 92 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by GetEnergy(), and Init().

std::string ParticleInjectorOG::ParticleInjector::fMuonSpectrumString
private

Definition at line 75 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Init().

unsigned int ParticleInjectorOG::ParticleInjector::fNumberOfParticles
private

Definition at line 57 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Init(), and InjectParticles().

utl::Particle::Type ParticleInjectorOG::ParticleInjector::fParticleType
private

Definition at line 96 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by GetEnergy(), Init(), and InjectParticles().

double ParticleInjectorOG::ParticleInjector::fPhotonEnergyMax
private

Definition at line 91 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Init().

double ParticleInjectorOG::ParticleInjector::fPhotonEnergyMin
private

Definition at line 90 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Init().

TF1* ParticleInjectorOG::ParticleInjector::fPhotonSpectrum
private

Definition at line 84 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Finish(), GetEnergy(), Init(), and ~ParticleInjector().

double ParticleInjectorOG::ParticleInjector::fPhotonSpectrumMax
private

Definition at line 94 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by GetEnergy(), and Init().

std::string ParticleInjectorOG::ParticleInjector::fPhotonSpectrumString
private

Definition at line 77 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Init().

utl::RandomEngine* ParticleInjectorOG::ParticleInjector::fRandomEngine
private
sevt::SEvent* ParticleInjectorOG::ParticleInjector::fSEvent
private

Definition at line 113 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by InjectParticles(), and Run().

unsigned int ParticleInjectorOG::ParticleInjector::fSingleTankID
private

Definition at line 58 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Init(), and Run().

TF1* ParticleInjectorOG::ParticleInjector::fTimeSpectrum
private

Definition at line 81 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by ~ParticleInjector().

bool ParticleInjectorOG::ParticleInjector::fUseDiscreteDirection
private

Definition at line 51 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by GetAzimuth(), GetZenith(), and Init().

bool ParticleInjectorOG::ParticleInjector::fUseDiscreteSpectrum
private

Definition at line 52 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by GetEnergy(), and Init().

bool ParticleInjectorOG::ParticleInjector::fUseDiscreteTime
private

Definition at line 55 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Init().

bool ParticleInjectorOG::ParticleInjector::fUseInjectAllParticles
private

Definition at line 53 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Init(), and InjectParticles().

bool ParticleInjectorOG::ParticleInjector::fUseSinglePosition
private

Definition at line 54 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Init(), and SetPosition().

bool ParticleInjectorOG::ParticleInjector::fUseSingleTank
private

Definition at line 50 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Init(), and Run().

double ParticleInjectorOG::ParticleInjector::fX
private

Definition at line 60 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Init(), and SetPosition().

double ParticleInjectorOG::ParticleInjector::fY
private

Definition at line 60 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Init(), and SetPosition().

double ParticleInjectorOG::ParticleInjector::fZ
private

Definition at line 60 of file ParticleInjectorOG/ParticleInjector.h.

Referenced by Init(), and SetPosition().


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

, generated on Tue Sep 26 2023.