52 int main(
int argc, 
char **argv)
 
   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);
 
  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) {
 
  193               buffer.push_back(
JHit(p->DOMID, module.
getZ(), 
Q, sigma_deg));
 
  198         if (buffer.size() > JModel::NUMBER_OF_PARAMETERS) {
 
  211           for (
int ns = 0; 
ns != numberOfOutliers; ++
ns) {        
 
  229             if (xmax > stdev * sigma_deg) {
 
  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();
 
  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
 
int main(int argc, char *argv[])
 
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. 
 
const JModule & getModule(const JObjectID &id) const 
Get module parameters. 
 
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. 
 
const int getIndex(const JObjectID &id) const 
Get index of module. 
 
Recording of objects on file according a format that follows from the file name extension. 
 
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. 
 
Dynamic ROOT object management. 
 
Auxiliary data structure for floating point format specification. 
 
floor_range getRangeOfFloors(const JDetector &detector)
Get range of floors. 
 
Data structure for detector geometry and calibration. 
 
Template spacialisation for averaging quaternions. 
 
Utility class to parse parameter values. 
 
ROOT TTree parameter settings. 
 
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. 
 
JQuaternion3D swing
rotation around perpendicular axis 
 
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys...
 
I/O formatting auxiliaries. 
 
JQuaternion3D twist
rotation around parallel axis 
 
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. 
 
ROOT TTree parameter settings. 
 
General purpose messaging. 
 
Direct access to string in detector data structure. 
 
Scanning of objects from multiple files according a format that follows from the extension of each fi...
 
Data structure for unit quaternion in three dimensions. 
 
Direct access to module in detector data structure. 
 
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. 
 
Utility class to parse command line options. 
 
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
 
bool hasModule(const JObjectID &id) const 
Has module. 
 
JEvt getEvt(const JHead &header, const JModel &model)
Get event. 
 
Auxiliary class to map module identifier to AHRS calibration. 
 
Compass event data types. 
 
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.