38 static const time_t UTC_INVALID_S = -1;
43 static const int RUN_INVALID = -1;
52 inline json getJSon(
const std::string& key,
const time_t utc_s)
54 if (utc_s != UTC_INVALID_S)
73 int main(
int argc,
char **argv)
93 JParser<> zap(
"Auxiliary program to decompose detector to separate calibrations.");
99 zap[
'a'] =
make_field(detectorFile,
"detector file");
104 &JCalibrationType::nick_name));
105 zap[
'V'] =
make_field(validity,
"validity range UTC [s], e.g. \"<UTC min> <UTC max>\"") =
JRange_t(UTC_INVALID_S, UTC_INVALID_S);
106 zap[
'r'] =
make_field(range,
"run range e.g. \"<first run> <last run>\"") =
JRange_t(RUN_INVALID, RUN_INVALID);
107 zap[
'p'] =
make_field(precision,
"precision for match with reference module") = 1.0e-5;
112 catch(
const exception &error) {
113 FATAL(error.what() << endl);
128 FATAL(
"No detector address map for detector identier " <<
detector.getID() << endl);
144 for (
JPersons object; rs >> object; ) {
154 locid =
object.LOCATIONID;
165 for (
JRuns object; rs >> object; ) {
176 for (
JRuns object; rs >> object; ) {
183 catch(
const exception& error) {
184 FATAL(error.what() << endl);
190 for (JDetector::const_iterator module =
detector.begin(); module !=
detector.end(); ++module) {
192 if (module->getFloor() != 0) {
200 if (!JModule::compare(buffer, *module, precision)) {
202 for (
size_t i = 0; i != module->size(); ++i) {
203 DEBUG(
"PMT " << setw(2) << i <<
' '
209 FATAL(
"Module " << setw(10) << module->getID() <<
' ' << module->getLocation() <<
" incompatible with reference." << endl);
237 for (JDetector::const_iterator module =
detector.begin(); module !=
detector.end(); ++module) {
238 for (JModule::const_iterator pmt = module->begin(); pmt != module->end(); ++pmt) {
253 for (JDetector::const_iterator module =
detector.begin(); module !=
detector.end(); ++module) {
255 const JModule& buffer = demo.
getModule(module->getID(), module->getLocation());
274 for (JDetector::const_iterator module =
detector.begin(); module !=
detector.end(); ++module) {
276 const JModule& buffer = demo.
getModule(module->getID(), module->getLocation());
278 if (module->getFloor() != 0) {
293 for (JDetector::const_iterator module =
detector.begin(); module !=
detector.end(); ++module) {
295 if (module->getFloor() == 0)
312 for (JDetector::const_iterator module =
detector.begin(); module !=
detector.end(); ++module) {
313 if (module->getFloor() == 0)
333 for (JDetector::const_iterator module =
detector.begin(); module !=
detector.end(); ++module) {
334 for (JModule::const_iterator pmt = module->begin(); pmt != module->end(); ++pmt) {
344 for (JDetector::const_iterator module =
detector.begin(); module !=
detector.end(); ++module) {
345 if (module->getFloor() == 0)
Data structure for detector geometry and calibration.
General purpose messaging.
#define DEBUG(A)
Message macros.
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
I/O formatting auxiliaries.
Auxiliary class to define a range between two values.
int main(int argc, char **argv)
JSon definitions and auxiliaries.
Auxiliary methods to convert data members or return values of member methods of a set of objects to a...
Data structure for time calibration.
int getFloor() const
Get floor number.
Data structure for a composite optical module.
void rotate(const JRotation3D &R)
Rotate module.
Utility class to parse command line options.
JDirection3D getDirection(const Vec &dir)
Get direction.
JPosition3D getPosition(const Vec &pos)
Get position.
double getDot(const JNeutrinoDirection &first, const JNeutrinoDirection &second)
Dot product.
ResultSet & getResultSet(const std::string &query)
Get result set.
std::vector< JServer > getServernames()
Get list of names of available database servers.
static JRotation getRotation
Function object to get rotation matrix to go from first to second module.
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
JCalibration getCalibration(const JCalibration &first, const JCalibration &second)
Get calibration to go from first to second calibration.
void store(const std::string &file_name, const JDetector &detector)
Store detector to output file.
JDetectorBuilder & getDetectorBuilder()
Get detector builder.
bool hasDetectorAddressMap(const int id)
Check if detector address map is available.
std::string setWildCard(const std::string &file_name, const std::string &value)
Get file name by setting wild card to given value.
bool hasWildCard(const std::string &file_name)
Check presence of wild card.
static const char FILENAME_WILDCARD
wild card character for file name substitution
const array_type< JValue_t > & make_array(const JValue_t(&array)[N])
Method to create array of values.
static const double PI
Mathematical constants.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
const char * getName()
Get ROOT name of given data type.
static const std::string BasePositions_t
static const std::string TypeId_t
static const std::string BaseStatusInfo_t
static const std::string BaseAcousticT0_t
static const std::string TCAL
PMT time offsets.
static const std::string ValidThrough_t
static const std::string PMTT0s_t
static const std::string Message_t
static const std::string PCAL
(optical|base) module positions
static const std::string DOMPositions_t
static const std::string SCAL
(module|PMT) status
static const std::string RCAL
optical module orientations
static const std::string BaseCompassRotations_t
static const std::string Code_t
static const std::string EndTime_t
static const std::string Data_t
static const std::string LocationId_t
static const std::string OK_t
static const std::string Arguments_t
static const std::string UserId_t
static const std::string PMTStatusInfo_t
static const std::string DOMRotations_t
static const std::string ACAL
acoustic time offsets (piezo sensor or hydrophone)
static const std::string DOMAcousticT0_t
static const std::string CCAL
compass alignment (a.k.a. quaternion calibration)
static const std::string DOMStatusInfo_t
static const std::string DOMCompassRotations_t
static const std::string DetOID_t
static const std::string StartTime_t
static const std::string Error_t
static const std::string Comment_t
static const std::string ValidFrom_t
Auxiliary data structure for floating point format specification.
Type definition of range.
Wrapper class for server name.
Template definition for getting table specific selector.
Auxiliary data structure for compass rotation.
Auxiliary interface for building detector.
const JModule & getModule(const int id=-1, const JLocation &location=JLocation()) const
Get module.
Auxiliary data structure for module time calibration.
Auxiliary data structure for module position.
Auxiliary data structure for module rotation.
Auxiliary data structure for module status.
Auxiliary data structure for PMT time calibration.
Auxiliary data structure for PMT status.
Auxiliary data structure for streaming of STL containers.
Auxiliary data structure for correspondence between nick and full name of calibration types.
Auxiliary class for date and time.
std::string toString() const
Get ASCII formatted date and time.