1 #ifndef __JDETECTOR__JMODULEADDRESSMAP__ 
    2 #define __JDETECTOR__JMODULEADDRESSMAP__ 
   18 namespace JDETECTOR {}
 
   19 namespace JPP { 
using namespace JDETECTOR; }
 
   66     std::string 
toString(
const std::string& fmt, 
const std::string target = 
"%")
 const 
  103     bool has(
const int index)
 const 
  105       return (index >= 0 && index < (
int) this->size());
 
  117       return (tdc >= 0 && tdc < (
int) 
router.size() && 
router[tdc] != -1);
 
  131       const_iterator p = lower_bound(this->begin(), this->end(), address, less<JPMTPhysicalAddress>());
 
  133       return (p != this->end() && *p == address);
 
  144       sort(this->begin(), this->end(), less<JPMTPhysicalAddress>());
 
  146       for (const_iterator i = this->begin(); i != this->end(); ++i) {
 
  148         if (i->tdc >= (
int) 
router.size()) {
 
  149           router.resize(i->tdc + 1, -1);
 
  163     void swap(
const int i1, 
const int i2)
 
  165       std::swap(
router[at(i1).tdc], 
 
  168       std::swap(static_cast<JPMTReadoutAddress&>(at(i1)), 
 
  169                 static_cast<JPMTReadoutAddress&>(at(i2)));
 
  181       std::swap(static_cast<JPMTReadoutAddress&>(at(
router[tdc1])), 
 
  182                 static_cast<JPMTReadoutAddress&>(at(
router[tdc2])));
 
  236       const_iterator p = lower_bound(this->begin(), this->end(), address, less<JPMTPhysicalAddress>());
 
  238       if (p != this->end() && *p == address)
 
bool hasTDC(const int tdc) const 
Test whether TDC is available. 
 
bool hasPMT(const JPMTPhysicalAddress &address) const 
Test whether PMT is available. 
 
Wrapper class around STL string class. 
 
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance. 
 
const JPMTAddressTranslator & getAddressTranslator(const JPMTPhysicalAddress &address) const 
Get PMT address translator. 
 
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message. 
 
JPMTAddressTranslator(const JPMTReadoutAddress &readout, const JPMTPhysicalAddress &address)
Constructor. 
 
std::string toString(const std::string &fmt, const std::string target="%") const 
Convert PMT address translator to string. 
 
void swap(const int i1, const int i2)
Swap readout addresses corresponding to indices. 
 
Lookup table for PMT addresses in optical module. 
 
int getIndex(const int tdc) const 
Get PMT logical index for given TDC channel. 
 
std::string toString() const 
Convert PMT address translator to string. 
 
void swapTDC(const int tdc1, const int tdc2)
Swap physical addresses corresponding to TDCs. 
 
Data structure to translate PMT physical to readout address. 
 
char ring
ring number ['A','F'] 
 
JModuleAddressMap()
Default constructor. 
 
const JPMTAddressTranslator & getAddressTranslator(const int tdc) const 
Get PMT address translator. 
 
int position
position within ring [1,6] 
 
Data structure for PMT readout address. 
 
JString & replace(const char target, const char replacement, const std::size_t max=std::numeric_limits< std::size_t >::max())
Replace characters. 
 
const JPMTPhysicalAddress & getPMTPhysicalAddress(const int tdc) const 
Get PMT physical address. 
 
Data structure for PMT physical address. 
 
const JPMTReadoutAddress & getPMTReadoutAddress(const JPMTPhysicalAddress &address) const 
Get PMT readout address. 
 
Exception for accessing an index in a collection that is outside of its range. 
 
std::vector< int > router
 
void configure()
Configure internal router. 
 
bool has(const int index) const 
Test whether index is available.