Detector simulation.
More...
#include <JDetectorSimulator.hh>
|
| JDetectorSimulator (const JDetector &detector) |
| Constructor.
|
|
bool | hasK40Simulator () const |
| Check availability of K40 simulator.
|
|
bool | hasPMTSimulator () const |
| Check availability of PMT simulator.
|
|
bool | hasCLBSimulator () const |
| Check availability of CLB simulator.
|
|
const JK40Simulator & | getK40Simulator () const |
| Get K40 simulator.
|
|
const JPMTSimulator & | getPMTSimulator () const |
| Get PMT simulator.
|
|
const JCLBSimulator & | getCLBSimulator () const |
| Get CLB simulator.
|
|
void | reset (JK40Simulator *k40Simulator) |
| Reset K40 simulator.
|
|
void | reset (JPMTSimulator *pmtSimulator) |
| Reset PMT simulator.
|
|
void | reset (JCLBSimulator *clbSimulator) |
| Reset CLB simulator.
|
|
virtual void | generateHits (const JModule &module, const JTimeRange &period, JModuleData &output) const override |
| Generate hits.
|
|
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 | processData (const JModuleIdentifier &id, const JCLBInput &input, JDAQSuperFrame &output) const override |
| Process data.
|
|
virtual void | operator() (const JModule &module, JModuleData &input, JDAQSuperFrame &output) const |
| Process module data in one step.
|
|
const JPMTRouter & | getPMTRouter () const |
| Get PMT router.
|
|
const JPMTAddress & | getAddress (const JObjectID &id) const |
| Get address of PMT.
|
|
const JPMT & | getPMT (const JPMTAddress &address) const |
| Get PMT.
|
|
const JPMT & | getPMT (const JObjectID &id) const |
| Get PMT.
|
|
bool | hasPMT (const JObjectID &id) const |
| Has PMT.
|
|
JPMTIdentifier | getIdentifier (const JPMTAddress &address) const |
| Get identifier of PMT.
|
|
JPMTIdentifier | getIdentifier (const JObjectID &id) const |
| Get identifier of PMT.
|
|
const JModule & | getModule (const JModuleAddress &address) const |
| Get module.
|
|
const JModule & | getParentModule (const JObjectID &id) const |
| Get parent module.
|
|
int | getParentModuleID (const JObjectID &id) const |
| Get parent module identifier.
|
|
JPMTChannel | getPMTChannel (const JPMTAddress &address) const |
| Get PMT channel.
|
|
JPMTChannel | getPMTChannel (const JObjectID &id) const |
| Get PMT channel.
|
|
JUTMPosition | getUTMPosition (const JObjectID &id) const |
| Get UTM position of given PMT identifier.
|
|
const JClass_t & | getReference () const |
| Get reference to object.
|
|
JClass_t & | getReference () |
| Get reference to object.
|
|
bool | is_valid () const |
| Check validity of reference.
|
|
const JClass_t * | operator-> () const |
| Smart pointer.
|
|
JClass_t * | operator-> () |
| Smart pointer.
|
|
const JClass_t & | operator* () const |
| Dereference operator.
|
|
JClass_t & | operator* () |
| Dereference operator.
|
|
Detector simulation.
This class implements the JK40Simulator, JPMTSimulator and JCLBSimulator interfaces. The implementations of these interfaces should be provided via pointers to corresponding objects.
N.B: This class owns the objects pointed to using class JLANG::JSinglePointer.
Definition at line 33 of file JDetectorSimulator.hh.
◆ JReference_t
◆ const_iterator
◆ JDetectorSimulator() [1/2]
Make copy constructor inaccesible.
◆ JDetectorSimulator() [2/2]
JDETECTOR::JDetectorSimulator::JDetectorSimulator |
( |
const JDetector & | detector | ) |
|
|
inline |
Constructor.
- Parameters
-
Definition at line 58 of file JDetectorSimulator.hh.
58 :
60 {}
Router for direct addressing of PMT data in detector data structure.
◆ operator=()
Make assignment operator inaccesible.
◆ hasK40Simulator()
bool JDETECTOR::JDetectorSimulator::hasK40Simulator |
( |
| ) |
const |
|
inline |
Check availability of K40 simulator.
- Returns
- true if simulator available; else false
Definition at line 68 of file JDetectorSimulator.hh.
69 {
71 }
JLANG::JSinglePointer< JK40Simulator > k40Simulator
◆ hasPMTSimulator()
bool JDETECTOR::JDetectorSimulator::hasPMTSimulator |
( |
| ) |
const |
|
inline |
Check availability of PMT simulator.
- Returns
- true if simulator available; else false
Definition at line 80 of file JDetectorSimulator.hh.
81 {
83 }
JLANG::JSinglePointer< JPMTSimulator > pmtSimulator
◆ hasCLBSimulator()
bool JDETECTOR::JDetectorSimulator::hasCLBSimulator |
( |
| ) |
const |
|
inline |
Check availability of CLB simulator.
- Returns
- true if simulator available; else false
Definition at line 91 of file JDetectorSimulator.hh.
92 {
94 }
JLANG::JSinglePointer< JCLBSimulator > clbSimulator
◆ getK40Simulator()
const JK40Simulator & JDETECTOR::JDetectorSimulator::getK40Simulator |
( |
| ) |
const |
|
inline |
Get K40 simulator.
- Returns
- K40 simulator
Definition at line 102 of file JDetectorSimulator.hh.
103 {
106 else
108 }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
bool hasK40Simulator() const
Check availability of K40 simulator.
Exception for accessing an invalid pointer.
◆ getPMTSimulator()
const JPMTSimulator & JDETECTOR::JDetectorSimulator::getPMTSimulator |
( |
| ) |
const |
|
inline |
Get PMT simulator.
- Returns
- PMT simulator
Definition at line 116 of file JDetectorSimulator.hh.
117 {
120 else
122 }
bool hasPMTSimulator() const
Check availability of PMT simulator.
◆ getCLBSimulator()
const JCLBSimulator & JDETECTOR::JDetectorSimulator::getCLBSimulator |
( |
| ) |
const |
|
inline |
Get CLB simulator.
- Returns
- CLB simulator
Definition at line 130 of file JDetectorSimulator.hh.
131 {
134 else
136 }
bool hasCLBSimulator() const
Check availability of CLB simulator.
◆ reset() [1/3]
void JDETECTOR::JDetectorSimulator::reset |
( |
JK40Simulator * | k40Simulator | ) |
|
|
inline |
◆ reset() [2/3]
void JDETECTOR::JDetectorSimulator::reset |
( |
JPMTSimulator * | pmtSimulator | ) |
|
|
inline |
◆ reset() [3/3]
void JDETECTOR::JDetectorSimulator::reset |
( |
JCLBSimulator * | clbSimulator | ) |
|
|
inline |
◆ generateHits()
Generate hits.
- Parameters
-
module | module |
period | time window [ns] |
output | background data |
Implements JDETECTOR::JK40Simulator.
Definition at line 180 of file JDetectorSimulator.hh.
183 {
185 }
const JK40Simulator & getK40Simulator() const
Get K40 simulator.
virtual void generateHits(const JModule &module, const JTimeRange &period, JModuleData &output) const =0
Generate hits.
◆ processHits()
Process hits.
- Parameters
-
ID | PMT identifier |
calibration | PMT calibration |
status | PMT status |
input | PMT signals |
output | PMT hits |
Implements JDETECTOR::JPMTSimulator.
Definition at line 197 of file JDetectorSimulator.hh.
202 {
204 }
const JPMTSimulator & getPMTSimulator() const
Get PMT simulator.
virtual void processHits(const JPMTIdentifier &id, const JCalibration &calibration, const JStatus &status, const JPMTData< JPMTSignal > &input, JPMTData< JPMTPulse > &output) const =0
Process hits.
◆ processData()
Process data.
- Parameters
-
id | module identifier |
input | PMT data |
output | CLB data |
Implements JDETECTOR::JCLBSimulator.
Definition at line 214 of file JDetectorSimulator.hh.
215 {
217 }
virtual void processData(const JModuleIdentifier &id, const JCLBInput &input, JDAQSuperFrame &output) const =0
Process data.
const JCLBSimulator & getCLBSimulator() const
Get CLB simulator.
◆ operator()()
Process module data in one step.
- Parameters
-
module | module |
input | PMT signals |
output | CLB data |
Definition at line 227 of file JDetectorSimulator.hh.
230 {
231
232
234
235 for (unsigned int i = 0; i != input.size(); ++i) {
236
237 input[i].sort();
238
239 const JPMT& pmt =
module.getPMT(i);
240
244 input [i],
246 }
247
248
249
251 }
const JCalibration & getCalibration() const
Get calibration.
virtual void processData(const JModuleIdentifier &id, const JCLBInput &input, JDAQSuperFrame &output) const override
Process data.
virtual void processHits(const JPMTIdentifier &ID, const JCalibration &calibration, const JStatus &status, const JPMTData< JPMTSignal > &input, JPMTData< JPMTPulse > &output) const override
Process hits.
Data structure for PMT geometry, calibration and status.
int getID() const
Get identifier.
int getStatus() const
Get status.
◆ getPMTRouter()
const JPMTRouter & JDETECTOR::JPMTRouter::getPMTRouter |
( |
| ) |
const |
|
inlineinherited |
Get PMT router.
- Returns
- PMT router
Definition at line 68 of file JPMTRouter.hh.
69 {
71 }
JPMTRouter(const JDetector &detector)
Constructor.
◆ getAddress()
Get address of PMT.
- Parameters
-
- Returns
- address
Definition at line 80 of file JPMTRouter.hh.
81 {
82 return router.get(
id.getID());
83 }
JTOOLS::JRouter< JPMTAddress > router
◆ getPMT() [1/2]
const JPMT & JDETECTOR::JPMTRouter::getPMT |
( |
const JPMTAddress & | address | ) |
const |
|
inlineinherited |
Get PMT.
- Parameters
-
- Returns
- PMT
Definition at line 92 of file JPMTRouter.hh.
93 {
95 }
const JClass_t & getReference() const
Get reference to object.
◆ getPMT() [2/2]
const JPMT & JDETECTOR::JPMTRouter::getPMT |
( |
const JObjectID & | id | ) |
const |
|
inlineinherited |
Get PMT.
- Parameters
-
- Returns
- PMT
Definition at line 104 of file JPMTRouter.hh.
105 {
107 }
const JPMTAddress & getAddress(const JObjectID &id) const
Get address of PMT.
◆ hasPMT()
bool JDETECTOR::JPMTRouter::hasPMT |
( |
const JObjectID & | id | ) |
const |
|
inlineinherited |
Has PMT.
- Parameters
-
- Returns
- true if PMT present; else false
Definition at line 116 of file JPMTRouter.hh.
117 {
118 return router.has(
id.getID());
119 }
◆ getIdentifier() [1/2]
Get identifier of PMT.
- Parameters
-
- Returns
- address
Definition at line 128 of file JPMTRouter.hh.
129 {
130 return JPMTIdentifier(
getModule(address), address.second);
131 }
const JModule & getModule(const JModuleAddress &address) const
Get module.
◆ getIdentifier() [2/2]
Get identifier of PMT.
- Parameters
-
- Returns
- address
Definition at line 140 of file JPMTRouter.hh.
141 {
143 }
JPMTIdentifier getIdentifier(const JPMTAddress &address) const
Get identifier of PMT.
◆ getModule()
Get module.
- Parameters
-
- Returns
- module
Definition at line 152 of file JPMTRouter.hh.
◆ getParentModule()
const JModule & JDETECTOR::JPMTRouter::getParentModule |
( |
const JObjectID & | id | ) |
const |
|
inlineinherited |
Get parent module.
- Parameters
-
- Returns
- module
Definition at line 164 of file JPMTRouter.hh.
◆ getParentModuleID()
int JDETECTOR::JPMTRouter::getParentModuleID |
( |
const JObjectID & | id | ) |
const |
|
inlineinherited |
Get parent module identifier.
- Parameters
-
- Returns
- module identifier
Definition at line 176 of file JPMTRouter.hh.
177 {
179 }
const JModule & getParentModule(const JObjectID &id) const
Get parent module.
◆ getPMTChannel() [1/2]
Get PMT channel.
- Parameters
-
- Returns
- PMT channel
Definition at line 188 of file JPMTRouter.hh.
189 {
190 return JPMTChannel(
getModule(address).getLocation(), address.second);
191 }
◆ getPMTChannel() [2/2]
Get PMT channel.
- Parameters
-
- Returns
- PMT channel
Definition at line 200 of file JPMTRouter.hh.
201 {
203 }
JPMTChannel getPMTChannel(const JPMTAddress &address) const
Get PMT channel.
◆ getUTMPosition()
Get UTM position of given PMT identifier.
- Parameters
-
- Returns
- UTM position
Definition at line 212 of file JPMTRouter.hh.
213 {
215 }
const JPMT & getPMT(const JPMTAddress &address) const
Get PMT.
JPosition3D getPosition(const JModule &first, const JModule &second)
Get position to go from first to second module.
◆ getReference() [1/2]
template<class JClass_t >
Get reference to object.
- Returns
- reference to object
Definition at line 38 of file JReference.hh.
◆ getReference() [2/2]
template<class JClass_t >
Get reference to object.
- Returns
- reference to object
Definition at line 49 of file JReference.hh.
◆ is_valid()
template<class JClass_t >
Check validity of reference.
- Returns
- true
Definition at line 60 of file JReference.hh.
61 {
62 return true;
63 }
◆ operator->() [1/2]
template<class JClass_t >
Smart pointer.
- Returns
- pointer to object
Definition at line 71 of file JReference.hh.
◆ operator->() [2/2]
template<class JClass_t >
Smart pointer.
- Returns
- pointer to object
Definition at line 82 of file JReference.hh.
◆ operator*() [1/2]
template<class JClass_t >
Dereference operator.
- Returns
- reference to object
Definition at line 93 of file JReference.hh.
◆ operator*() [2/2]
template<class JClass_t >
Dereference operator.
- Returns
- reference to object
Definition at line 104 of file JReference.hh.
◆ k40Simulator
◆ pmtSimulator
◆ clbSimulator
◆ buffer
JCLBInput JDETECTOR::JDetectorSimulator::buffer |
|
mutableprivate |
◆ router
◆ __object
template<class JClass_t >
The documentation for this class was generated from the following file: