1 #ifndef __JDETECTOR__JDETECTORCALIBRATION__
2 #define __JDETECTOR__JDETECTORCALIBRATION__
19 namespace JDETECTOR {}
20 namespace JPP {
using namespace JDETECTOR; }
39 static const std::string
User_t =
"User";
46 static const std::string
Type_t =
"Type";
48 static const std::string
Tests_t =
"Tests";
49 static const std::string
Data_t =
"Data";
51 static const std::string
Name_t =
"Name";
52 static const std::string
Unit_t =
"Unit";
64 static const std::string
Test_t =
"Test";
69 static const std::string
UPI_t =
"UPI";
70 static const std::string
PBS_t =
"PBS";
74 static const std::string
DOMId_t =
"DOMId";
77 static const std::string
T0_t =
"T0";
78 static const std::string
PX_t =
"PX";
79 static const std::string
PY_t =
"PY";
80 static const std::string
PZ_t =
"PZ";
81 static const std::string
Q0_t =
"Q0";
82 static const std::string
QX_t =
"QX";
83 static const std::string
QY_t =
"QY";
84 static const std::string
QZ_t =
"QZ";
88 static const std::string
Volt_t =
"V";
92 static const std::string
OK_t =
"OK";
122 strftime(buffer,
N,
"%FT%T%z", localtime(&time));
124 return string(buffer);
151 return std::stod(string_value_array[0]);
192 {
T0_t,
object.getT0() } };
206 object.setT0(js.at(
T0_t).get<
double>());
233 const std::string&
result,
259 std::ostringstream os;
261 os <<
object.getUPI();
263 js[
UPI_t] = os.str();
273 {
Values_t,
object.runNumberList } };
287 stringstream
is(js.at(
UPI_t).get<
string>());
289 is >>
static_cast<JUPI_t&
>(object);
319 const std::string&
result,
341 std::ostringstream os;
343 os <<
object.getUPI();
345 js[
UPI_t] = os.str();
352 {
Values_t,
object.runNumberList } };
366 stringstream
is(js.at(
UPI_t).get<
string>());
368 is >>
static_cast<JUPI_t&
>(object);
413 {
PX_t,
object.getX() },
414 {
PY_t,
object.getY() },
415 {
PZ_t,
object.getZ() } };
427 object.setID(js.at(
DOMId_t).get<
int>());
430 js.at(
PY_t).get<
double>(),
431 js.at(
PZ_t).get<
double>()));
471 {
Q0_t,
object.getA() },
472 {
QX_t,
object.getB() },
473 {
QY_t,
object.getC() },
474 {
QZ_t,
object.getD() } };
486 object.setID(js.at(
DOMId_t).get<
int>());
489 js.at(
QX_t).get<
double>(),
490 js.at(
QY_t).get<
double>(),
491 js.at(
QZ_t).get<
double>()));
static const std::string DOMSerial_t
static const std::string PMTGain_t
void to_json(json &js, const JPMTCalibration_t &object)
Convert PMT time calibration to JSon.
static const std::string PZ_t
static const std::string Name_t
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 Failed_t
std::vector< std::string > runNumberList
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< JModuleRotation_t > JModuleRotation
Module rotation.
static const std::string QZ_t
static const std::string Variant_t
static const std::string PX_t
static const std::string Location_t
Universal product identifier (UPI).
Data structure for time calibration.
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.
JTHCalibration_t(const JUPI_t &upi, const std::string &result, const double th, const std::vector< std::string > &runNumbers=std::vector< std::string >{})
Constructor.
static const std::string Target_t
std::vector< std::string > runNumberList
static const std::string Result_t
static const std::string Outcome_t
static const std::string Volt_t
void from_json(const json &js, JPMTCalibration_t &object)
Convert JSon to PMT time calibration.
static const std::string T0_t
std::vector< JHVCalibration_t > JHVCalibration
PMT high voltage calibration.
do set_variable OUTPUT_DIRECTORY $WORKDIR T
static const std::string DOMRotations_t
bool is_valid(const json &js)
Check validity of JSon data.
static const std::string PMTThreshold_t
static const std::string Test_t
static const std::string PMTSerial_t
static const std::string RunNumber_t
JModulePosition_t(const JObjectID &id, const JPosition3D &position)
Constructor.
static const std::string Comment_t
Data structure for unit quaternion in three dimensions.
static const std::string Values_t
JTHCalibration_t()
Default constructor.
static const std::string PY_t
then $JPP_DIR examples JDetector JToT o $OUTPUT_FILE n N $NPE P gain
static const std::string EndTime_t
JModulePosition_t()
Default constructor.
static const std::string PBS_t
Auxiliary class for object identification.
std::vector< JTHCalibration_t > JTHCalibration
PMT threshold calibration.
Data structure for PMT high-voltage calibration.
static const std::string Type_t
std::string to_string(const T &value)
Convert value to string.
static const std::string StartTime_t
Auxiliary data structure for module rotation.
std::string get_date_string(const std::time_t &time)
Create ISO 8601 date string for output file header.
JModuleRotation_t()
Default constructor.
Product breakdown structure (PBS).
static const std::string User_t
Detector calibration key words for JSON I/O.
Auxiliary data structure for module position.
Data structure for position in three dimensions.
JHVCalibration_t(const JUPI_t &upi, const std::string &result, const double hv, const double gain, const std::vector< std::string > &runNumbers=std::vector< std::string >{})
Constructor.
static const std::string PMTT0s_t
std::vector< JModulePosition_t > JModulePosition
Module position.
static const std::string Parameters_t
static const std::string Data_t
Auxiliary data structure for PMT time calibration.
static const std::string QY_t
then usage $script[input file[working directory[option]]] nWhere option can be N
static const std::string Unitless_t
std::vector< JPMTCalibration_t > JPMTCalibration
PMT time calibration.
Data structure for PMT threshold 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