Simulates the FD telescope using Geant4. More...
#include <TelescopeSimulator.h>
Public Types | |
typedef std::list< std::pair < utl::Photon, int > > | PhotonList |
typedef PhotonList::const_iterator | PhotonListConstIterator |
typedef PhotonList::iterator | PhotonListIterator |
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 () override |
Finish: invoked at end of the run (NOT end of the event) More... | |
FDsimG4StoreOpticalHit * | GetG4Photon () |
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 () override |
Initialize: invoked at beginning of run (NOT beginning of event) More... | |
void | InitTiming () |
fwk::VModule::ResultFlag | Run (evt::Event &event) override |
Run: invoked once per event. More... | |
ResultFlag | RunWithTiming (evt::Event &event) |
void | SetG4PixelHit (const FDsimG4StoreOpticalHit &g4PixelHit) |
TelescopeSimulator () | |
~TelescopeSimulator () | |
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 | FillTraces (const fevt::FEvent::EyeIterator &eIt, const fevt::Eye::TelescopeIterator &tIt) |
REGISTER_MODULE ("TelescopeSimulatorLX", TelescopeSimulator) | |
void | Reset () |
Private Attributes | |
bool | fDrumMode = false |
FDsimG4EventAction * | fG4EventAction = nullptr |
std::string | fG4LensProfile |
std::string | fG4MacroFile |
std::string | fG4MirrorDataFile |
std::vector < FDsimG4StoreOpticalHit * > | fG4Photons |
std::vector < FDsimG4StoreOpticalHit > | fG4PixelHits |
FDsimG4PrimaryGeneratorAction * | fG4PrimGenAct = nullptr |
G4RunManager * | fG4RunManager = nullptr |
bool | fG4Standalone = false |
G4UImanager * | fG4UImanager = nullptr |
std::string | fGeneralConfigSignature |
std::string | fROOTFile |
int | fVerbosityLevel = 0 |
float | fWeightFactor = 0 |
FDsimG4Write2ROOT * | fWrite2ROOT = nullptr |
FDsimG4XMLManager | fXMLManager |
Friends | |
class | TelescopeSimulatorLX::FDsimG4PrimaryGeneratorAction |
Simulates the FD telescope using Geant4.
Definition at line 49 of file TelescopeSimulatorLX/TelescopeSimulator.h.
typedef std::list<std::pair<utl::Photon, int> > TelescopeSimulatorLX::TelescopeSimulator::PhotonList |
Definition at line 52 of file TelescopeSimulatorLX/TelescopeSimulator.h.
typedef PhotonList::const_iterator TelescopeSimulatorLX::TelescopeSimulator::PhotonListConstIterator |
Definition at line 54 of file TelescopeSimulatorLX/TelescopeSimulator.h.
typedef PhotonList::iterator TelescopeSimulatorLX::TelescopeSimulator::PhotonListIterator |
Definition at line 53 of file TelescopeSimulatorLX/TelescopeSimulator.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 |
|
inline |
Definition at line 56 of file TelescopeSimulatorLX/TelescopeSimulator.h.
|
inline |
Definition at line 57 of file TelescopeSimulatorLX/TelescopeSimulator.h.
|
private |
Definition at line 437 of file TelescopeSimulatorLX/TelescopeSimulator.cc.
References ERROR, fevt::FdConstants::eTotal, fdet::Telescope::GetCamera(), fdet::Camera::GetFADCBinSize(), det::Detector::GetFDetector(), fdet::Telescope::GetFirstPixelId(), fdet::Telescope::GetLastPixelId(), fdet::Telescope::GetMeasuredRelativeEfficiency(), fdet::FDetector::GetModelMaxWavelength(), fdet::FDetector::GetModelMinWavelength(), fdet::Telescope::GetModelRelativeEfficiency(), utl::TabulatedFunction::GetNPoints(), fevt::TelescopeSimData::GetNumberOfPhotonBins(), fevt::PixelSimData::GetPhotonTrace(), fevt::Telescope::GetPixel(), fdet::Telescope::GetPixel(), TelescopeSimulatorLX::FDsimG4StoreOpticalHit::GetPMTid(), fdet::Pixel::GetQEfficiency(), fdet::FDetector::GetReferenceLambda(), fevt::Pixel::GetSimData(), fevt::Telescope::GetSimData(), fdet::FDetector::GetTelescope(), TelescopeSimulatorLX::FDsimG4StoreOpticalHit::GetTime(), TelescopeSimulatorLX::FDsimG4StoreOpticalHit::GetWavelength(), TelescopeSimulatorLX::FDsimG4StoreOpticalHit::GetWeight(), fevt::PixelSimData::HasPhotonTrace(), fevt::Telescope::HasPixel(), fevt::Pixel::HasSimData(), fevt::PixelSimData::MakePhotonTrace(), fevt::Telescope::MakePixel(), fevt::Pixel::MakeSimData(), utl::nanometer, utl::ns, TelescopeSimulatorLX::FDsimG4StoreOpticalHit::Print(), and utl::TabulatedFunction::Y().
|
overridevirtual |
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 382 of file TelescopeSimulatorLX/TelescopeSimulator.cc.
References io::eSuccess.
FDsimG4StoreOpticalHit * TelescopeSimulator::GetG4Photon | ( | ) |
Definition at line 409 of file TelescopeSimulatorLX/TelescopeSimulator.cc.
Referenced by TelescopeSimulatorLX::FDsimG4PrimaryGeneratorAction::ReadFDSimulatorEvent().
|
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().
|
overridevirtual |
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 80 of file TelescopeSimulatorLX/TelescopeSimulator.cc.
References ERROR, io::eSuccess, utl::Branch::GetChild(), utl::Branch::GetData(), utl::Branch::GetTopBranch(), INFO, TelescopeSimulatorLX::FDsimG4PrimaryGeneratorAction::SetUseGeneralParticleSource(), and TelescopeSimulatorLX::FDsimG4DetectorConstruction::SetVerbosityLevel().
|
inlineinherited |
Definition at line 95 of file VModule.h.
References fwk::VModule::fStopwatch, and utl::Stopwatch::Reset().
|
private |
|
private |
Definition at line 425 of file TelescopeSimulatorLX/TelescopeSimulator.cc.
References G4StationSimulatorOG::p.
|
overridevirtual |
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 187 of file TelescopeSimulatorLX/TelescopeSimulator.cc.
References fevt::ComponentSelector::eDeSelected, fevt::ComponentSelector::eInDAQ, ERROR, io::eSuccess, utl::eV, fevt::FEvent::EyesBegin(), fdet::FDetector::EyesBegin(), fevt::FEvent::EyesEnd(), fdet::FDetector::EyesEnd(), fdet::Telescope::GetConfigSignatureStr(), fdet::Telescope::GetDiaphragmRadius(), utl::Photon::GetDirection(), fdet::FDetector::GetEye(), fdet::Eye::GetEyeCoordinateSystem(), det::Detector::GetFDetector(), evt::Event::GetFEvent(), fevt::FEvent::GetHeader(), fevt::Eye::GetId(), utl::TimeInterval::GetInterval(), fdet::FDetector::GetModelMaxWavelength(), fdet::FDetector::GetModelMinWavelength(), fevt::TelescopeSimData::GetNPhotons(), utl::Photon::GetPosition(), fevt::Telescope::GetSimData(), fevt::Eye::GetTelescope(), fdet::FDetector::GetTelescope(), fdet::Telescope::GetTelescopeCoordinateSystem(), utl::Photon::GetTime(), det::Detector::GetTime(), utl::Photon::GetWavelength(), utl::Photon::GetWeight(), fevt::FEvent::HasEye(), evt::Event::HasFEvent(), fevt::Telescope::HasSimData(), evt::Event::HasSimShower(), fevt::Eye::HasTelescope(), INFO, utl::kPlanck, utl::kSpeedOfLight, utl::m, fevt::FEvent::MakeEye(), evt::Event::MakeFEvent(), fevt::Telescope::MakeSimData(), fevt::Eye::MakeTelescope(), utl::nanometer, utl::ns, fevt::TelescopeSimData::PhotonsBegin(), fevt::TelescopeSimData::PhotonsEnd(), fevt::TelescopeSimData::SetConfigSignatureStr(), TelescopeSimulatorLX::FDsimG4StoreOpticalHit::SetDirX(), TelescopeSimulatorLX::FDsimG4StoreOpticalHit::SetDirY(), TelescopeSimulatorLX::FDsimG4StoreOpticalHit::SetDirZ(), TelescopeSimulatorLX::FDsimG4StoreOpticalHit::SetEnergy(), fevt::TelescopeSimData::SetNumberOfPhotonBins(), fevt::TelescopeSimData::SetPhotonsStartTime(), TelescopeSimulatorLX::FDsimG4StoreOpticalHit::SetPosX(), TelescopeSimulatorLX::FDsimG4StoreOpticalHit::SetPosY(), TelescopeSimulatorLX::FDsimG4StoreOpticalHit::SetPosZ(), TelescopeSimulatorLX::FDsimG4StoreOpticalHit::SetTime(), fevt::Header::SetTime(), TelescopeSimulatorLX::FDsimG4StoreOpticalHit::SetWavelength(), TelescopeSimulatorLX::FDsimG4StoreOpticalHit::SetWeight(), fevt::Eye::TelescopesBegin(), and fevt::Eye::TelescopesEnd().
|
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().
void TelescopeSimulator::SetG4PixelHit | ( | const FDsimG4StoreOpticalHit & | g4PixelHit | ) |
Definition at line 418 of file TelescopeSimulatorLX/TelescopeSimulator.cc.
|
friend |
Definition at line 103 of file TelescopeSimulatorLX/TelescopeSimulator.h.
|
private |
Definition at line 96 of file TelescopeSimulatorLX/TelescopeSimulator.h.
|
private |
Definition at line 76 of file TelescopeSimulatorLX/TelescopeSimulator.h.
|
private |
Definition at line 87 of file TelescopeSimulatorLX/TelescopeSimulator.h.
|
private |
Definition at line 89 of file TelescopeSimulatorLX/TelescopeSimulator.h.
|
private |
Definition at line 88 of file TelescopeSimulatorLX/TelescopeSimulator.h.
|
private |
Definition at line 81 of file TelescopeSimulatorLX/TelescopeSimulator.h.
|
private |
Definition at line 83 of file TelescopeSimulatorLX/TelescopeSimulator.h.
|
private |
Definition at line 75 of file TelescopeSimulatorLX/TelescopeSimulator.h.
|
private |
Definition at line 71 of file TelescopeSimulatorLX/TelescopeSimulator.h.
|
private |
Definition at line 91 of file TelescopeSimulatorLX/TelescopeSimulator.h.
|
private |
Definition at line 72 of file TelescopeSimulatorLX/TelescopeSimulator.h.
|
private |
Definition at line 99 of file TelescopeSimulatorLX/TelescopeSimulator.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 90 of file TelescopeSimulatorLX/TelescopeSimulator.h.
|
private |
Definition at line 94 of file TelescopeSimulatorLX/TelescopeSimulator.h.
|
private |
Definition at line 92 of file TelescopeSimulatorLX/TelescopeSimulator.h.
|
private |
Definition at line 77 of file TelescopeSimulatorLX/TelescopeSimulator.h.
|
private |
Definition at line 74 of file TelescopeSimulatorLX/TelescopeSimulator.h.