Auxiliary class for TDC constraints.
More...
#include <JTDC_t.hh>
|
void | insert (const value_type &value) |
| Insert constraint.
|
|
void | insert (const int id, const int tdc) |
| Insert constraint.
|
|
range_type | equal_range (const int id) |
| Get range of constraints for given module.
|
|
bool | has (const int id, const int tdc) |
| Check if TDC is constraint.
|
|
void | reverse () |
| Reverse constraints.
|
|
bool | is_valid (const bool option=false) const |
| Check validity of TDC constrants.
|
|
|
std::istream & | operator>> (std::istream &in, JTDC_t &tdc) |
| Read TDC constraints from input.
|
|
std::ostream & | operator<< (std::ostream &out, const JTDC_t &tdc) |
| Write TDC constraints to output.
|
|
Auxiliary class for TDC constraints.
Definition at line 37 of file JTDC_t.hh.
◆ multimap_type
◆ range_type
Type definition for range of TDC constraints of a given module identfier.
Definition at line 45 of file JTDC_t.hh.
◆ anonymous enum
Wild card for module identifier and TDC.
Definition at line 51 of file JTDC_t.hh.
◆ insert() [1/2]
void JCALIBRATE::JTDC_t::insert |
( |
const value_type & | value | ) |
|
|
inline |
Insert constraint.
Note that if TDC equals JTDC_t::WILDCARD, all possible TDCs in the given module are inserted.
- Parameters
-
value | module identifier and TDC |
Definition at line 62 of file JTDC_t.hh.
63 {
65
66 for (int pmt = 0; pmt != NUMBER_OF_PMTS; ++pmt) {
67 multimap_type::insert(value_type(value.first, pmt));
68 }
69
70 } else {
71
72 multimap_type::insert(value);
73 }
74 }
◆ insert() [2/2]
void JCALIBRATE::JTDC_t::insert |
( |
const int | id, |
|
|
const int | tdc ) |
|
inline |
Insert constraint.
Note that if TDC equals JTDC_t::WILDCARD, all possible TDCs in the given module are inserted.
- Parameters
-
id | module identifier |
tdc | TDC |
Definition at line 86 of file JTDC_t.hh.
87 {
88 this->
insert(value_type(
id, tdc));
89 }
void insert(const value_type &value)
Insert constraint.
◆ equal_range()
range_type JCALIBRATE::JTDC_t::equal_range |
( |
const int | id | ) |
|
|
inline |
Get range of constraints for given module.
Note that if no data are available for given module identifier, the data corresponding to JTDC_t::WILDCARD are returned.
- Parameters
-
- Returns
- range of constraints
Definition at line 101 of file JTDC_t.hh.
102 {
103 range_type range = multimap_type::equal_range(
id);
104
105 if (range.first == range.second) {
106 range = multimap_type::equal_range(
WILDCARD);
107 }
108
109 return range;
110 }
std::pair< const_iterator, const_iterator > range_type
Type definition for range of TDC constraints of a given module identfier.
◆ has()
bool JCALIBRATE::JTDC_t::has |
( |
const int | id, |
|
|
const int | tdc ) |
|
inline |
Check if TDC is constraint.
- Parameters
-
id | module identifier |
tdc | TDC channel |
- Returns
- true if given TDC is constraint; else false
Definition at line 120 of file JTDC_t.hh.
121 {
123
124 for (JTDC_t::const_iterator i = range.first; i != range.second; ++i) {
125 if (tdc == i->second) {
126 return true;
127 }
128 }
129
130 return false;
131 }
range_type equal_range(const int id)
Get range of constraints for given module.
◆ reverse()
void JCALIBRATE::JTDC_t::reverse |
( |
| ) |
|
|
inline |
Reverse constraints.
Definition at line 137 of file JTDC_t.hh.
138 {
139 JTDC_t buffer;
140
141 for (JTDC_t::const_iterator p = this->begin(); p != this->end(); ) {
142
143 JTDC_t::const_iterator q = p;
144
145 for ( ; q != this->end() && q->first == p->first; ++q) {}
146
147 for (int pmt = 0; pmt != NUMBER_OF_PMTS; ++pmt) {
148
149 JTDC_t::const_iterator i = p;
150
151 for ( ; i != q && i->second != pmt; ++i) {}
152
153 if (i == q) {
154 buffer.insert(value_type(p->first, pmt));
155 }
156 }
157
158 p = q;
159 }
160
161 this->swap(buffer);
162 }
◆ is_valid()
bool JCALIBRATE::JTDC_t::is_valid |
( |
const bool | option = false | ) |
const |
|
inline |
Check validity of TDC constrants.
- Parameters
-
option | option (if true, throw exception if not valid) |
- Returns
- true if valid; else false
Definition at line 171 of file JTDC_t.hh.
172 {
173 for (const_iterator i = this->begin(); i != this->end(); ++i) {
174
176
177 if (option) {
178 THROW(JValueOutOfRange,
"Invalid module identifier: " << i->first <<
" < " <<
WILDCARD);
179 }
180
181 return false;
182 }
183
184 if (i->second < 0 || i->second >= NUMBER_OF_PMTS) {
185
186 if (option) {
187 THROW(JValueOutOfRange,
"Invalid TDC: " << i->second <<
" {0, .., " << NUMBER_OF_PMTS - 1 <<
"}");
188 }
189
190 return false;
191 }
192 }
193
194 return true;
195 }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
◆ operator>>
std::istream & operator>> |
( |
std::istream & | in, |
|
|
JTDC_t & | tdc ) |
|
friend |
Read TDC constraints from input.
- Parameters
-
in | input stream |
tdc | TDC constraints |
- Returns
- input stream
Definition at line 205 of file JTDC_t.hh.
206 {
209
211
212 if (getFileStatus(is.str().c_str())) {
213 is.load();
214 }
215
216 is >> tdc.comment;
217
218 for (int id, pmt; is >> id >> pmt; ) {
219 tdc.insert(JTDC_t::value_type(id, pmt));
220 }
221
222 return in;
223 }
Wrapper class around STL stringstream class to facilitate optional loading of data from file.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
◆ operator<<
std::ostream & operator<< |
( |
std::ostream & | out, |
|
|
const JTDC_t & | tdc ) |
|
friend |
Write TDC constraints to output.
- Parameters
-
out | output stream |
tdc | TDC constraints |
- Returns
- output stream
Definition at line 233 of file JTDC_t.hh.
234 {
236
237 out << tdc.comment;
238
239 for (JTDC_t::const_iterator i = tdc.begin(); i != tdc.end(); ++i) {
240 out << setw(10) << i->first << ' ' << setw(2) << i->second << endl;
241 }
242
243 return out;
244 }
◆ comment
The documentation for this struct was generated from the following file: