95     JParser<> zap(
"Auxiliary program to download or update detector from database.");
 
  101     zap[
'D'] = 
make_field(
id,            
"detector identifier")                                        = 
"";
 
  102     zap[
'r'] = 
make_field(run,           
"run number")                                                 = -1;
 
  103     zap[
'@'] = 
make_field(calset,        
"calibration sets \"<key> = <value>[; <key> = <value>]\"" << endl
 
  109     zap[
'V'] = 
make_field(variant,       
"detector version")                                           = getDetectorVersions<string>(), 
"";
 
  110     zap[
'W'] = 
make_field(wizzard,       
"-W add base modules; -WW set time offsets of acoustic sensors");
 
  116   catch(
const exception &error) {
 
  117     FATAL(error.what() << endl);
 
  126       FATAL(
"Invalid calibration set \"" << 
i->getKey() << 
"\"" << endl);
 
  131   if (calibration.size() != 0
u &&
 
  132       calibration.size() != 3
u &&
 
  133       calibration.size() != 6
u) {
 
  134     FATAL(
"Inconsistent specificaton of calibration sets, either {}, {t,p,r}cal or {t,p,r,a,c,s}cal.");
 
  137   const bool file   = (detectorFile != 
"");
 
  138   const bool tpr    = (calibration.count(
TCAL) != 0 &&
 
  139                        calibration.count(
PCAL) != 0 &&
 
  140                        calibration.count(
RCAL) != 0 &&
 
  141                        calibration.count(
ACAL) == 0 &&
 
  142                        calibration.count(
CCAL) == 0 &&
 
  143                        calibration.count(
SCAL) == 0);
 
  144   const bool tpracs = (calibration.count(
TCAL) != 0 &&
 
  145                        calibration.count(
PCAL) != 0 &&
 
  146                        calibration.count(
RCAL) != 0 &&
 
  147                        calibration.count(
ACAL) != 0 &&
 
  148                        calibration.count(
CCAL) != 0 &&
 
  149                        calibration.count(
SCAL) != 0);
 
  150   const bool daq    = (run != -1);
 
  152   if (
file   && 
id      != 
"") { 
FATAL(
"Inconsistent specificaton of detector file and detector identifier."); }
 
  153   if (
file   && tpr)           { 
FATAL(
"Inconsistent specificaton of detector file and {t,p,r}cal calibration sets."); }
 
  154   if (
file   && tpracs)        { 
FATAL(
"Inconsistent specificaton of detector file and {t,p,r,a,c,s}cal calibration sets."); }
 
  155   if (
file   && daq)           { 
FATAL(
"Inconsistent specificaton of detector file and run number."); }
 
  157   if (tpr    && 
id      == 
"") { 
FATAL(
"Inconsistent specificaton of {t,p,r}cal calibration sets and no detector identifier."); }
 
  158   if (tpr    && variant != 
"") { 
FATAL(
"Inconsistent specificaton of {t,p,r}cal calibration sets and variant."); }
 
  159   if (tpr    && daq)           { 
FATAL(
"Inconsistent specificaton of {t,p,r}cal calibration sets and run number."); }
 
  161   if (tpracs && 
id      == 
"") { 
FATAL(
"Inconsistent specificaton of {t,p,r,a,c,s}cal calibration sets and no detector identifier."); }
 
  162   if (tpracs && variant == 
"") { 
FATAL(
"Inconsistent specificaton of {t,p,r,a,c,s}cal calibration sets and no variant."); }
 
  163   if (tpracs && daq)           { 
FATAL(
"Inconsistent specificaton of {t,p,r,a,c,s}cal calibration sets and run number."); }
 
  165   if (daq    && 
id      == 
"") { 
FATAL(
"Inconsistent specificaton of run number and no detector identifier."); }
 
  170     FATAL(
"Inconsistent detector variant and option -W.");
 
  176   catch(
const exception& error) {
 
  177     FATAL(error.what() << endl);
 
  188                           calibration[
TCAL].c_str(),
 
  189                           calibration[
PCAL].c_str(),
 
  193                           calibration[
TCAL].c_str(),
 
  194                           calibration[
PCAL].c_str(),
 
  195                           calibration[
RCAL].c_str(),
 
  196                           calibration[
ACAL].c_str(),
 
  197                           calibration[
CCAL].c_str(),
 
  198                           calibration[
SCAL].c_str(),
 
  200     else if (daq && variant == 
"")
 
  202     else if (daq && variant != 
"")
 
  205       FATAL(
"Invalid options.");
 
  207   catch(
const exception& error) {
 
  208     FATAL(error.what() << endl);
 
  214   if (
detector.setToLatestVersion()) {
 
  215     NOTICE(
"Set detector version to " << 
detector.getVersion() << endl);
 
  227       selector.
add(&JCLBMap::FLOORID, 0);
 
  229       ResultSet& rs  = 
getResultSet(getTable<JCLBMap>(), selector);
 
  235     catch(
const exception& error) {
 
  236       FATAL(error.what() << endl);
 
  241     for (JDetector::const_iterator module = 
detector.begin(); module != 
detector.end(); ++module) {
 
  242       zmap[module->getString()][module->getFloor()] = module->getPosition();
 
  247       if (
i->FLOORID == 0) {
 
  253           if (zmap[
i->DUID].count(1) != 0) {
 
  258                                            zmap[
i->DUID][1].getY(),
 
  263             NOTICE(
"Adding module " << module << endl);
 
  269             ERROR(
"Missing floor in string " << 
FILL(4,
'0') << 
i->DUID << 
FILL() << endl);
 
  272         } 
else if (zmap[
i->DUID].count(1) != 0) {
 
  274           if (fabs(p->getX() - zmap[
i->DUID][1].getX()) > precision ||
 
  275               fabs(p->getY() - zmap[
i->DUID][1].getY()) > precision) {
 
  277             NOTICE(
"Offset module " << 
getLabel(p->getLocation()) << 
" (x,y) position "  
  278                    << 
SCIENTIFIC(12,3) << (p->getX() - zmap[
i->DUID][1].getX()) << 
' '  
  279                    << 
SCIENTIFIC(12,3) << (p->getY() - zmap[
i->DUID][1].getY()) << endl);
 
  282                                        zmap[
i->DUID][1].getY(),
 
  288           FATAL(
"Missing floor in string " << setw(4) << 
i->DUID << endl);
 
  300       ResultSet& rs  = 
getResultSet(getTable<JDetectorIntegration_t>());
 
  302       if (! (rs >> detector_t)) {
 
  316           const JLocation_t location = router.getLocation(
i->first);
 
  318           JDetector::iterator p = find_if(
detector.begin(), 
 
  328               const double t0 = 
getAverage(
make_array(p->begin(), p->end(), &JPMT::getT0), 0.0)  -  getDelayTime(
i->first);
 
  330               if (t0 != p->getT0()) {
 
  332                 NOTICE(
"Set module time calibration " << 
getLabel(p->getLocation()) << 
' ' << setw(10)  << p->getID() << 
' ' << setw(28) << left << 
i->first << right << 
' ' << 
FIXED(12,3) << t0 << endl);
 
  334                 p->setCalibration(t0);
 
  337             catch(
const exception& error) {
 
  338               if (
i->first.getVariant() != NOPIEZO) {
 
  339                 ERROR(location << 
' ' << error.what() << endl);
 
  345             ERROR(
"No module for UPI " << 
i->first << 
" at " << location << endl);
 
  350     catch(
const exception& error) {
 
  351       FATAL(error.what() << endl);
 
bool isORCADetector(const JDetectorHeader &header)
Check if given detector header is compatible with that of ORCA. 
 
bool hasNickname(const std::string &type) const 
Has calibration type. 
 
Utility class to parse command line options. 
 
JPredicate< JResult_t T::*, JComparison::eq > make_predicate(JResult_t T::*member, const JResult_t value)
Helper method to create predicate for data member. 
 
static JGetPBSSequences getPBSSequences
Function object to get PBS sequences as a function of PBS. 
 
Data structure for a composite optical module. 
 
static const double ARCA_TBARZ_M
ORCA T-bar position relative to seabed [m]. 
 
bool isARCADetector(const JDetectorHeader &header)
Check if given detector header is compatible with tat of ARCA. 
 
then usage $script[< detector identifier >< run range >]< QA/QCfile > nExample script to produce data quality plots nWhen a detector identifier and run range are data are downloaded from the database nand subsequently stored in the given QA QC file
 
static const std::string ACAL
acoustic time offsets (piezo sensor or hydrophone) 
 
std::string getLabel(const JLocation &location)
Get module label for monitoring and other applications. 
 
static const std::string CCAL
compass alignment (a.k.a. quaternion calibration) 
 
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message. 
 
T get(const JHead &header)
Get object from header. 
 
std::iterator_traits< T >::value_type getAverage(T __begin, T __end)
Get average. 
 
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
 
Auxiliary data structure for correspondence between nick and full name of calibration types...
 
Auxiliary data structure for floating point format specification. 
 
Auxiliary class for specifying selection of database data. 
 
JDetectorsHelper & getDetector()
Auxiliary function for helper object initialisation. 
 
static const JPBS_t ACOUSTIC_SENSOR(3, 4, 3, 6, 2)
PBS of piezo sensor 
 
static const double ORCA_TBARZ_M
ORCA T-bar position relative to seabed [m]. 
 
static const std::string TCAL
PMT time offsets. 
 
int floor
position in string 
 
map_type::const_iterator range_const_iterator
 
Logical location of module. 
 
Auxiliary data structure for location of product in detector. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
JSelector & add(const JSelector &selection)
Add selection. 
 
const array_type< JValue_t > & make_array(const JValue_t(&array)[N])
Method to create array of values. 
 
void store(const std::string &file_name, const JDetector &detector)
Store detector to output file. 
 
range_type find(const JUPI_t &upi) const 
Find range of products with given UPI. 
 
Auxiliary data structure for streaming of STL containers. 
 
Auxiliary class to map UPI to location in detector. 
 
static const std::string RCAL
optical module orientations 
 
Auxiliary data structure for sequence of same character. 
 
static const JGetDetectorVersion getDetectorVersion
Function object to map detector version to numerical value. 
 
z range($ZMAX-$ZMIN)< $MINIMAL_DZ." fi fi typeset -Z 4 STRING typeset -Z 2 FLOOR JPlot1D -f $
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file. 
 
static const std::string SCAL
(module|PMT) status 
 
static const JPBS_t HYDROPHONE(4, 5)
PBS of hydrophone 
 
ResultSet & getResultSet(const std::string &query)
Get result set. 
 
std::vector< JServer > getServernames()
Get list of names of available database servers. 
 
void configure(const std::string &detid, const bool option=false)
Configure detector integration for given detector identifier. 
 
Wrapper class for server name. 
 
Product breakdown structure (PBS). 
 
Data structure for position in three dimensions. 
 
do set_variable DETECTOR_TXT $WORKDIR detector
 
static const std::string PCAL
(optical|base) module positions 
 
Auxiliary data structure for floating point format specification. 
 
int string
position in detector 
 
Template definition for getting table specific selector.