Lookup table for PMT addresses in optical module.  
 More...
#include <JModuleAddressMap.hh>
Lookup table for PMT addresses in optical module. 
Definition at line 86 of file JModuleAddressMap.hh.
 
◆ JModuleAddressMap()
  
  
      
        
          | JDETECTOR::JModuleAddressMap::JModuleAddressMap  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
Default constructor. 
The list of valid PMT address translations should be build according to the detector type. The internal router is used to convert a readout channel (TDC) to a PMT readout address. 
Definition at line 96 of file JModuleAddressMap.hh.
 
 
◆ has()
  
  
      
        
          | bool JDETECTOR::JModuleAddressMap::has  | 
          ( | 
          const int |           index | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Test whether index is available. 
- Parameters
 - 
  
  
 
- Returns
 - true if index is available; else false 
 
Definition at line 107 of file JModuleAddressMap.hh.
  108    {
  109      return (index >= 0 && index < (int) this->size());
  110    }
 
 
 
◆ hasTDC()
  
  
      
        
          | bool JDETECTOR::JModuleAddressMap::hasTDC  | 
          ( | 
          const int |           tdc | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Test whether TDC is available. 
- Parameters
 - 
  
  
 
- Returns
 - true if TDC is available; else false 
 
Definition at line 119 of file JModuleAddressMap.hh.
  120    {
  121      return (tdc >= 0 && tdc < (
int) 
router.size() && 
router[tdc] != -1);
 
  122    }
std::vector< int > router
 
 
 
 
◆ hasPMT()
Test whether PMT is available. 
- Parameters
 - 
  
  
 
- Returns
 - true if PMT is available; else false 
 
Definition at line 131 of file JModuleAddressMap.hh.
  132    {
  134 
  135      const_iterator p = lower_bound(this->begin(), this->end(), address, less<JPMTPhysicalAddress>());
  136      
  137      return (p != this->end() && *p == address);
  138    }
 
 
 
◆ configure()
  
  
      
        
          | void JDETECTOR::JModuleAddressMap::configure  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
Configure internal router. 
Definition at line 144 of file JModuleAddressMap.hh.
  145    {
  147      
  148      sort(this->begin(), this->end(), less<JPMTPhysicalAddress>());
  149 
  150      for (const_iterator i = this->begin(); i != this->end(); ++i) {
  151 
  152        if (i->tdc >= (
int) 
router.size()) {
 
  153          router.resize(i->tdc + 1, -1);
 
  154        }
  155 
  156        router[i->tdc] = std::distance(const_iterator(this->begin()),i);
 
  157      }
  158    }
 
 
 
◆ swap()
  
  
      
        
          | void JDETECTOR::JModuleAddressMap::swap  | 
          ( | 
          const int |           i1,  | 
         
        
           | 
           | 
          const int |           i2 ) | 
         
       
   | 
  
inline   | 
  
 
Swap readout addresses corresponding to indices. 
- Parameters
 - 
  
    | i1 | first index  | 
    | i2 | second index  | 
  
   
Definition at line 167 of file JModuleAddressMap.hh.
  168    {
  169      std::swap(
router[at(i1).tdc], 
 
  171 
  172      std::swap(static_cast<JPMTReadoutAddress&>(at(i1)), 
  173                static_cast<JPMTReadoutAddress&>(at(i2)));
  174    }
 
 
 
◆ swapTDC()
  
  
      
        
          | void JDETECTOR::JModuleAddressMap::swapTDC  | 
          ( | 
          const int |           tdc1,  | 
         
        
           | 
           | 
          const int |           tdc2 ) | 
         
       
   | 
  
inline   | 
  
 
Swap physical addresses corresponding to TDCs. 
- Parameters
 - 
  
    | tdc1 | first TDC  | 
    | tdc2 | second TDC  | 
  
   
Definition at line 183 of file JModuleAddressMap.hh.
  184    {
  185      std::swap(
static_cast<JPMTReadoutAddress&
>(at(
router[tdc1])), 
 
  186                static_cast<JPMTReadoutAddress&
>(at(
router[tdc2])));
 
  187 
  190    }
 
 
 
◆ swapPMT()
Swap readout addresses corresponding to PMTs. 
- Parameters
 - 
  
    | pmt1 | first PMT  | 
    | pmt2 | second PMT  | 
  
   
Definition at line 199 of file JModuleAddressMap.hh.
  200    {
  202    }
void swapTDC(const int tdc1, const int tdc2)
Swap physical addresses corresponding to TDCs.
 
const JPMTReadoutAddress & getPMTReadoutAddress(const JPMTPhysicalAddress &address) const
Get PMT readout address.
 
 
 
 
◆ rotateR()
  
  
      
        
          | void JDETECTOR::JModuleAddressMap::rotateR  | 
          ( | 
          const char |           ring | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
Swap readout addresses by right rotation of physical addresses of PMTs in a given ring. 
- Parameters
 - 
  
  
 
Definition at line 210 of file JModuleAddressMap.hh.
  211    {
  212      if (ring != 'A') {
  213        swapPMT(JPMTPhysicalAddress(ring,5), JPMTPhysicalAddress(ring,6));
 
  214        swapPMT(JPMTPhysicalAddress(ring,4), JPMTPhysicalAddress(ring,5));
 
  215        swapPMT(JPMTPhysicalAddress(ring,3), JPMTPhysicalAddress(ring,4));
 
  216        swapPMT(JPMTPhysicalAddress(ring,2), JPMTPhysicalAddress(ring,3));
 
  217        swapPMT(JPMTPhysicalAddress(ring,1), JPMTPhysicalAddress(ring,2));
 
  218      }
  219    }
void swapPMT(const JPMTPhysicalAddress &pmt1, const JPMTPhysicalAddress &pmt2)
Swap readout addresses corresponding to PMTs.
 
 
 
 
◆ rotateL()
  
  
      
        
          | void JDETECTOR::JModuleAddressMap::rotateL  | 
          ( | 
          const char |           ring | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
Swap readout addresses by left rotation of physical addresses of PMTs in a given ring. 
- Parameters
 - 
  
  
 
Definition at line 227 of file JModuleAddressMap.hh.
  228    {
  229      if (ring != 'A') {
  230        swapPMT(JPMTPhysicalAddress(ring,1), JPMTPhysicalAddress(ring,2));
 
  231        swapPMT(JPMTPhysicalAddress(ring,2), JPMTPhysicalAddress(ring,3));
 
  232        swapPMT(JPMTPhysicalAddress(ring,3), JPMTPhysicalAddress(ring,4));
 
  233        swapPMT(JPMTPhysicalAddress(ring,4), JPMTPhysicalAddress(ring,5));
 
  234        swapPMT(JPMTPhysicalAddress(ring,5), JPMTPhysicalAddress(ring,6));
 
  235      }
  236    }
 
 
 
◆ getIndex()
  
  
      
        
          | int JDETECTOR::JModuleAddressMap::getIndex  | 
          ( | 
          const int |           tdc | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Get PMT logical index for given TDC channel. 
- Parameters
 - 
  
  
 
- Returns
 - PMT logical index 
 
Definition at line 245 of file JModuleAddressMap.hh.
 
 
◆ getAddressTranslator() [1/2]
Get PMT address translator. 
- Parameters
 - 
  
  
 
- Returns
 - PMT address translator 
 
Definition at line 257 of file JModuleAddressMap.hh.
  258    {
  260    }
int getIndex(const int tdc) const
Get PMT logical index for given TDC channel.
 
 
 
 
◆ getPMTPhysicalAddress()
  
  
      
        
          | const JPMTPhysicalAddress & JDETECTOR::JModuleAddressMap::getPMTPhysicalAddress  | 
          ( | 
          const int |           tdc | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Get PMT physical address. 
- Parameters
 - 
  
  
 
- Returns
 - PMT physical address 
 
Definition at line 269 of file JModuleAddressMap.hh.
  270    {
  272    }
const JPMTAddressTranslator & getAddressTranslator(const int tdc) const
Get PMT address translator.
 
 
 
 
◆ getAddressTranslator() [2/2]
Get PMT address translator. 
- Parameters
 - 
  
    | address | PMT physical address  | 
  
   
- Returns
 - PMT address translator 
 
Definition at line 281 of file JModuleAddressMap.hh.
  282    {
  284 
  285      const_iterator p = lower_bound(this->begin(), this->end(), address, less<JPMTPhysicalAddress>());
  286      
  287      if (p != this->end() && *p == address)
  288        return *p;
  289      else
  290        THROW(JIndexOutOfRange, 
"Invalid PMT address " << address);
 
  291    }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
 
 
 
 
◆ getPMTReadoutAddress()
Get PMT readout address. 
- Parameters
 - 
  
    | address | PMT physical address  | 
  
   
- Returns
 - PMT readout address 
 
Definition at line 300 of file JModuleAddressMap.hh.
 
 
◆ router
The documentation for this class was generated from the following file: