22 int main(
int argc,
char **argv)
34 JParser<> zap(
"Auxiliary program to print PMT status for a given PMT identifier."
35 "\nInteractive mode in absence of option -P <PMT identifier>.");
37 zap[
'a'] =
make_field(detectorFile,
"Detector file");
38 zap[
'P'] =
make_field(
id,
"PMT identifier") = JPMTIdentifier();
44 catch(
const exception &error) {
45 FATAL(error.what() << endl);
54 catch(
const JException& error) {
58 const JModuleRouter router(
detector);
60 if (
id != JPMTIdentifier()) {
62 if (router.hasModule(
id.getModuleID())) {
64 print(cout, router.getModule(
id.getModuleID()).getPMT(
id.getPMTAddress()).getStatus(),
putPMTStatusBit);
66 cout << router.getModule(
id.getModuleID()).getPMT(
id.getPMTAddress()).has(
getPMTStatusBit(key));
71 while (cin >>
id &&
id != JPMTIdentifier()) {
73 if (router.hasModule(
id.getModuleID())) {
75 print(cout, router.getModule(
id.getModuleID()).getPMT(
id.getPMTAddress()).getStatus(),
putPMTStatusBit);
77 cout << router.getModule(
id.getModuleID()).getPMT(
id.getPMTAddress()).has(
getPMTStatusBit(key));
Utility class to parse command line options.
static const JGetPMTStatusBit getPMTStatusBit
Function object to map key to PMT status bit.
int main(int argc, char *argv[])
Data structure for detector geometry and calibration.
static const JPutPMTStatusBit putPMTStatusBit(getPMTStatusBit)
Function object to map PMT status bit to key.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Auxiliary methods to convert data members or return values of member methods of a set of objects to a...
General purpose messaging.
Direct access to module in detector data structure.
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
Utility class to parse command line options.
do set_variable DETECTOR_TXT $WORKDIR detector
const array_type< JKey_t > & get_keys(const std::map< JKey_t, JValue_t, JComparator_t, JAllocator_t > &data)
Method to create array of keys of map.