1 #ifndef __JDETECTOR__JDETECTORCALIBRATION__ 
    2 #define __JDETECTOR__JDETECTORCALIBRATION__ 
   28 namespace JDETECTOR {}
 
   29 namespace JPP { 
using namespace JDETECTOR; }
 
   51   static const std::string  
TCAL  =  
"tcal";   
 
   52   static const std::string  
PCAL  =  
"pcal";   
 
   53   static const std::string  
RCAL  =  
"rcal";   
 
   54   static const std::string  
ACAL  =  
"acal";   
 
   55   static const std::string  
CCAL  =  
"ccal";   
 
   56   static const std::string  
SCAL  =  
"scal";   
 
   64   static const std::string  
User_t             =  
"User";
 
   66   static const std::string  
Time_t             =  
"Time";
 
   67   static const std::string  
Start_t            =  
"Start";
 
   68   static const std::string  
End_t              =  
"End";
 
   71   static const std::string  
Input_t            =  
"Inputs";
 
   72   static const std::string  
Error_t            =  
"Error";
 
   74   static const std::string  
Code_t             =  
"Code";
 
   76   static const std::string  
Info_t             =  
"Info";
 
   80   static const std::string  
UUID_t             =  
"UUID";
 
   83   static const std::string  
OK_t               =  
"OK";
 
   84   static const std::string  
Fail_t             =  
"FAIL";
 
   88   static const std::string  
Type_t             =  
"Type";
 
   89   static const std::string  
Test_t             =  
"Test";
 
   90   static const std::string  
Tests_t            =  
"Tests";
 
   91   static const std::string  
Data_t             =  
"Data";
 
   92   static const std::string  
URL_t              =  
"URL";
 
   93   static const std::string  
Name_t             =  
"Name";
 
   94   static const std::string  
Unit_t             =  
"Unit";
 
  115   static const std::string  
UPI_t              =  
"UPI";
 
  116   static const std::string  
PBS_t              =  
"PBS";
 
  123   static const std::string  
Id_t               =  
"Id";
 
  126   static const std::string  
T0_t               =  
"T0";
 
  127   static const std::string  
PX_t               =  
"PX";
 
  128   static const std::string  
PY_t               =  
"PY";
 
  129   static const std::string  
PZ_t               =  
"PZ";
 
  130   static const std::string  
Q0_t               =  
"Q0";
 
  131   static const std::string  
QX_t               =  
"QX";
 
  132   static const std::string  
QY_t               =  
"QY";
 
  133   static const std::string  
QZ_t               =  
"QZ";
 
  177     return std::stod(string_value_array[0]);
 
  218                { 
T0_t,        
object.getT0() } };
 
  232     object.setT0(js.at(
T0_t).get<
double>());
 
  287     object.setStatus(js.at(
STATUS_t).get<
int>());
 
  319                      const std::string&      
result,
 
  322                      const double            gain          = 1.0) :
 
  387     os << 
object.getUPI();
 
  389     js[
UPI_t]                      = os.str();
 
  430     stringstream 
is(js.at(
UPI_t).get<
string>());
 
  432     is >> 
static_cast<JUPI_t&
>(object);
 
  446           object.runNumbers.push_back(stoi(*i));
 
  482                                const std::string&      
result,
 
  487       threshold    (threshold),
 
  505     std::ostringstream os;
 
  507     os << 
object.getUPI();
 
  509     js[
UPI_t]                    = os.str();
 
  516                                          { 
Values_t, 
object.runNumberList                  } };
 
  530     stringstream 
is(js.at(
UPI_t).get<
string>());
 
  532     is >> 
static_cast<JUPI_t&
>(object);
 
  576     js = 
json{ { 
Id_t, 
object.getID() },
 
  577                { 
PX_t, 
object.getX()  },
 
  578                { 
PY_t, 
object.getY()  },
 
  579                { 
PZ_t, 
object.getZ()  } };
 
  592       object.setID(js.at(
DOMId_t).get<
int>());
 
  593     else if (js.contains(
Id_t))
 
  594       object.setID(js.at(
Id_t)   .get<
int>());
 
  599                                    js.at(
PY_t).get<
double>(),
 
  600                                    js.at(
PZ_t).get<
double>()));
 
  640     js = 
json{ { 
Id_t, 
object.getID() },
 
  641                { 
Q0_t, 
object.getA()  },
 
  642                { 
QX_t, 
object.getB()  },
 
  643                { 
QY_t, 
object.getC()  },
 
  644                { 
QZ_t, 
object.getD()  } };
 
  657       object.setID(js.at(
DOMId_t).get<
int>());
 
  658     else if (js.contains(
Id_t))
 
  659       object.setID(js.at(
Id_t)   .get<
int>());
 
  664                                        js.at(
QX_t).get<
double>(),
 
  665                                        js.at(
QY_t).get<
double>(),
 
  666                                        js.at(
QZ_t).get<
double>()));
 
  706     js = 
json{ { 
Id_t,     
object.getID() },
 
  720       object.setID(js.at(
DOMId_t).get<
int>());
 
  721     else if (js.contains(
Id_t))
 
  722       object.setID(js.at(
Id_t)   .get<
int>());
 
  726     object.setStatus(js.at(
STATUS_t).get<
int>());
 
  766     js = 
json{ { 
Id_t, 
object.getID() },
 
  767                { 
T0_t, 
object.getT0() } };
 
  780       object.setID(js.at(
DOMId_t).get<
int>());
 
  781     else if (js.contains(
Id_t))
 
  782       object.setID(js.at(
Id_t)   .get<
int>());
 
  786     object.setT0(js.at(
T0_t).get<
double>());
 
  826     js = 
json{ { 
Id_t, 
object.getID() },
 
  827                { 
Q0_t, 
object.getA()  },
 
  828                { 
QX_t, 
object.getB()  },
 
  829                { 
QY_t, 
object.getC()  },
 
  830                { 
QZ_t, 
object.getD()  } };
 
  843       object.setID(js.at(
DOMId_t).get<
int>());
 
  844     else if (js.contains(
Id_t))
 
  845       object.setID(js.at(
Id_t)   .get<
int>());
 
  850                                        js.at(
QX_t).get<
double>(),
 
  851                                        js.at(
QY_t).get<
double>(),
 
  852                                        js.at(
QZ_t).get<
double>()));
 
static const std::string PMTStatusInfo_t
static const std::string DOMSerial_t
static const std::string UUID_t
static const std::string DetID_t
static const std::string PMTGain_t
static const std::string RCAL
(optical|base) module orientations 
void to_json(json &js, const JPMTCalibration_t &object)
Convert PMT time calibration to JSon. 
static const std::string PZ_t
Data structure for PMT threshold calibration. 
JPMTStatus_t(const JObjectID &id, const JStatus &status)
Constructor. 
static const std::string Name_t
static void setVersion(const int version)
Set HV-tuning database test type. 
static const std::string PMTSupplyVoltage_t
static const std::string Q0_t
JPMTCalibration_t()
Default constructor. 
Time calibration (including definition of sign of time offset). 
static const std::string Unit_t
static const std::string Time_t
static const std::string UPI_t
static const std::string Tests_t
static const std::string DOMPositions_t
static const std::string OK_t
JModuleRotation_t(const JObjectID &id, const JQuaternion3D &rotation)
Constructor. 
static const std::string DOMId_t
JHVCalibration_t()
Default constructor. 
std::vector< JPMTThresholdCalibration_t > JPMTThresholdCalibration
PMT threshold calibration. 
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message. 
JCompassRotation_t()
Default constructor. 
JPMTThresholdCalibration_t()
Default constructor. 
std::vector< JModuleRotation_t > JModuleRotation
Module rotation. 
static const std::string TCAL
PMT time offsets. 
static const std::string QZ_t
static const std::string Variant_t
*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
static const std::string PX_t
static const std::string Location_t
std::vector< int > runNumbers
Universal product identifier (UPI). 
static const std::string CCAL
compass alignment (a.k.a. quaternion calibration) 
Data structure for time calibration. 
static int & get_version()
Get reference to HV-tuning database test type. 
double retrieve_value(std::vector< std::string > string_value_array)
Retrieve value from json array of strings. 
JPMTCalibration_t(const JObjectID &id, const JCalibration &calibration)
Constructor. 
static const std::string Encoding_t
JCompassRotation_t(const JObjectID &id, const JQuaternion3D &rotation)
Constructor. 
JPMTStatus_t()
Default constructor. 
std::vector< JCompassRotation_t > JCompassRotation
Compass rotation. 
#define MAKE_STRING(A)
Make string. 
static const std::string Inputs_t
static const std::string Provenance_t
static const std::string Result_t
Auxiliary data structure for module time calibration. 
Exception for missing value. 
static const std::string Arguments_t
static const std::string Volt_t
static const std::string Configuration_t
I/O formatting auxiliaries. 
Auxiliary data structure for compass rotation. 
void from_json(const json &js, JPMTCalibration_t &object)
Convert JSon to PMT time calibration. 
static const std::string T0_t
static const std::string Id_t
static const std::string SCAL
PMT status. 
JModuleCalibration_t(const JObjectID &id, const JCalibration &calibration)
Constructor. 
std::vector< JHVCalibration_t > JHVCalibration
PMT high voltage calibration. 
do set_variable OUTPUT_DIRECTORY $WORKDIR T
static const std::string DOMRotations_t
Auxiliary class for handling status. 
static const std::string PCAL
(optical|base) module positions 
bool is_valid(const json &js)
Check validity of JSon data. 
static const std::string ACAL
acoustic time offsets (piezo sensor or hydrophone) 
JModuleStatus_t()
Default constructor. 
static const std::string PMTThreshold_t
JModuleStatus_t(const JObjectID &id, const JStatus &status)
Constructor. 
static const std::string Code_t
static const std::string Test_t
static const std::string Info_t
static const std::string PMTSerial_t
static const std::string Message_t
JPMTThresholdCalibration_t(const JUPI_t &upi, const std::string &result, const double threshold, const std::vector< int > &runNumbers=std::vector< int >(0))
Constructor. 
static const std::string DOMAcousticT0_t
JModuleCalibration_t()
Default constructor. 
static const std::string RunNumber_t
static const std::string DetOID_t
JModulePosition_t(const JObjectID &id, const JPosition3D &position)
Constructor. 
static const std::string BaseRotations_t
static const std::string Comment_t
Data structure for unit quaternion in three dimensions. 
static const std::string Values_t
static const std::string PY_t
std::vector< JModuleStatus_t > JModuleStatus
Module status. 
then $JPP_DIR examples JDetector JToT o $OUTPUT_FILE n N $NPE P gain
std::vector< int > runNumberList
static const std::string DOMCompassRotations_t
JModulePosition_t()
Default constructor. 
JHVCalibration_t(const JUPI_t &upi, const std::string &result, const double hv, const std::vector< int > runNumberList=std::vector< int >(0), const double gain=1.0)
Constructor. 
static const std::string PBS_t
Auxiliary data structure for PMT status. 
Auxiliary class for object identification. 
Data structure for PMT high-voltage calibration. 
std::vector< JPMTStatus_t > JPMTStatus
PMT status. 
static const std::string Type_t
std::string to_string(const T &value)
Convert value to string. 
static const std::string APIVersion_t
Auxiliary data structure for module rotation. 
JModuleRotation_t()
Default constructor. 
Product breakdown structure (PBS). 
static const std::string Input_t
static const std::string User_t
Detector calibration key words for JSON I/O. 
Auxiliary data structure for module position. 
static const std::string DOMStatusInfo_t
Data structure for position in three dimensions. 
Exception for accessing a value in a collection that is outside of its range. 
static const std::string PMTT0s_t
std::vector< JModulePosition_t > JModulePosition
Module position. 
static const std::string Error_t
static const std::string URL_t
static const std::string STATUS_t
static const std::string Parameters_t
static const std::string Data_t
static const std::string End_t
static const std::string Start_t
Auxiliary data structure for PMT time calibration. 
static const std::string QY_t
static int getVersion()
Get HV-tuning database test type. 
Auxiliary data structure for module status. 
static const std::string Unitless_t
std::vector< JPMTCalibration_t > JPMTCalibration
PMT time calibration. 
static const std::string BaseStatusInfo_t
static const std::string BasePositions_t
std::vector< JModuleCalibration_t > JModuleCalibration
Module time calibration. 
std::vector< std::string > get_string_array(T value)
Cast single value to array of strings, conform the DB-format. 
static const std::string QX_t
static const std::string Fail_t