Jpp - the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
JDETECTOR::JGetDetectorVersion Struct Reference

Auxiliary class to map detector variant to detector version. More...

#include <JDetectorVersion.hh>

Inheritance diagram for JDETECTOR::JGetDetectorVersion:
std::map< std::string, JDetectorVersion::JVersion_t >

Public Member Functions

 JGetDetectorVersion ()
 Default constructor. More...
 
JDetectorVersion::JVersion_t operator() (const std::string &variant) const
 Get detector version. More...
 
JDetectorVersion::JVersion_t operator() (const JDetectorVersion &version) const
 Get detector version. More...
 
int operator[] (const std::string &variant) const
 Get index of detector version. More...
 
int operator[] (const JDetectorVersion &version) const
 Get index of detector version. More...
 
int operator[] (const JDetectorVersion::JVersion_t &version) const
 Get index of detector version. More...
 

Detailed Description

Auxiliary class to map detector variant to detector version.

Definition at line 70 of file JDetectorVersion.hh.

Constructor & Destructor Documentation

JDETECTOR::JGetDetectorVersion::JGetDetectorVersion ( )
inline

Default constructor.

Definition at line 76 of file JDetectorVersion.hh.

77  {
78  using namespace JPP;
79 
80 #define MAKE_ENTRY(A) std::make_pair(to_upper(getClassname(#A)), A)
81 
82  this->insert(MAKE_ENTRY(JDetectorVersion::V1));
83  this->insert(MAKE_ENTRY(JDetectorVersion::V2));
84  this->insert(MAKE_ENTRY(JDetectorVersion::V3));
85  this->insert(MAKE_ENTRY(JDetectorVersion::V4));
86 
87 #undef MAKE_ENTRY
88  }
Version with UTC time and UTM position data.
Version with PMT status field and comments.
Version with quaternion and time offset per module.
#define MAKE_ENTRY(A)

Member Function Documentation

JDetectorVersion::JVersion_t JDETECTOR::JGetDetectorVersion::operator() ( const std::string &  variant) const
inline

Get detector version.

Parameters
variantvariant
Returns
version

Definition at line 97 of file JDetectorVersion.hh.

98  {
99  using namespace JPP;
100 
101  const_iterator i = this->find(to_upper(variant));
102 
103  if (i != this->end()) {
104  return i->second;
105  } else {
106  THROW(JTypeInformationException, "Invalid variant <" << variant << ">");
107  }
108  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:670
std::string to_upper(const std::string &value)
Convert all character to upper case.
JDetectorVersion::JVersion_t JDETECTOR::JGetDetectorVersion::operator() ( const JDetectorVersion version) const
inline

Get detector version.

Parameters
versionversion
Returns
version

Definition at line 117 of file JDetectorVersion.hh.

118  {
119  return (*this)(version.getVariant());
120  }
const std::string & getVariant() const
Get variant.
int JDETECTOR::JGetDetectorVersion::operator[] ( const std::string &  variant) const
inline

Get index of detector version.

Parameters
variantvariant
Returns
index

Definition at line 129 of file JDetectorVersion.hh.

130  {
131  using namespace std;
132  using namespace JPP;
133 
134  const_iterator i = this->find(to_upper(variant));
135 
136  if (i != this->end())
137  return distance(this->begin(), i);
138  else
139  return -1;
140  }
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
std::string to_upper(const std::string &value)
Convert all character to upper case.
int JDETECTOR::JGetDetectorVersion::operator[] ( const JDetectorVersion version) const
inline

Get index of detector version.

Parameters
versionvariant
Returns
index

Definition at line 149 of file JDetectorVersion.hh.

150  {
151  return (*this)[version.getVariant()];
152  }
const std::string & getVariant() const
Get variant.
int JDETECTOR::JGetDetectorVersion::operator[] ( const JDetectorVersion::JVersion_t version) const
inline

Get index of detector version.

Parameters
versionversion
Returns
index

Definition at line 161 of file JDetectorVersion.hh.

162  {
163  using namespace std;
164 
165  for (const_iterator i = this->begin(); i != this->end(); ++i) {
166  if (i->second == version) {
167  return distance(this->begin(), i);
168  }
169  }
170 
171  return -1;
172  }
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
version
Definition: JCalibratePMT.sh:7

The documentation for this struct was generated from the following file: