1#ifndef __JDETECTOR__JDETECTORSIMULATOR__
2#define __JDETECTOR__JDETECTORSIMULATOR__
251 for (
unsigned int i = 0; i != input.size(); ++i) {
255 const JPMT& pmt =
module.getPMT(i);
Data structure for detector geometry and calibration.
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Direct access to PMT in detector data structure.
Interface for CLB simulation.
virtual void processData(const JModuleIdentifier &id, const JCLBInput &input, JDAQSuperFrame &output) const =0
Process data.
Data structure for time calibration.
const JCalibration & getCalibration() const
Get calibration.
std::unique_ptr< JPMTSimulator > pmtSimulator
const JCLBSimulator & getCLBSimulator() const
Get CLB simulator.
virtual void operator()(const JModule &module, JModuleData &input, JDAQSuperFrame &output) const
Process module data in one step.
void reset(JCLBSimulator *clbSimulator)
Reset CLB simulator.
virtual void generateHits(const JModule &module, const JTimeRange &period, JModuleData &output) const override
Generate hits.
JDetectorSimulator(const JDetector &detector)
Constructor.
JDetectorSimulator & operator=(const JDetectorSimulator &)
Make assignment operator inaccesible.
void reset(JK40Simulator *k40Simulator)
Reset K40 simulator.
const JK40Simulator & getK40Simulator() const
Get K40 simulator.
bool hasPMTSimulator() const
Check availability of PMT simulator.
const JPMTSimulator & getPMTSimulator() const
Get PMT simulator.
void reset(JPMTSimulator *pmtSimulator)
Reset PMT simulator.
JDetectorSimulator(const JDetectorSimulator &)
Make copy constructor inaccesible.
bool hasK40Simulator() const
Check availability of K40 simulator.
bool hasCLBSimulator() const
Check availability of CLB simulator.
virtual void processData(const JModuleIdentifier &id, const JCLBInput &input, JDAQSuperFrame &output) const override
Process data.
std::unique_ptr< JCLBSimulator > clbSimulator
std::unique_ptr< JK40Simulator > k40Simulator
virtual void processHits(const JPMTIdentifier &ID, const JCalibration &calibration, const JStatus &status, const JPMTData< JPMTSignal > &input, JPMTData< JPMTPulse > &output) const override
Process hits.
virtual void generateHits(const module_pair &input, const JTimeRange &period, const module_data &output) const override
Generate mixed-L1/L0 hits.
Interface for simulation of K40 background.
virtual void generateHits(const JModule &module, const JTimeRange &period, JModuleData &output) const =0
Generate hits.
Data structure for a composite optical module.
Template data structure for PMT I/O.
Router for direct addressing of PMT data in detector data structure.
Interface for PMT simulation.
virtual void processHits(const JPMTIdentifier &id, const JCalibration &calibration, const JStatus &status, const JPMTData< JPMTSignal > &input, JPMTData< JPMTPulse > &output) const =0
Process hits.
Data structure for PMT geometry, calibration and status.
Auxiliary class for object identification.
int getID() const
Get identifier.
Exception for accessing an invalid pointer.
Data frame of one optical module.
file Auxiliary data structures and methods for detector calibration.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary data structure for argument parsing of module data.
Auxiliary data structure for argument parsing of module pair.
Auxiliary class for handling status.
status_type getStatus(const JType< status_type > &type) const
Get status.