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