284   using namespace KM3NETDAQ;
 
  287   typedef JParallelFileScanner_t::multi_pointer_type               multi_pointer_type;
 
  295   JCalibration_t           calibrationFile;
 
  299   bool                     overwriteDetector;
 
  301   int                      number_of_iterations    =  1000;
 
  302   int                      number_of_extra_steps   =     0;
 
  317     JParser<> zap(
"Program to determine inter-string time calibration.");
 
  323     zap[
'n'] = 
make_field(numberOfEvents)      = JLimit::max();
 
  326     zap[
'A'] = 
make_field(overwriteDetector, 
"overwrite detector file provided through '-a' with fitted time offsets.");
 
  329     zap[
'N'] = 
make_field(threads,           
"number of threads")               = 1;
 
  334   catch(
const exception& error) {
 
  335     FATAL(error.what() << endl);
 
  348   unique_ptr<JDynamics> dynamics;
 
  354     dynamics->load(calibrationFile);
 
  356   catch(
const exception& error) {
 
  357     if (!calibrationFile.empty()) {
 
  364   NOTICE(
"Reading PDFs... " << flush);
 
  373   JRegressor_t::MAXIMUM_ITERATIONS = 
parameters.NMax;
 
  389     for (JParallelFileScanner_t 
in(*
i); (skip -= 
in.skip(skip)) == 0 && 
in.hasNext() && counter != numberOfEvents; ++counter) {
 
  391       STATUS(
"event: " << setw(10) << counter << 
'\r'); 
DEBUG(endl);
 
  393       multi_pointer_type ps  = 
in.next();
 
  398       summary.update(*tev);
 
  401         dynamics->update(*tev);
 
  408         buildL0(*tev, router, 
true, back_inserter(dataL0));
 
  429           JHitW0 hit(*
i, summary.getRate(
i->getPMTIdentifier()));
 
  434             buffer.push_back(hit);
 
  442         buffer_type::const_iterator __end = unique(buffer.begin(), buffer.end(), equal_to<JDAQPMTIdentifier>());
 
  448         for (buffer_type::const_iterator hit = buffer.begin(); hit != __end; ++hit) {
 
  450           const JModule& module = router.getModule(hit->getModuleID());
 
  472   const double   chi2  = fit(perth);
 
  474   STATUS(
"result: " << 
FIXED(12,6) << 
chi2 << 
' ' << setw(6) << fit.numberOfIterations << endl);
 
  476   for (
size_t i = 0; 
i != fit.size(); ++
i) {
 
  486   if (overwriteDetector) {
 
  492     for (
size_t i = 0; 
i != fit.size(); ++
i) {
 
  497         calibration[p->
id] = p->
t0;
 
  503     for (JDetector::iterator module = 
detector.begin(); module != 
detector.end(); ++module) {
 
  505       if (!module->empty()) {
 
  509         if (p != calibration.end()) {
 
  517     NOTICE(
"Store calibration data on file " << detectorFile << endl);
 
Utility class to parse command line options. 
 
Auxiliary data structure for chi2 function object. 
 
Data structure for a composite optical module. 
 
const array_type< JValue_t > & get_values(const std::map< JKey_t, JValue_t, JComparator_t, JAllocator_t > &data)
Method to create array of values of map. 
 
Template specialisation of L0 builder for JHitL0 data type. 
 
#define gmake_property(A)
macros to convert (template) parameter to JPropertiesElement object 
 
Auxiliary data structure for sorting of hits. 
 
Router for direct addressing of module data in detector data structure. 
 
std::set< int > getStringIDs(const JDetector &detector)
Get list of strings identifiers. 
 
Utility class to parse parameter values. 
 
std::iterator_traits< T >::value_type getAverage(T __begin, T __end)
Get average. 
 
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
 
General purpose class for parallel reading of objects from a single file or multiple files...
 
Template specialisation of class JModel to match hit with muon trajectory along z-axis. 
 
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
 
Long64_t counter_type
Type definition for counter. 
 
Auxiliary data structure for floating point format specification. 
 
Template data structure for storage for PDF tables. 
 
Auxiliary class to edit time offset of data per string. 
 
#define MAKE_STRING(A)
Make string. 
 
Data structure for track fit results with history and optional associated values. ...
 
Auxiliary class for defining the range of iterations of objects. 
 
JDirection3D getDirection(const Vec &dir)
Get direction. 
 
bool hasW(const int i) const 
Check availability of value. 
 
Auxiliary class for recursive type list generation. 
 
double getT() const 
Get time. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
void store(const std::string &file_name, const JDetector &detector)
Store detector to output file. 
 
JPosition3D getPosition(const Vec &pos)
Get position. 
 
File router for fast addressing of summary data. 
 
Data structure for fit parameters. 
 
const JPMT & getPMT(const int index) const 
Get PMT. 
 
Auxiliary data structure for sequence of same character. 
 
Auxiliary data structure for editable parameter. 
 
Dynamic detector calibration. 
 
then JCookie sh JDataQuality D $DETECTOR_ID R
 
Auxiliary class for a hit with background rate value. 
 
int getString() const 
Get string number. 
 
static const int JSTART_LENGTH_METRES
distance between first and last hits in metres from JStart.cc 
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file. 
 
Data structure for set of track fit results. 
 
General purpose class for object reading from a list of file names. 
 
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 JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
 
double t0
time offset [ns] 
 
then if[[!-f $DETECTOR]] then JDetector sh $DETECTOR fi cat $WORKDIR trigger_parameters txt<< EOFtrigger3DMuon.enabled=1;trigger3DMuon.numberOfHits=5;trigger3DMuon.gridAngle_deg=1;ctMin=0.0;TMaxLocal_ns=15.0;EOF set_variable TRIGGEREFFICIENCY_TRIGGERED_EVENTS_ONLY INPUT_FILES=() for((i=1;$i<=$NUMBER_OF_RUNS;++i));do JSirene.sh $DETECTOR $JPP_DATA/genhen.km3net_wpd_V2_0.evt.gz $WORKDIR/sirene_ ${i}.root JTriggerEfficiency.sh $DETECTOR $DETECTOR $WORKDIR/sirene_ ${i}.root $WORKDIR/trigger_efficiency_ ${i}.root $WORKDIR/trigger_parameters.txt $JPP_DATA/PMT_parameters.txt INPUT_FILES+=($WORKDIR/trigger_efficiency_ ${i}.root) done for ANGLE_DEG in $ANGLES_DEG[*];do set_variable SIGMA_NS 3.0 set_variable OUTLIERS 3 set_variable OUTPUT_FILE $WORKDIR/matrix\[${ANGLE_DEG}\deg\].root $JPP_DIR/examples/JReconstruction-f"$INPUT_FILES[*]"-o $OUTPUT_FILE-S ${SIGMA_NS}-A ${ANGLE_DEG}-O ${OUTLIERS}-d ${DEBUG}--!fiif[[$OPTION=="plot"]];then if((0));then for H1 in h0 h1;do JPlot1D-f"$WORKDIR/matrix["${^ANGLES_DEG}" deg].root:${H1}"-y"1 2e3"-Y-L TR-T""-\^"number of events [a.u.]"-> o chi2
 
Data structure for measured coincidence rates of all pairs of PMTs in optical module. 
 
Data structure for fit of straight line paralel to z-axis. 
 
void addT0(const double t0)
Add time offset. 
 
const JLimit & getLimit() const 
Get limit. 
 
std::map< int, range_type > map_type
 
do set_variable DETECTOR_TXT $WORKDIR detector
 
static const int NUMBER_OF_PMTS
Total number of PMTs in module. 
 
const std::vector< double > & getW() const 
Get associated values. 
 
JTOOLS::JRange< double > JZRange
 
#define DEBUG(A)
Message macros.