61   long long int   Tmax_s           = 600;                                
 
   63   double          sigma_deg        = 1.0;                                
 
   64   double          stdev            = numeric_limits<double>::max();      
 
   65   int             numberOfOutliers = 0;
 
   67   bool            overwriteDetector;
 
   80     JParser<> zap(
"Program to calibrate in situ AHRS.");
 
   82     zap[
'f'] = 
make_field(inputFile,    
"output of JConvertDB -q ahrs");
 
   83     zap[
'n'] = 
make_field(numberOfEvents)                                    = JLimit::max();
 
   86     zap[
'c'] = 
make_field(ahrsFile,     
"output of JAHRSCalibration");
 
   93   catch(
const exception &error) {
 
   94     FATAL(error.what() << endl);
 
  131   JManager_t H0(
new TH1D(
"%.twist", NULL, 100,  0.0,   5.0));
 
  132   JManager_t H1(
new TH1D(
"%.swing", NULL, 250,  0.0,   2.5));
 
  133   JManager_t HN(
new TH1D(
"%.count", NULL, 100, -0.5,  99.5));
 
  136            string.size(), -0.5, 
string.size() - 0.5,
 
  137            range.getLength() + 1, 
range.getLowerLimit() - 0.5, 
range.getUpperLimit() + 0.5);
 
  139   for (Int_t 
i = 1; 
i <= h2.GetXaxis()->GetNbins(); ++
i) {
 
  142   for (Int_t 
i = 1; 
i <= h2.GetYaxis()->GetNbins(); ++
i) {
 
  146   TH2D* h1 = (TH2D*) h2.Clone(
"h1");
 
  155   for (JMultipleFileScanner_t::const_iterator file_name = inputFile.begin(); file_name != inputFile.end(); ++file_name) {
 
  157     STATUS(
"processing file " << *file_name << endl);
 
  165       if (
is_valid(*parameters) && router.hasModule(parameters->
DOMID)) {
 
  166         data[router.getModule(parameters->
DOMID).getString()].push_back(*parameters);
 
  176         long long int t1 = p->UNIXTIME;
 
  177         long long int t2 = t1;
 
  181         for ( ; p != 
i->second.end() && p->UNIXTIME < t1 + Tmax_s * 1000; t2 = (p++)->UNIXTIME) {
 
  185             const JModule& module = router.getModule(p->DOMID);
 
  193               buffer.push_back(
JHit(p->DOMID, module.
getZ(), 
Q, sigma_deg));
 
  198         if (buffer.size() > JModel::NUMBER_OF_PARAMETERS) {
 
  202             const JLocation& location = router.getModule(hit->getID());
 
  211           for (
int ns = 0; 
ns != numberOfOutliers; ++
ns) {        
 
  229             if (xmax > stdev * sigma_deg) {
 
  231               const JLocation& location = router.getModule(out->getID());
 
  243                 cout << 
"remove "  << location                     << 
' ' 
  249               swap(*out, *--__end);
 
  261           simplex.step.resize(4);
 
  268           const double chi2 = simplex(
getChi2, buffer.begin(), __end);
 
  269           const int    ndf  = 
distance(buffer.begin(), __end) * 4 - simplex.step.size();
 
  287             H0[hit->getID()]->Fill(
getAngle(q1.twist, q2.twist));
 
  288             H1[hit->getID()]->Fill(
getAngle(q1.swing, q2.swing));
 
  294             count[hit->getID()] += 1;
 
  298             HN[
i->first]->Fill(
i->second);
 
  310   for (JManager_t* p : { &H0, &H1, &HN }) {
 
  311     for (JManager_t::iterator 
i = p->begin(); 
i != p->end(); ++
i) {
 
  319   if (overwriteDetector) {
 
  321     NOTICE(
"Store calibration data on file " << detectorFile << endl);
 
  323     if (
detector.setToLatestVersion()) {
 
  324       NOTICE(
"Set detector version to " << 
detector.getVersion() << endl);
 
static int debug
debug level (default is off). 
 
Utility class to parse command line options. 
 
double getAngle(const JQuaternion3D &first, const JQuaternion3D &second)
Get space angle between quanternions. 
 
Q(UTCMax_s-UTCMin_s)-livetime_s
 
This class represents a rotation around the x-axis. 
 
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member. 
 
int getFloor() const 
Get floor number. 
 
Data structure for a composite optical module. 
 
JQuaternion3D getConjugate() const 
Get conjugate of this quaternion. 
 
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance. 
 
#define gmake_property(A)
macros to convert (template) parameter to JPropertiesElement object 
 
bool is_valid(const json &js)
Check validity of JSon data. 
 
Router for direct addressing of module data in detector data structure. 
 
Utility class to parse parameter values. 
 
*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
 
#define MAKE_CSTRING(A)
Make C-string. 
 
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. 
 
floor_range getRangeOfFloors(const JDetector &detector)
Get range of floors. 
 
Template spacialisation for averaging quaternions. 
 
const JQuaternion3D & getQuaternion() const 
Get quaternion. 
 
static const int COMPASS_DISABLE
Enable (disable) use of compass if this status bit is 0 (1);. 
 
Model for fit to acoustics data. 
 
Auxiliary data structure for chi2 evaluation. 
 
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys...
 
void setQuaternion(const JQuaternion3D &quaternion)
Set quaternion. 
 
Logical location of module. 
 
bool has(const int bit) const 
Test PMT status. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
This class represents a rotation around the z-axis. 
 
Data structure for compass in three dimensions. 
 
void store(const std::string &file_name, const JDetector &detector)
Store detector to output file. 
 
static const double PI
Mathematical constants. 
 
int getIndex()
Get index for user I/O manipulation. 
 
Data structure for unit quaternion in three dimensions. 
 
z range($ZMAX-$ZMIN)< $MINIMAL_DZ." fi fi typeset -Z 4 STRING typeset -Z 2 FLOOR JPlot1D -f $
 
int getString() const 
Get string number. 
 
Auxiliary base class for list of file names. 
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file. 
 
Router for mapping of string identifier to index. 
 
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
 
This class represents a rotation around the y-axis. 
 
static const JVector3D JVector3Z_t(0, 0, 1)
unit z-vector 
 
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
 
JEvt getEvt(const JHead &header, const JModel &model)
Get event. 
 
Auxiliary class to map module identifier to AHRS calibration. 
 
do set_variable DETECTOR_TXT $WORKDIR detector
 
Auxiliary data structure for decomposition of quaternion in twist and swing quaternions. 
 
double getChi2(const double P)
Get chi2 corresponding to given probability. 
 
double getZ() const 
Get z position. 
 
Auxiliary data structure to check validity of AHRS data.