List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Attributes | Private Member Functions | Private Attributes | Friends
TelescopeSimulatorLX::TelescopeSimulator Class Reference

Simulates the FD telescope using Geant4. More...

#include <TelescopeSimulator.h>

Inheritance diagram for TelescopeSimulatorLX::TelescopeSimulator:
Inheritance graph
[legend]

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...
 
FDsimG4StoreOpticalHitGetG4Photon ()
 
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 () 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
 
FDsimG4EventActionfG4EventAction = nullptr
 
std::string fG4LensProfile
 
std::string fG4MacroFile
 
std::string fG4MirrorDataFile
 
std::vector
< FDsimG4StoreOpticalHit * > 
fG4Photons
 
std::vector
< FDsimG4StoreOpticalHit
fG4PixelHits
 
FDsimG4PrimaryGeneratorActionfG4PrimGenAct = nullptr
 
G4RunManager * fG4RunManager = nullptr
 
bool fG4Standalone = false
 
G4UImanager * fG4UImanager = nullptr
 
std::string fGeneralConfigSignature
 
std::string fROOTFile
 
int fVerbosityLevel = 0
 
float fWeightFactor = 0
 
FDsimG4Write2ROOTfWrite2ROOT = nullptr
 
FDsimG4XMLManager fXMLManager
 

Friends

class TelescopeSimulatorLX::FDsimG4PrimaryGeneratorAction
 

Detailed Description

Simulates the FD telescope using Geant4.

Author
Pedro Assis, Patrícia Gonçalves, Bernardo Tomé, LIP. We acknowledge the contribution of Libor Nozka in the implementation of the FDsimG4Mirror class.
Date
Tue Feb 28 12:15:36 CET 2006

Definition at line 49 of file TelescopeSimulatorLX/TelescopeSimulator.h.

Member Typedef Documentation

Definition at line 52 of file TelescopeSimulatorLX/TelescopeSimulator.h.

Definition at line 54 of file TelescopeSimulatorLX/TelescopeSimulator.h.

Definition at line 53 of file TelescopeSimulatorLX/TelescopeSimulator.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

TelescopeSimulatorLX::TelescopeSimulator::TelescopeSimulator ( )
inline

Definition at line 56 of file TelescopeSimulatorLX/TelescopeSimulator.h.

TelescopeSimulatorLX::TelescopeSimulator::~TelescopeSimulator ( )
inline

Definition at line 57 of file TelescopeSimulatorLX/TelescopeSimulator.h.

Member Function Documentation

void TelescopeSimulator::FillTraces ( const fevt::FEvent::EyeIterator eIt,
const fevt::Eye::TelescopeIterator tIt 
)
private
VModule::ResultFlag TelescopeSimulator::Finish ( )
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 ( )
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 TelescopeSimulator::Init ( )
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().

void fwk::VModule::InitTiming ( )
inlineinherited

Definition at line 95 of file VModule.h.

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

TelescopeSimulatorLX::TelescopeSimulator::REGISTER_MODULE ( "TelescopeSimulatorLX"  ,
TelescopeSimulator   
)
private
void TelescopeSimulator::Reset ( )
private
VModule::ResultFlag TelescopeSimulator::Run ( evt::Event event)
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().

ResultFlag fwk::VModule::RunWithTiming ( evt::Event event)
inlineinherited
void TelescopeSimulator::SetG4PixelHit ( const FDsimG4StoreOpticalHit g4PixelHit)

Definition at line 418 of file TelescopeSimulatorLX/TelescopeSimulator.cc.

Friends And Related Function Documentation

Definition at line 103 of file TelescopeSimulatorLX/TelescopeSimulator.h.

Member Data Documentation

bool TelescopeSimulatorLX::TelescopeSimulator::fDrumMode = false
private

Definition at line 96 of file TelescopeSimulatorLX/TelescopeSimulator.h.

FDsimG4EventAction* TelescopeSimulatorLX::TelescopeSimulator::fG4EventAction = nullptr
private

Definition at line 76 of file TelescopeSimulatorLX/TelescopeSimulator.h.

std::string TelescopeSimulatorLX::TelescopeSimulator::fG4LensProfile
private

Definition at line 87 of file TelescopeSimulatorLX/TelescopeSimulator.h.

std::string TelescopeSimulatorLX::TelescopeSimulator::fG4MacroFile
private

Definition at line 89 of file TelescopeSimulatorLX/TelescopeSimulator.h.

std::string TelescopeSimulatorLX::TelescopeSimulator::fG4MirrorDataFile
private

Definition at line 88 of file TelescopeSimulatorLX/TelescopeSimulator.h.

std::vector<FDsimG4StoreOpticalHit*> TelescopeSimulatorLX::TelescopeSimulator::fG4Photons
private

Definition at line 81 of file TelescopeSimulatorLX/TelescopeSimulator.h.

std::vector<FDsimG4StoreOpticalHit> TelescopeSimulatorLX::TelescopeSimulator::fG4PixelHits
private

Definition at line 83 of file TelescopeSimulatorLX/TelescopeSimulator.h.

FDsimG4PrimaryGeneratorAction* TelescopeSimulatorLX::TelescopeSimulator::fG4PrimGenAct = nullptr
private

Definition at line 75 of file TelescopeSimulatorLX/TelescopeSimulator.h.

G4RunManager* TelescopeSimulatorLX::TelescopeSimulator::fG4RunManager = nullptr
private

Definition at line 71 of file TelescopeSimulatorLX/TelescopeSimulator.h.

bool TelescopeSimulatorLX::TelescopeSimulator::fG4Standalone = false
private

Definition at line 91 of file TelescopeSimulatorLX/TelescopeSimulator.h.

G4UImanager* TelescopeSimulatorLX::TelescopeSimulator::fG4UImanager = nullptr
private

Definition at line 72 of file TelescopeSimulatorLX/TelescopeSimulator.h.

std::string TelescopeSimulatorLX::TelescopeSimulator::fGeneralConfigSignature
private

Definition at line 99 of file TelescopeSimulatorLX/TelescopeSimulator.h.

int fwk::VModule::fInfoLevel = 0
protectedinherited
std::string TelescopeSimulatorLX::TelescopeSimulator::fROOTFile
private

Definition at line 90 of file TelescopeSimulatorLX/TelescopeSimulator.h.

int TelescopeSimulatorLX::TelescopeSimulator::fVerbosityLevel = 0
private

Definition at line 94 of file TelescopeSimulatorLX/TelescopeSimulator.h.

float TelescopeSimulatorLX::TelescopeSimulator::fWeightFactor = 0
private

Definition at line 92 of file TelescopeSimulatorLX/TelescopeSimulator.h.

FDsimG4Write2ROOT* TelescopeSimulatorLX::TelescopeSimulator::fWrite2ROOT = nullptr
private

Definition at line 77 of file TelescopeSimulatorLX/TelescopeSimulator.h.

FDsimG4XMLManager TelescopeSimulatorLX::TelescopeSimulator::fXMLManager
private

Definition at line 74 of file TelescopeSimulatorLX/TelescopeSimulator.h.


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

, generated on Tue Sep 26 2023.