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: