1#ifndef __JDETECTOR__JDETECTORCALIBRATION__
2#define __JDETECTOR__JDETECTORCALIBRATION__
77 return std::stod(string_value_array[0]);
115 js = json{ {
Id_t,
object.getID() },
128 object.setID(js.at(
Id_t).get<
int>());
170 js = json{ {
Serial_t,
object.getID() },
171 {
T0_t,
object.getT0() } };
183 object.setID(js.at(
Serial_t).get<
int>());
185 object.setT0(js.at(
T0_t).get<
double>());
225 js = json{ {
Serial_t,
object.getID() },
238 object.setID(js.at(
Serial_t).get<
int>());
240 object.setStatus(js.at(
STATUS_t).get<
int>());
273 const std::string&
result,
276 const double gain = 1.0) :
319 os <<
object.getUPI();
321 js[
UPI_t] = os.str();
339 for (vector<int>::const_iterator i =
object.
runNumbers.cbegin(); i !=
object.runNumbers.cend(); ++i) {
340 runNumberList.push_back(to_string(*i));
360 stringstream is(js.at(
UPI_t).get<
string>());
362 is >>
static_cast<JUPI_t&
>(object);
375 for (vector<string>::const_iterator i = runNumberList.begin(); i != runNumberList.end(); ++i) {
376 object.runNumbers.push_back(stoi(*i));
434 const std::string&
result,
452 std::ostringstream os;
454 os <<
object.getUPI();
456 js[
UPI_t] = os.str();
463 {
Values_t,
object.runNumberList } };
477 stringstream is(js.at(
UPI_t).get<
string>());
479 is >>
static_cast<JUPI_t&
>(object);
527 js = json{ {
Id_t,
object.getID() },
528 {
PX_t,
object.getX() },
529 {
PY_t,
object.getY() },
530 {
PZ_t,
object.getZ() } };
543 object.setID(js.at(
DOMId_t).get<
int>());
544 else if (js.contains(
Id_t))
545 object.setID(js.at(
Id_t) .get<
int>());
550 js.at(
PY_t).get<
double>(),
551 js.at(
PZ_t).get<
double>()));
591 js = json{ {
Id_t,
object.getID() },
592 {
Q0_t,
object.getA() },
593 {
QX_t,
object.getB() },
594 {
QY_t,
object.getC() },
595 {
QZ_t,
object.getD() } };
608 object.setID(js.at(
DOMId_t).get<
int>());
609 else if (js.contains(
Id_t))
610 object.setID(js.at(
Id_t) .get<
int>());
615 js.at(
QX_t).get<
double>(),
616 js.at(
QY_t).get<
double>(),
617 js.at(
QZ_t).get<
double>()));
657 js = json{ {
Id_t,
object.getID() },
671 object.setID(js.at(
DOMId_t).get<
int>());
672 else if (js.contains(
Id_t))
673 object.setID(js.at(
Id_t) .get<
int>());
677 object.setStatus(js.at(
STATUS_t).get<
int>());
717 js = json{ {
Id_t,
object.getID() },
718 {
T0_t,
object.getT0() } };
731 object.setID(js.at(
DOMId_t).get<
int>());
732 else if (js.contains(
Id_t))
733 object.setID(js.at(
Id_t) .get<
int>());
737 object.setT0(js.at(
T0_t).get<
double>());
777 js = json{ {
Id_t,
object.getID() },
778 {
Q0_t,
object.getA() },
779 {
QX_t,
object.getB() },
780 {
QY_t,
object.getC() },
781 {
QZ_t,
object.getD() } };
794 object.setID(js.at(
DOMId_t).get<
int>());
795 else if (js.contains(
Id_t))
796 object.setID(js.at(
Id_t) .get<
int>());
801 js.at(
QX_t).get<
double>(),
802 js.at(
QY_t).get<
double>(),
803 js.at(
QZ_t).get<
double>()));
Time calibration (including definition of sign of time offset).
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
I/O formatting auxiliaries.
#define MAKE_STRING(A)
Make string.
JSon definitions and auxiliaries.
Data structure for time calibration.
Data structure for position in three dimensions.
JPosition3D()
Default constructor.
Data structure for unit quaternion in three dimensions.
JQuaternion3D()
Default constructor.
Exception for missing value.
Auxiliary class for object identification.
Exception for accessing a value in a collection that is outside of its range.
file Auxiliary data structures and methods for detector calibration.
std::vector< JCompassRotation_t > JCompassRotation
Compass rotation.
std::vector< JModuleMap_t > JModuleMap
module map
std::vector< JModuleStatus_t > JModuleStatus
Module status.
double retrieve_value(std::vector< std::string > string_value_array)
Retrieve value from json array of strings.
std::vector< JHVCalibration_t > JHVCalibration
PMT high voltage calibration.
std::vector< JPMTThresholdCalibration_t > JPMTThresholdCalibration
PMT threshold calibration.
std::vector< JPMTCalibration_t > JPMTCalibration
PMT time calibration.
std::vector< JModuleRotation_t > JModuleRotation
Module rotation.
std::vector< std::string > get_string_array(T value)
Cast single value to array of strings, conform the DB-format.
std::vector< JPMTStatus_t > JPMTStatus
PMT status.
std::vector< JModulePosition_t > JModulePosition
Module position.
std::vector< JModuleCalibration_t > JModuleCalibration
Module time calibration.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary classes and methods for detector calibration.
static const std::string Name_t
static const std::string RunNumber_t
static const std::string T0_t
static const std::string Id_t
static const std::string Parameters_t
static const std::string QX_t
static const std::string STATUS_t
static const std::string Unit_t
static const std::string PX_t
static const std::string Unitless_t
static const std::string Result_t
static const std::string QZ_t
static const std::string PMTThreshold_t
static const std::string DOMId_t
static const std::string PMTSupplyVoltage_t
static const std::string Values_t
static const std::string Test_t
static const std::string PZ_t
static const std::string Fail_t
static const std::string PY_t
static const std::string Q0_t
static const std::string DOMMap_t
static const std::string UPI_t
static const std::string Volt_t
static const std::string PMTGain_t
static const std::string Serial_t
static const std::string QY_t
Product breakdown structure (PBS).
Universal product identifier (UPI).
Auxiliary data structure for compass rotation.
JCompassRotation_t()
Default constructor.
friend void from_json(const json &js, JCompassRotation_t &object)
Convert JSon to compass rotation.
JCompassRotation_t(const JObjectID &id, const JQuaternion3D &rotation)
Constructor.
friend void to_json(json &js, const JCompassRotation_t &object)
Convert compass rotation to JSon.
Data structure for PMT high-voltage calibration.
JHVCalibration_t()
Default constructor.
static int & get_version()
Get reference to HV-tuning database test type.
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.
friend void from_json(const json &js, JHVCalibration_t &object)
Convert JSon to PMT high-voltage calibration.
std::vector< int > runNumbers
friend void to_json(json &js, const JHVCalibration_t &object)
Convert PMT high-voltage calibration to JSon.
static void setVersion(const int version)
Set HV-tuning database test type.
static int getVersion()
Get HV-tuning database test type.
Auxiliary data structure for module time calibration.
friend void to_json(json &js, const JModuleCalibration_t &object)
Convert module time calibration to JSon.
friend void from_json(const json &js, JModuleCalibration_t &object)
Convert JSon to module time calibration.
JModuleCalibration_t(const JObjectID &id, const JCalibration &calibration)
Constructor.
JModuleCalibration_t()
Default constructor.
Auxiliary data structure for module address map.
friend void from_json(const json &js, JModuleMap_t &object)
Convert JSon to module address map.
friend void to_json(json &js, const JModuleMap_t &object)
Convert module address map to JSon.
JModuleMap_t()
Default constructor.
std::map< std::string, int > map_type
JModuleMap_t(const JObjectID &id)
Constructor.
Auxiliary data structure for module position.
JModulePosition_t()
Default constructor.
JModulePosition_t(const JObjectID &id, const JPosition3D &position)
Constructor.
friend void to_json(json &js, const JModulePosition_t &object)
Convert module position to JSon.
friend void from_json(const json &js, JModulePosition_t &object)
Convert JSon to module position.
Auxiliary data structure for module rotation.
JModuleRotation_t(const JObjectID &id, const JQuaternion3D &rotation)
Constructor.
friend void to_json(json &js, const JModuleRotation_t &object)
Convert module rotation to JSon.
JModuleRotation_t()
Default constructor.
friend void from_json(const json &js, JModuleRotation_t &object)
Convert JSon to module rotation.
Auxiliary data structure for module status.
friend void from_json(const json &js, JModuleStatus_t &object)
Convert JSon to module status.
JModuleStatus_t()
Default constructor.
friend void to_json(json &js, const JModuleStatus_t &object)
Convert module status to JSon.
JModuleStatus_t(const JObjectID &id, const JStatus &status)
Constructor.
Auxiliary data structure for PMT time calibration.
JPMTCalibration_t()
Default constructor.
friend void from_json(const json &js, JPMTCalibration_t &object)
Convert JSon to PMT time calibration.
friend void to_json(json &js, const JPMTCalibration_t &object)
Convert PMT time calibration to JSon.
JPMTCalibration_t(const JObjectID &id, const JCalibration &calibration)
Constructor.
Auxiliary data structure for PMT status.
friend void from_json(const json &js, JPMTStatus_t &object)
Convert JSon to PMT status.
friend void to_json(json &js, const JPMTStatus_t &object)
Convert PMT status to JSon.
JPMTStatus_t()
Default constructor.
JPMTStatus_t(const JObjectID &id, const JStatus &status)
Constructor.
Data structure for PMT threshold calibration.
friend void from_json(const json &js, JPMTThresholdCalibration_t &object)
Convert JSon to PMT threshold calibration.
JPMTThresholdCalibration_t()
Default constructor.
JPMTThresholdCalibration_t(const JUPI_t &upi, const std::string &result, const double threshold, const std::vector< int > &runNumbers=std::vector< int >(0))
Constructor.
std::vector< int > runNumberList
friend void to_json(json &js, const JPMTThresholdCalibration_t &object)
Convert PMT threshold calibration to JSon.
Auxiliary class for handling status.