38     JParser<> zap(
"Auxiliary program to compose detector from separate calibrations.");
 
   40     zap[
'a'] = 
make_field(detectorFile,  
"detector file (identifier and location of modules as well as identifier and status of PMTs are used)");
 
   41     zap[
'f'] = 
make_field(inputFile,     
"detector calibrations file (json format)");
 
   47   catch(
const exception &error) {
 
   48     FATAL(error.what() << endl);
 
   62     FATAL(
"No detector address map for detector identier " << 
detector.getID() << endl);
 
   73   istream* 
in = open<istream>(inputFile.c_str());
 
   79   DEBUG(setw(4) << js << endl);
 
   87     json::const_iterator data = js.find(
Data_t);
 
   89     if (data != js.end()) {
 
   91       for (
size_t i = 0; i != data->size(); ++i) {
 
   93         if (data->at(i).contains(
PMTT0s_t)) {
 
  109   for (JModuleRotation::const_iterator i = rotation.begin(); i != rotation.end(); ++i) {
 
  111     if (moduleRouter.hasModule(i->getID())) {
 
  113       JModule&      module = 
detector.getModule(moduleRouter.getAddress(i->getID()));
 
  116       if (module.size() != buffer.size()) {
 
  117         FATAL(
"Module size " << module.size() << 
" != " << buffer.size() << endl);
 
  120       for (
size_t i = 0; i != module.size(); ++i) {
 
  128   for (JModulePosition::const_iterator i = position.begin(); i != position.end(); ++i) {
 
  130     if (moduleRouter.hasModule(i->getID())) {
 
  132       JModule& module = 
detector.getModule(moduleRouter.getAddress(i->getID()));
 
  138   for (JPMTCalibration::const_iterator i = calibration.begin(); i != calibration.end(); ++i) {
 
  140     if (pmtRouter.hasPMT(i->getID())) {
 
  142       JPMT& pmt = 
detector.getPMT(pmtRouter.getAddress(i->getID()));
 
Router for direct addressing of PMT data in detector data structure. 
 
Utility class to parse command line options. 
 
Data structure for a composite optical module. 
 
static const std::string DOMPositions_t
 
Router for direct addressing of module data in detector data structure. 
 
bool hasDetectorAddressMap(const int id)
Check if detector address map is available. 
 
void setAxis(const JAxis3D &axis)
Set axis. 
 
Lookup table for PMT addresses in detector. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
void close(std::istream *pf)
Close file. 
 
static const std::string DOMRotations_t
 
int getID() const 
Get identifier. 
 
bool is_valid(const json &js)
Check validity of JSon data. 
 
Data structure for PMT geometry, calibration and status. 
 
void store(const std::string &file_name, const JDetector &detector)
Store detector to output file. 
 
JDetectorAddressMap & getDetectorAddressMap()
Get detector address map. 
 
const JPMT & getPMT(const int index) const 
Get PMT. 
 
void rotate(const JRotation3D &R)
Rotate module. 
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file. 
 
void setCalibration(const JCalibration &cal)
Set calibration. 
 
then usage $script< input_file >< detector_file > fi set_variable OUTPUT_DIR set_variable SELECTOR JDAQTimesliceL1 set_variable DEBUG case set_variable DEBUG
 
const JAxis3D & getAxis() const 
Get axis. 
 
static const std::string PMTT0s_t
 
do set_variable DETECTOR_TXT $WORKDIR detector
 
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
 
static const std::string Data_t
 
const JModule & getModule(const JDetector &detector, const JModuleLocation &location)
find module with a given string and floor number 
 
JModule & add(const JVector3D &pos)
Add position.