1 #ifndef __JDETECTOR__JPMT__
2 #define __JDETECTOR__JPMT__
29 namespace JDETECTOR {}
30 namespace JPP {
using namespace JDETECTOR; }
57 public JMultiEquals<JPMT, JTYPELIST<JObjectID>::typelist>
145 return (this->
getStatus() & (1<<bit)) != 0;
195 in >>
static_cast<JAxis3D&
> (pmt);
199 in >>
static_cast<JStatus&
>(pmt);
215 out << static_cast<const JObjectID&> (pmt);
217 out << static_cast<const JAxis3D&> (pmt);
219 out << static_cast<const JCalibration&>(pmt);
223 out << static_cast<const JStatus&>(pmt);
240 in >>
static_cast<JAxis3D&
> (pmt);
244 in >>
static_cast<JStatus&
>(pmt);
260 out << static_cast<const JObjectID&> (pmt);
261 out << static_cast<const JAxis3D&> (pmt);
262 out << static_cast<const JCalibration&>(pmt);
265 out << static_cast<const JStatus&>(pmt);
278 public std::map<std::string, JPMT::JPMTStatusBits_t>
287 #define MAKE_ENTRY(A) std::make_pair(getClassname(#A), A)
303 const_iterator i = this->find(key);
305 if (i != this->end()) {
321 public std::map<JPMT::JPMTStatusBits_t, std::string>
332 for (JGetPMTStatusBit::const_iterator i = input.begin(); i != input.end(); ++i) {
333 this->insert(make_pair(i->second, i->first));
348 const_iterator i = this->find(bit);
350 if (i != this->end()) {
385 buffer.push_back(i->second);
403 buffer.push_back(i->first);
void set(const JPMTStatusBits_t bit)
Set PMT status.
static const JGetPMTStatusBit getPMTStatusBit
Function object to map key to PMT status bit.
Interface for binary output.
std::vector< std::string > getPMTStatusBits(const JType< std::string > &type)
Get PMT status bits.
PMT calibration (including definition of sign of time offset).
const JDirection3D & getDirection() const
Get direction.
friend JReader & operator>>(JReader &in, JPMT &pmt)
Read PMT from input.
Auxiliary class to map PMT status bit to key.
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
JPMT(const int &id, const JAxis3D &axis, const JCalibration &cal, const JStatus &status=JStatus())
Constructor.
friend std::ostream & operator<<(std::ostream &out, const JPMT &pmt)
Write PMT to output.
Auxiliary class to map key to PMT status bit.
Data structure for PMT calibration.
Auxiliary class for a type holder.
JPMT()
Default constructor.
friend std::istream & operator>>(std::istream &in, JPMT &pmt)
Read PMT from input.
double getDot(const JAngle3D &angle) const
Get dot product.
Template definition of auxiliary base class for composite data structures composed of base classes wi...
JPutPMTStatusBit(const JGetPMTStatusBit &input)
Constructor.
JPMT(const int &id, const JAxis3D &axis, const JStatus &status=JStatus())
Constructor.
static const JPutPMTStatusBit putPMTStatusBit(getPMTStatusBit)
Function object to map PMT status bit to key.
Version with PMT status field and comments.
Auxiliary class for recursive type list generation.
Data structure for PMT geometry and calibration.
Data structure for detector version.
Interface for binary input.
void reset(const JPMTStatusBits_t bit)
Reset PMT status.
static const JGetDetectorVersion getDetectorVersion
Function object to map detector variant to detector version.
bool has(const JPMTStatusBits_t bit) const
Test PMT status.
Auxiliary class for version identifier.
static void setVersion(const JVersion &version)
Set detector version.
friend JWriter & operator<<(JWriter &out, const JPMT &pmt)
Write PMT to output.
JStatus()
Default constructor.
Auxiliary class for object identification.
JGetPMTStatusBit()
Default constructor.
static JDetectorVersion & getVersion()
Get detector version.
int getStatus() const
Get status.
const std::string & operator()(const JPMT::JPMTStatusBits_t bit) const
Put PMT status bit.
Auxiliary class for status identifier.
JPMT::JPMTStatusBits_t operator()(const std::string &key) const
Get PMT status bit.
double getDot(const JPMT &pmt) const
Dot product.
JPMTStatusBits_t
Enumeration of status bits.