1#ifndef __JDETECTOR__JDETECTOR__ 
    2#define __JDETECTOR__JDETECTOR__ 
   94    public JMultiEquals<JDetector, JTYPELIST<JDetectorID, JVersion>::typelist>,
 
  183      for (iterator module = this->begin(); 
module != this->end(); ++module) {
 
  184        module->getStatus().set(bit);
 
 
  196      for (iterator module = this->begin(); 
module != this->end(); ++module) {
 
  197        module->getStatus().reset(bit);
 
 
  209      for (iterator module = this->begin(); 
module != this->end(); ++module) {
 
  210        for (JModule::iterator pmt = module->begin(); pmt != module->end(); ++pmt) {
 
  211          pmt->getStatus().set(bit);
 
 
  224      for (iterator module = this->begin(); 
module != this->end(); ++module) {
 
  225        for (JModule::iterator pmt = module->begin(); pmt != module->end(); ++pmt) {
 
  226          pmt->getStatus().reset(bit);
 
 
  240      for (iterator i = begin(); i != end(); ++i) {
 
 
  256      for (iterator i = begin(); i != end(); ++i) {
 
 
  272      return at(address.
first);
 
 
  284      return at(address.
first);
 
 
  296      for (JDetector::const_iterator module = this->begin(); 
module != this->end(); ++module) {
 
  297        if (module->getLocation() == location) {
 
 
  314      for (JDetector::const_iterator module = this->begin(); 
module != this->end(); ++module) {
 
  315        if (module->getLocation() == location) {
 
 
  332      for (JDetector::iterator module = this->begin(); 
module != this->end(); ++module) {
 
  333        if (module->getLocation() == location) {
 
 
  386        int number_of_modules;
 
  392        catch(std::exception&) {}
 
  400          in >> number_of_modules;
 
  406          istringstream(buffer) >> number_of_modules;
 
  410        for (
JModule module; number_of_modules != 0 && in >> module; --number_of_modules) {
 
  411          detector.push_back(module);
 
 
  442      out << static_cast<const JDetectorID&>(
detector);
 
  448        out << static_cast<const JDetectorVersion&>(
detector) << endl;
 
  449        out << static_cast<const JDetectorHeader&> (
detector) << endl;
 
 
  499      int number_of_modules;
 
  504      in >> number_of_modules;
 
  507      this->resize(number_of_modules);
 
  509      for (JDetector::iterator out = this->begin(); number_of_modules != 0; --number_of_modules, ++out) {
 
 
  536        for (JComment::const_iterator i = this->
comment.begin(); i != this->comment.end(); ++i) {
 
  546      const int number_of_modules = this->size();
 
  548      out << static_cast<const JDetectorID&>     (*
this);
 
  549      out << static_cast<const JDetectorVersion&>(*
this);
 
  550      out << static_cast<const JDetectorHeader&> (*
this);
 
  551      out << number_of_modules;
 
  553      for (const_iterator module = this->begin(); 
module != this->end(); ++module) {
 
 
  616      return start_of_comment;
 
 
 
Data structure for detector version.
 
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
 
void setFormat(const JFormat_t &format)
Set format for given type.
 
Data structure for optical module.
 
Data structure for PMT geometry and calibration.
 
STD extensions for binary I/O.
 
bool setVersion(const JDetectorVersion::JVersion_t &version, const bool force=false)
Set version.
 
void resetPMTStatus(const int bit)
Reset status of all PMTs.
 
static const size_t LENGTH_START_OF_COMMENT
Length of start of comment in binary I/O.
 
JDetector & operator+=(const JVector3D &pos)
Move detector elements.
 
static start_of_comment_type & get_start_of_comment()
Get option for short start of comment in binary I/O.
 
start_of_comment_type
Enumeration for different lengths of start of comment in binary I/O.
 
virtual JReader & read(JReader &in) override
Read from input.
 
void resetModuleStatus(const int bit)
Reset status of all modules.
 
void setPMTStatus(const int bit)
Set status of all PMTs.
 
static start_of_comment_type getStartOfComment()
Get option for short start of comment in binary I/O.
 
const JModule & getModule(const JLocation &location) const
Get module parameters.
 
friend std::istream & operator>>(std::istream &in, JDetector &detector)
Read detector from input.
 
static void setStartOfComment(const start_of_comment_type option)
Set option for short start of comment in binary I/O.
 
JDetector & operator-=(const JVector3D &pos)
Move detector elements.
 
void setVersion(const JVersion &version)
Set version.
 
void setModuleStatus(const int bit)
Set status of all modules.
 
JDetector(const JDetectorID &id, const JVersion &version, const JDetectorHeader &header)
Constructor.
 
JModule & getModule(const JModuleAddress &address)
Get module parameters.
 
bool hasModule(const JLocation &location) const
Check availability of module parameters.
 
friend std::ostream & operator<<(std::ostream &out, const JDetector &detector)
Write detector to output.
 
void setVersion() const
Set version.
 
JPMT & getPMT(const JPMTAddress &address)
Get PMT parameters.
 
const JModule & getModule(const JModuleAddress &address) const
Get module parameters.
 
JModule & getModule(const JLocation &location)
Get module parameters.
 
const JPMT & getPMT(const JPMTAddress &address) const
Get PMT parameters.
 
virtual JWriter & write(JWriter &out) const override
Write to output.
 
JDetector()
Default constructor.
 
bool setToLatestVersion()
Set to latest version.
 
Logical location of module.
 
Address of module in detector data structure.
 
int first
index of module in detector data structure
 
Data structure for a composite optical module.
 
static void setVersion(const JVersion &version)
Set detector version.
 
Address of PMT in detector data structure.
 
int second
index of PMT in module data structure.
 
Data structure for PMT geometry, calibration and status.
 
Data structure for vector in three dimensions.
 
Interface for binary input.
 
Forward declaration of binary output.
 
Interface for binary output.
 
Exception for accessing an index in a collection that is outside of its range.
 
Auxiliary class for object identification.
 
file Auxiliary data structures and methods for detector calibration.
 
static const JGetDetectorVersion getDetectorVersion
Function object to map detector version to numerical value.
 
T getLatestDetectorVersion()
Get latest detector version.
 
static const JPutDetectorVersion putDetectorVersion(getDetectorVersion)
Function object to map numerical value to detector version.
 
JLANG::JObjectID JDetectorID
Type definition of detector identifier.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
JDetectorVersion()
Default constructor.
 
JVersion_t
Enumeration of version types.
 
@ V3
Version with PMT status field and comments.
 
Auxiliary class for version identifier.
 
void setVersion(const std::string &version)
Set version.
 
const std::string & getVersion() const
Get version.
 
Template definition of auxiliary base class for data structures composed of multiple base classes wit...
 
Auxiliary class for recursive type list generation.