1 #ifndef __JDETECTOR__JDETECTORSIMULATOR__
2 #define __JDETECTOR__JDETECTORSIMULATOR__
17 namespace JDETECTOR {}
18 namespace JPP {
using namespace JDETECTOR; }
146 this->k40Simulator.reset(k40Simulator);
158 this->pmtSimulator.reset(pmtSimulator);
169 this->clbSimulator.reset(clbSimulator);
233 for (
unsigned int pmt = 0; pmt != input.size(); ++pmt) {
Router for direct addressing of PMT data in detector data structure.
virtual void processHits(const JPMTIdentifier &id, const JCalibration &calibration, const JPMTData< JPMTSignal > &input, JPMTData< JPMTPulse > &output) const =0
Process hits.
JLANG::JSinglePointer< JCLBSimulator > clbSimulator
Interface for PMT simulation.
Exception for accessing an invalid pointer.
Interface for simulation of K40 background.
Data structure for a composite optical module.
Data structure for PMT data corresponding to a detector module.
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
void reset(JCLBInput &data, size_t size)
Reset CLB buffers.
Data structure for PMT calibration.
const JPMTSimulator & getPMTSimulator() const
Get PMT simulator.
Data structure for detector geometry and calibration.
virtual void generateHits(const JModule &module, const JTimeRange &period, JModuleData &output) const
Generate hits.
JLANG::JSinglePointer< JK40Simulator > k40Simulator
The template JSinglePointer class can be used to hold a pointer to an object.
void reset(JPMTSimulator *pmtSimulator)
Reset PMT simulator.
bool hasPMTSimulator() const
Check availability of PMT simulator.
void reset(JCLBSimulator *clbSimulator)
Reset CLB simulator.
virtual void processData(const JCLBInput &input, JDAQFrame &output) const
Process data.
JDetectorSimulator(const JDetector &detector)
Constructor.
int getID() const
Get identifier.
JDetectorSimulator & operator=(const JDetectorSimulator &)
Make assignment operator inaccesible.
const JCLBSimulator & getCLBSimulator() const
Get CLB simulator.
Direct access to PMT in detector data structure.
virtual void operator()(const JModule &module, JModuleData &input, JDAQFrame &output) const
Process module data in one step.
bool hasK40Simulator() const
Check availability of K40 simulator.
const JPMT & getPMT(const int index) const
Get PMT.
bool hasCLBSimulator() const
Check availability of CLB simulator.
void reset(JK40Simulator *k40Simulator)
Reset K40 simulator.
virtual void generateHits(const JModule &module, const JTimeRange &period, JModuleData &output) const =0
Generate hits.
Template data structure for PMT I/O.
virtual void processHits(const JPMTIdentifier &ID, const JCalibration &calibration, const JPMTData< JPMTSignal > &input, JPMTData< JPMTPulse > &output) const
Process hits.
JLANG::JSinglePointer< JPMTSimulator > pmtSimulator
Interface for CLB simulation.
virtual void processData(const JCLBInput &input, JDAQFrame &output) const =0
Process data.
const JK40Simulator & getK40Simulator() const
Get K40 simulator.
JDetectorSimulator(const JDetectorSimulator &)
Make copy constructor inaccesible.