Jpp
 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 69 of file JDetectorVersion.hh.

Constructor & Destructor Documentation

JDETECTOR::JGetDetectorVersion::JGetDetectorVersion ( )
inline

Default constructor.

Definition at line 75 of file JDetectorVersion.hh.

76  {
77  using namespace JPP;
78 
79 #define MAKE_ENTRY(A) std::make_pair(to_upper(getClassname(#A)), A)
80 
81  this->insert(MAKE_ENTRY(JDetectorVersion::V1));
82  this->insert(MAKE_ENTRY(JDetectorVersion::V2));
83  this->insert(MAKE_ENTRY(JDetectorVersion::V3));
84 
85 #undef MAKE_ENTRY
86  }
Version with UTC time and UTM position data.
Version with PMT status field and comments.
#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 95 of file JDetectorVersion.hh.

96  {
97  using namespace JPP;
98 
99  const_iterator i = this->find(to_upper(variant));
100 
101  if (i != this->end()) {
102  return i->second;
103  } else {
104  THROW(JTypeInformationException, "Invalid variant <" << variant << ">");
105  }
106  }
#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 115 of file JDetectorVersion.hh.

116  {
117  return (*this)(version.getVariant());
118  }
const std::string & getVariant() const
Get variant.
Definition: JVersion.hh:89
int JDETECTOR::JGetDetectorVersion::operator[] ( const std::string &  variant) const
inline

Get index of detector version.

Parameters
variantvariant
Returns
index

Definition at line 127 of file JDetectorVersion.hh.

128  {
129  using namespace std;
130  using namespace JPP;
131 
132  const_iterator i = this->find(to_upper(variant));
133 
134  if (i != this->end())
135  return distance(this->begin(), i);
136  else
137  return -1;
138  }
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 147 of file JDetectorVersion.hh.

148  {
149  return (*this)[version.getVariant()];
150  }
const std::string & getVariant() const
Get variant.
Definition: JVersion.hh:89
int JDETECTOR::JGetDetectorVersion::operator[] ( const JDetectorVersion::JVersion_t version) const
inline

Get index of detector version.

Parameters
versionversion
Returns
index

Definition at line 159 of file JDetectorVersion.hh.

160  {
161  using namespace std;
162 
163  for (const_iterator i = this->begin(); i != this->end(); ++i) {
164  if (i->second == version) {
165  return distance(this->begin(), i);
166  }
167  }
168 
169  return -1;
170  }
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: