Jpp  17.2.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Typedefs | Functions | Variables
JDETECTOR Namespace Reference

Auxiliary classes and methods for detector calibration. More...

Classes

class  JAnchor
 Data structure for anchor position on sea bed. More...
 
class  JCalibration
 Data structure for time calibration. More...
 
struct  JCalibrator
 Auxiliary class to apply (de-)calibration to template hit. More...
 
struct  JCalibrator< T, true >
 Template specialisation of JCalibrator for primitive data types. More...
 
struct  JCalibrator< JHit_t, false >
 Template specialisation of JCalibrator for non-primitive data types. More...
 
class  JTransferFunction1D
 Auxiliary class for a non-linear transfer function of TDC inside FPGA. More...
 
class  JCLBDefaultSimulator
 Default CLB simulation. More...
 
class  JCLBDefaultSimulatorInterface
 Default CLB simulation. More...
 
struct  JCLBInput
 Wrapper for CLB input. More...
 
class  JCLBSimulator
 Interface for CLB simulation. More...
 
class  JCompass
 Data structure for compass in three dimensions. More...
 
class  JDAQHitRouter
 Simple wrapper around JModuleRouter class for direct addressing of PMT data in detector data structure for DAQ hits. More...
 
class  JDetector
 Detector data structure. More...
 
class  JDetectorAddressMap
 Lookup table for PMT addresses in detector. More...
 
struct  JPPM_DU_t
 Type definitions for different detectors.PPM_DU. More...
 
struct  JKM3NeT_t
 KM3NeT More...
 
struct  JMonteCarlo_t
 Monte Carlo. More...
 
struct  JAntares_t
 Antares More...
 
struct  JObsolete_t
 obsolete detector More...
 
struct  JKM3NeTDB_t
 KM3NeT with cable swaps according database (see JPMTSwapDB.cc) More...
 
class  JTemplateDetectorAddressMap
 Template lookup table for PMT addresses in detector. More...
 
class  JTemplateDetectorAddressMap< JObsolete_t >
 Template specialisation of JTemplateDetectorAddressMap for obsolete detector. More...
 
class  JTemplateDetectorAddressMap< JPPM_DU_t >
 Template specialisation of JTemplateDetectorAddressMap for PPM_DU detector. More...
 
class  JTemplateDetectorAddressMap< JKM3NeT_t >
 Template specialisation of JTemplateDetectorAddressMap for KM3NeT detector. More...
 
class  JTemplateDetectorAddressMap< JMonteCarlo_t >
 Template specialisation of JTemplateDetectorAddressMap for Monte Carlo detector. More...
 
class  JTemplateDetectorAddressMap< JKM3NeTDB_t >
 Template specialisation of JTemplateDetectorAddressMap for KM3NeT detector. More...
 
struct  JDetectorAddressMap_t
 Auxiliary class to extract detector address map from detector identifier. More...
 
struct  JDetectorAddressMap_t< JTypeList< JHead_t, JTail_t > >
 
struct  JDetectorAddressMap_t< JTypeList< JHead_t, JNullType > >
 
struct  JPMTCalibration_t
 Auxiliary data structure for PMT time calibration. More...
 
struct  JPMTStatus_t
 Auxiliary data structure for PMT status. More...
 
struct  JHVCalibration_t
 Data structure for PMT high-voltage calibration. More...
 
struct  JPMTThresholdCalibration_t
 Data structure for PMT threshold calibration. More...
 
struct  JModulePosition_t
 Auxiliary data structure for module position. More...
 
struct  JModuleRotation_t
 Auxiliary data structure for module rotation. More...
 
struct  JModuleStatus_t
 Auxiliary data structure for module status. More...
 
struct  JModuleCalibration_t
 Auxiliary data structure for module time calibration. More...
 
struct  JCompassRotation_t
 Auxiliary data structure for compass rotation. More...
 
class  JDetectorHeader
 Data structure for detector header. More...
 
class  JDetectorParameters
 Data structure for parameters for detector geometry. More...
 
class  JDetectorParametersHelper
 Auxiliary class for I/O of JDetectorParameters data structure. More...
 
class  JDetectorSimulator
 Detector simulation. More...
 
class  JDetectorSubset_t
 Detector subset without binary search functionality. More...
 
class  JDetectorSubset
 Detector subset with binary search functionality. More...
 
struct  JRotation
 Auxiliary class to get rotation matrix between two optical modules. More...
 
struct  JDetectorVersion
 Detector version. More...
 
struct  JGetDetectorVersion
 Auxiliary class to map detector version to numerical value. More...
 
struct  JPutDetectorVersion
 Auxiliary class to map numerical value to detector version. More...
 
struct  JHydrophone
 Type definition of hydrophone. More...
 
class  JK40DefaultSimulator
 Default implementation of the simulation of K40 background. More...
 
class  JK40DefaultSimulatorInterface
 Default K40 simulator interface. More...
 
class  JK40Simulator
 Interface for simulation of K40 background. More...
 
class  JLocation
 Logical location of module. More...
 
class  JModule
 Data structure for a composite optical module. More...
 
class  JModuleAddress
 Address of module in detector data structure. More...
 
struct  JPMTAddressTranslator
 Data structure to translate PMT physical to readout address. More...
 
class  JModuleAddressMap
 Lookup table for PMT addresses in optical module. More...
 
struct  JModuleComparator3Z_t
 Module comparator according its z-position. More...
 
struct  JModuleComparator3D_t
 Module comparator according its distance to origin. More...
 
class  JModuleGeometry
 Module geometry. More...
 
struct  JUTCDistance
 Auxiliary class for distance beteen UTC times. More...
 
struct  JModuleAttributes
 Data structure for module address and module attributes. More...
 
struct  JMaximalDistance
 Auxiliary class to match modules according maximal distance. More...
 
class  JModuleMapper
 Mapper for directly addressing of associated modules in the detector data structure. More...
 
class  JModuleRouter
 Router for direct addressing of module data in detector data structure. More...
 
struct  JGetModuleStatusBit
 Auxiliary class to map key to module status bit. More...
 
class  JMonteCarloDetector
 Monte Carlo detector (i.e. so-called .det file). More...
 
class  JPMT
 Data structure for PMT geometry, calibration and status. More...
 
class  JPMTAddress
 Address of PMT in detector data structure. More...
 
struct  JPMTAnalogueSignalProcessor
 PMT analogue signal processor. More...
 
class  JPMTChannel
 Auxiliary class to uniquely identify PMT readout channel. More...
 
struct  JModuleAnalogueSignalProcessor
 Auxiliary container for PMT analogue signal processors in same optical module. More...
 
class  JPMTDefaultSimulator
 Default PMT simulation. More...
 
class  JPMTDefaultSimulatorInterface
 Default PMT simulation interface. More...
 
class  JPMTIdentifier
 PMT identifier. More...
 
class  JPMTParameters
 Data structure for PMT parameters. More...
 
class  JPMTParametersMap
 Auxiliary class for map of PMT parameters. More...
 
class  JPMTPhysicalAddress
 Data structure for PMT physical address. More...
 
struct  JPMTRateRange
 Data structure for range of PMT rates. More...
 
class  JPMTReadoutAddress
 Data structure for PMT readout address. More...
 
class  JPMTRouter
 Router for direct addressing of PMT data in detector data structure. More...
 
class  JPMTSignalProcessorInterface
 PMT signal processor interface. More...
 
struct  JPhotoElectron
 Data structure for single photo-electron. More...
 
struct  JPMTSignal
 Data structure for PMT analogue signal. More...
 
struct  JPMTPulse
 Data structure for PMT digital pulse. More...
 
class  JPMTData
 Template data structure for PMT I/O. More...
 
class  JModuleData
 Data structure for PMT data corresponding to a detector module. More...
 
class  JPMTSimulator
 Interface for PMT simulation. More...
 
struct  JGetPMTStatusBit
 Auxiliary class to map key to PMT status bit. More...
 
struct  JTransitionTimeGenerator_t
 Auxiliary base class to generate PMT transition times based on measurements. More...
 
struct  JTransitionTimeGenerator
 Implementation to generate PMT transition times based on measurements by Oleg Kalekin et al. (see also examples/JDetector/JTTS.cc). More...
 
struct  JTransitionTimeGenerator38
 Implementation to generate PMT transition times based on measurements. More...
 
struct  JTransitionTimeGenerator41
 Implementation to generate PMT transition times based on measurements. More...
 
struct  JTransitionTimeGenerator67
 Implementation to generate PMT transition times based on measurements. More...
 
struct  JTransitionTimeGeneratorXX
 Implementation to generate PMT transition times based on measurements. More...
 
struct  JTransitionTimeProbability_t
 Auxiliary base class for probability distibution of the PMT transition times based on measurements. More...
 
struct  JTransitionTimeProbability
 Implementation of probability distibution of the PMT transition times based on measurements by Oleg Kalekin et al. More...
 
struct  JTransitionTimeProbability38
 Implementation of probability distibution of the PMT transition times based on measurements. More...
 
struct  JTransitionTimeProbability41
 Implementation of probability distibution of the PMT transition times based on measurements. More...
 
struct  JTransitionTimeProbability67
 Implementation of probability distibution of the PMT transition times based on measurements. More...
 
struct  JTransitionTimeProbabilityXX
 Implementation of probability distibution of the PMT transition times based on measurements. More...
 
class  JTransitionTimeProbability2D
 Auxiliary class to generate twofold PMT transition times. More...
 
struct  JStringCounter
 Auxiliary class for counting unique strings. More...
 
struct  JStringRouter
 Router for mapping of string identifier to index. More...
 
struct  JTransmitter
 Type definition of transmitter. More...
 
class  JTripod
 Data structure for tripod. More...
 
struct  JVersion
 Auxiliary class for version identifier. More...
 

Typedefs

typedef JPMTData< JPMTPulseJPMTOutput
 Type definition of PMT base output. More...
 
typedef JTYPELIST< JPPM_DU_t,
JKM3NeTDB_t, JKM3NeT_t,
JMonteCarlo_t >::typelist 
JDetectorTypes_t
 Type list of KM3NeT detector types (specific detectors first). More...
 
typedef std::vector
< JHVCalibration_t
JHVCalibration
 PMT high voltage calibration. More...
 
typedef std::vector
< JPMTThresholdCalibration_t
JPMTThresholdCalibration
 PMT threshold calibration. More...
 
typedef std::vector
< JPMTCalibration_t
JPMTCalibration
 PMT time calibration. More...
 
typedef std::vector< JPMTStatus_tJPMTStatus
 PMT status. More...
 
typedef std::vector
< JModulePosition_t
JModulePosition
 Module position. More...
 
typedef std::vector
< JModuleRotation_t
JModuleRotation
 Module rotation. More...
 
typedef std::vector
< JModuleStatus_t
JModuleStatus
 Module status. More...
 
typedef std::vector
< JModuleCalibration_t
JModuleCalibration
 Module time calibration. More...
 
typedef std::vector
< JCompassRotation_t
JCompassRotation
 Compass rotation. More...
 
typedef JLANG::JObjectID JDetectorID
 Type definition of detector identifier. More...
 
typedef JTOOLS::JRange< int > floor_range
 Type definition for range of floors. More...
 
typedef JLANG::JComparator
< double(JVector3D::*)() const > 
JModuleComparator
 Type definition of a module comparator using 3D position information. More...
 
typedef JLANG::JObjectID JModuleIdentifier
 
typedef JPutStatusBit JPutModuleStatusBit
 Type definition to map module status bit to key. More...
 
typedef std::map
< JPMTIdentifier,
JPMTParameters
JPMTParametersMap_t
 Type definition of map PMT identifier to PMT parameters. More...
 
typedef JPutStatusBit JPutPMTStatusBit
 Type definition to map PMT status bit to key. More...
 

Functions

bool operator< (const JAnchor &first, const JAnchor &second)
 Sort anchors in ascending distance from (0,0). More...
 
template<class T >
double getTime (const T &t1, const JCalibration &cal)
 Get calibrated time. More...
 
template<class T >
double putTime (const T &t1, const JCalibration &cal)
 Get de-calibrated time. More...
 
template<class T >
double getToT (const T &tot, const JCalibration &cal)
 Get calibrated time-over-threshold of hit. More...
 
template<class T >
double putToT (const T &tot, const JCalibration &cal)
 Get de-calibrated time-over-threshold of hit. More...
 
bool hasDetector (JType< JPPM_DU_t > type, const int id)
 Check validity of detector identifier. More...
 
bool hasDetector (JType< JKM3NeTDB_t > type, const int id)
 
bool hasDetector (JType< JKM3NeT_t > type, const int id)
 
bool hasDetector (JType< JMonteCarlo_t > type, const int id)
 
template<class JDetector_t >
JDetectorAddressMapgetDetectorAddressMap ()
 Get detector address map. More...
 
template<class JDetector_t >
JModuleAddressMapgetModuleAddressMap (int id)
 Get module address map. More...
 
template<class JDetector_t >
const JPMTAddressTranslatorgetPMTAddressTranslator (int id, int tdc)
 Get PMT address translator for given module identifier and TDC channel. More...
 
template<class JDetector_t >
int getPMTLogicalIndex (int id, int tdc)
 Get PMT logical index for given module identifier and TDC channel. More...
 
JDetectorAddressMapgetDetectorAddressMap (const int id)
 Get detector address map. More...
 
bool hasDetectorAddressMap (const int id)
 Check if detector address map is available. More...
 
bool is_valid (const json &js)
 Check validity of JSon data. More...
 
template<class T >
std::vector< std::string > get_string_array (T value)
 Cast single value to array of strings, conform the DB-format. More...
 
double retrieve_value (std::vector< std::string > string_value_array)
 Retrieve value from json array of strings. More...
 
void to_json (json &js, const JPMTCalibration_t &object)
 Convert PMT time calibration to JSon. More...
 
void from_json (const json &js, JPMTCalibration_t &object)
 Convert JSon to PMT time calibration. More...
 
void to_json (json &js, const JPMTStatus_t &object)
 Convert PMT status to JSon. More...
 
void from_json (const json &js, JPMTStatus_t &object)
 Convert JSon to PMT status. More...
 
void to_json (json &js, const JHVCalibration_t &object)
 Convert PMT high-voltage calibration to JSon. More...
 
void from_json (const json &js, JHVCalibration_t &object)
 Convert JSon to PMT high-voltage calibration. More...
 
void to_json (json &js, const JPMTThresholdCalibration_t &object)
 Convert PMT threshold calibration to JSon. More...
 
void from_json (const json &js, JPMTThresholdCalibration_t &object)
 Convert JSon to PMT threshold calibration. More...
 
void to_json (json &js, const JModulePosition_t &object)
 Convert module position to JSon. More...
 
void from_json (const json &js, JModulePosition_t &object)
 Convert JSon to module position. More...
 
void to_json (json &js, const JModuleRotation_t &object)
 Convert module rotation to JSon. More...
 
void from_json (const json &js, JModuleRotation_t &object)
 Convert JSon to module rotation. More...
 
void to_json (json &js, const JModuleStatus_t &object)
 Convert module status to JSon. More...
 
void from_json (const json &js, JModuleStatus_t &object)
 Convert JSon to module status. More...
 
void to_json (json &js, const JModuleCalibration_t &object)
 Convert module time calibration to JSon. More...
 
void from_json (const json &js, JModuleCalibration_t &object)
 Convert JSon to module time calibration. More...
 
void to_json (json &js, const JCompassRotation_t &object)
 Convert compass rotation to JSon. More...
 
void from_json (const json &js, JCompassRotation_t &object)
 Convert JSon to compass rotation. More...
 
JUTMGrid getARCAUTMGrid ()
 Get UTM grid for ARCA. More...
 
JUTMGrid getORCAUTMGrid ()
 Get UTM grid for ORCA. More...
 
JDetectorHeader getARCADetectorHeader ()
 Get detector header for ARCA. More...
 
JDetectorHeader getORCADetectorHeader ()
 Get detector header for ORCA. More...
 
bool isARCADetector (const JDetectorHeader &header)
 Check if given detector header is compatible with tat of ARCA. More...
 
bool isORCADetector (const JDetectorHeader &header)
 Check if given detector header is compatible with that of ORCA. More...
 
double getMaximalDistance (const JDetector &detector)
 Get maximal distance between modules in detector. More...
 
double GetXrotationG4 (const JVersor3D dir)
 Get rotation over X axis in Geant4 coordinate system. More...
 
double GetYrotationG4 (const JVersor3D dir)
 Get rotation over Y axis in Geant4 coordinate system. More...
 
void read_gdml (std::istream &, JDetector &)
 
void write_gdml (std::ostream &out, const JDetector &detector)
 Writes KM3Sim GDML input file from detector. More...
 
double getMaximalTime (const JDetector &detector)
 Get maximal time between modules in detector following causality. More...
 
double getMaximalTime (const JDetector &detector, const double roadWidth_m)
 Get maximal time between modules in detector following causality. More...
 
JTimeRange getTimeRange (const JTimeRange &timeRange, const JModule &module)
 Get de-calibrated time range. More...
 
int getNumberOfPMTs (const JModule &module)
 Get number of PMTs. More...
 
int getNumberOfPMTs (const JDetector &detector)
 Get number of PMTs. More...
 
std::set< int > getStringIDs (const JDetector &detector)
 Get list of strings identifiers. More...
 
int getNumberOfFloors (const JDetector &detector)
 Get number of floors. More...
 
floor_range getRangeOfFloors (const JDetector &detector)
 Get range of floors. More...
 
int getNumberOfModules (const JDetector &detector)
 Get number of modules. More...
 
void load (const std::string &file_name, JDetector &detector)
 Load detector from input file. More...
 
void store (const std::string &file_name, const JDetector &detector)
 Store detector to output file. More...
 
const JModulegetModule (const JModuleAddressMap &memo, const int id=-1, const JLocation &location=JLocation())
 Get module according module address map. More...
 
template<class JDetector_t >
const JModulegetModule (const JType< JDetector_t > type, const int id, const JLocation &location=JLocation())
 Get module according given detector type. More...
 
const JModulegetModule (const JType< JAntares_t > type, const int id, const JLocation &location=JLocation())
 Get module according Antares detector type. More...
 
template<class JDetector_t >
const JModulegetModule (const int id, const JLocation &location=JLocation())
 Get module according detector template. More...
 
JPosition3D getPosition (const JModule &first, const JModule &second)
 Get position to go from first to second module. More...
 
JCalibration getCalibration (const JCalibration &first, const JCalibration &second)
 Get calibration to go from first to second calibration. More...
 
std::vector< std::string > getDetectorVersions (const JType< std::string > &type)
 Get detector versions. More...
 
std::vector
< JDetectorVersion::JVersion_t
getDetectorVersions (const JType< JDetectorVersion::JVersion_t > &type)
 Get detector versions. More...
 
template<class T >
std::vector< TgetDetectorVersions ()
 Get detector versions. More...
 
std::string getLatestDetectorVersion (const JType< std::string > &type)
 Get latest detector version. More...
 
JVersion getLatestDetectorVersion (const JType< JVersion > &type)
 Get latest detector version. More...
 
JDetectorVersion::JVersion_t getLatestDetectorVersion (const JType< JDetectorVersion::JVersion_t > &type)
 Get latest detector version. More...
 
template<class T >
T getLatestDetectorVersion ()
 Get latest detector version. More...
 
std::string getLabel (const JLocation &location)
 Get module label for monitoring and other applications. More...
 
template<class JAttributes_t >
void setAttributes (const JModule &first, const JModule &second, JAttributes_t &attributes)
 Template method to set module attributes. More...
 
template<>
void setAttributes< JNullType > (const JModule &first, const JModule &second, JNullType &attributes)
 Template specialisation to set no attributes for the default empty object. More...
 
std::vector< std::string > getModuleStatusBits (const JType< std::string > &type)
 Get module status bits. More...
 
std::vector< int > getModuleStatusBits (const JType< int > &type)
 Get module status bits. More...
 
template<class T >
std::vector< TgetModuleStatusBits ()
 Get module status bits. More...
 
JPosition3D getPiezoPosition ()
 Get relative position of piezo in optical module. More...
 
double getTimeOverThresholdProbability (const JPMTAnalogueSignalProcessor &pmt, const double tot_ns, const double NPE, const double precision=1.0e-4)
 Get time-over-threshold probability. More...
 
bool operator< (const JPMTIdentifier &first, const JPMTIdentifier &second)
 Less than operator for PMT identifiers. More...
 
bool operator== (const JPMTIdentifier &first, const JPMTIdentifier &second)
 Equal operator for PMT identifiers. More...
 
std::string getLabel (const JPMTIdentifier &id)
 Get PMT label for monitoring and other applications. More...
 
double getSurvivalProbability (const JPMTParameters &parameters)
 Get model dependent probability that a one photo-electron hit survives the simulation of the PMT assuming QE = 1. More...
 
double getHitProbability (const double QE, const double mu)
 Get ratio of hit probabilities for given QE and expectation value of the number of photo-electrons. More...
 
double getMaximalHitProbability (const double mu)
 Get maximal ratio of hit probabilities for given QE and expectation value of the number of photo-electrons. More...
 
double getQE (const double R, const double mu)
 Get QE for given ratio of hit probabilities and expectation value of the number of photo-electrons. More...
 
double getChargeProbability (const JPMTSignalProcessorInterface &pmt, const double npe, const double NPE, const double precision=1.0e-4)
 Get charge probability. More...
 
bool operator< (const JPhotoElectron &first, const JPhotoElectron &second)
 Less than operator for photo-elecrons. More...
 
bool operator< (const JPMTSignal &first, const JPMTSignal &second)
 Less than operator for PMT signals. More...
 
bool operator< (const JPMTPulse &first, const JPMTPulse &second)
 Less than operator for PMT pulses. More...
 
JTimeRange getTimeRange (const JPMTData< JPMTSignal > &input)
 Get time range (i.e. earlist and latest hit time) of PMT data. More...
 
JTimeRange getTimeRange (const JModuleData &input)
 Get time range (i.e. earlist and latest hit time) of module data. More...
 
std::vector< std::string > getPMTStatusBits (const JType< std::string > &type)
 Get PMT status bits. More...
 
std::vector< int > getPMTStatusBits (const JType< int > &type)
 Get PMT status bits. More...
 
template<class T >
std::vector< TgetPMTStatusBits ()
 Get PMT status bits. More...
 

Variables

const double TIME_OVER_THRESHOLD_NS = 25.08
 Specification for time-over-threshold corresponding to a one photo-electron pulse. More...
 
const double NOMINAL_GAIN = 1.0
 Specification for normalized gain corresponding to a one photo-electron pulse. More...
 
static const std::string TCAL = "tcal"
 PMT time offsets. More...
 
static const std::string PCAL = "pcal"
 (optical|base) module positions More...
 
static const std::string RCAL = "rcal"
 (optical|base) module orientations More...
 
static const std::string ACAL = "acal"
 acoustic time offsets (piezo sensor or hydrophone) More...
 
static const std::string CCAL = "ccal"
 compass alignment (a.k.a. quaternion calibration) More...
 
static const std::string SCAL = "scal"
 PMT status. More...
 
static const std::string User_t = "User"
 Detector calibration key words for JSON I/O. More...
 
static const std::string Location_t = "Location"
 
static const std::string Time_t = "Time"
 
static const std::string Start_t = "Start"
 
static const std::string End_t = "End"
 
static const std::string Comment_t = "Comment"
 
static const std::string Encoding_t = "Encoding"
 
static const std::string Input_t = "Inputs"
 
static const std::string Error_t = "Error"
 
static const std::string Message_t = "Message"
 
static const std::string Code_t = "Code"
 
static const std::string Provenance_t = "Provenance"
 
static const std::string Info_t = "Info"
 
static const std::string Configuration_t = "Configuration"
 
static const std::string Arguments_t = "Arguments"
 
static const std::string Inputs_t = "Inputs"
 
static const std::string UUID_t = "UUID"
 
static const std::string APIVersion_t = "APIVersion"
 
static const std::string Result_t = "Result"
 
static const std::string OK_t = "OK"
 
static const std::string Fail_t = "FAIL"
 
static const std::string Type_t = "Type"
 
static const std::string Test_t = "Test"
 
static const std::string Tests_t = "Tests"
 
static const std::string Data_t = "Data"
 
static const std::string URL_t = "URL"
 
static const std::string Name_t = "Name"
 
static const std::string Unit_t = "Unit"
 
static const std::string Values_t = "Values"
 
static const std::string Parameters_t = "Parameters"
 
static const std::string RunNumber_t = "RUN_NUMBER"
 
static const std::string PMTT0s_t = "PMTT0s"
 
static const std::string PMTStatusInfo_t = "PMTStatusInfo"
 
static const std::string PMTSupplyVoltage_t = "PMT_Supply_Voltage"
 
static const std::string PMTThreshold_t = "PMT_Threshold"
 
static const std::string DOMPositions_t = "DOMPositions"
 
static const std::string DOMRotations_t = "DOMRotations"
 
static const std::string DOMAcousticT0_t = "DOMAcousticT0s"
 
static const std::string DOMCompassRotations_t = "DOMCompassRotations"
 
static const std::string DOMStatusInfo_t = "DOMStatusInfo"
 
static const std::string PMTGain_t = "PMT_Gain"
 
static const std::string BasePositions_t = "BasePositions"
 
static const std::string BaseRotations_t = "BaseRotations"
 
static const std::string BaseStatusInfo_t = "BaseStatusInfo"
 
static const std::string UPI_t = "UPI"
 
static const std::string PBS_t = "PBS"
 
static const std::string Variant_t = "Variant"
 
static const std::string DetOID_t = "DetOID"
 
static const std::string DetID_t = "DetID"
 
static const std::string PMTSerial_t = "Serial"
 
static const std::string DOMSerial_t = "DOMSerial"
 
static const std::string DOMId_t = "DOMId"
 
static const std::string Id_t = "Id"
 
static const std::string T0_t = "T0"
 
static const std::string PX_t = "PX"
 
static const std::string PY_t = "PY"
 
static const std::string PZ_t = "PZ"
 
static const std::string Q0_t = "Q0"
 
static const std::string QX_t = "QX"
 
static const std::string QY_t = "QY"
 
static const std::string QZ_t = "QZ"
 
static const std::string STATUS_t = "Status"
 
static const std::string Unitless_t = "-"
 
static const std::string Volt_t = "V"
 
static const double ORCA_TBARZ_M = 0.91
 ORCA T-bar position relative to seabed [m]. More...
 
static const double ARCA_TBARZ_M = 0.95
 ORCA T-bar position relative to seabed [m]. More...
 
static const char *const GENDET_DETECTOR_FILE_FORMAT = "det"
 File name extensions. More...
 
static const char *const BINARY_DETECTOR_FILE_FORMAT [] = { "dat", "datx" }
 JIO binary file format. More...
 
static const char *const KM3NET_DETECTOR_FILE_FORMAT = "detx"
 KM3NeT standard ASCII format More...
 
static const char *const ZIPPED_DETECTOR_FILE_FORMAT = "gz"
 zipped KM3NeT standard ASCII format More...
 
static const char *const GDML_DETECTOR_FILE_FORMAT = "gdml"
 KM3Sim input format. More...
 
static const char *const GDML_SCHEMA = getenv("GDML_SCHEMA_DIR")
 directory necessary for correct GDML header output More...
 
static const char *const CAN_MARGIN_M = getenv("CAN_MARGIN_M")
 extension of the detector size to comply with the can definition More...
 
static const char *const G4GDML_DEFAULT_SCHEMALOCATION = "http://service-spi.web.cern.ch/service-spi/app/releases/GDML/schema/gdml.xsd"
 
static JRotation getRotation
 Function object to get rotation matrix to go from first to second module. More...
 
static const JGetDetectorVersion getDetectorVersion
 Function object to map detector version to numerical value. More...
 
static const JPutDetectorVersion putDetectorVersion (getDetectorVersion)
 Function object to map numerical value to detector version. More...
 
static const JGetModuleStatusBit getModuleStatusBit
 Function object to map key to module status bit. More...
 
static const JPutModuleStatusBit putModuleStatusBit (getModuleStatusBit)
 Function object to map module status bit to key. More...
 
static const double PIEZO_V1_DELAYTIME_US = 170.3
 Piezo delay time [us]. More...
 
static const double PIEZO_V2_DELAYTIME_US = 242.1
 Piezo delay time [us]. More...
 
static const double PIEZO_V3_DELAYTIME_US = 242.1
 Piezo delay time [us]. More...
 
static const double HYDROPHONE_DELAYTIME_US = 50.7
 Hydrophone delay time [us]. More...
 
static const int LED_BEACON_PMT_TYPE = 2
 PMT type of LED beacon. More...
 
static const JGetPMTStatusBit getPMTStatusBit
 Function object to map key to PMT status bit. More...
 
static const JPutPMTStatusBit putPMTStatusBit (getPMTStatusBit)
 Function object to map PMT status bit to key. More...
 
const JTransitionTimeGenerator38 p38
 
const JTransitionTimeGenerator41 p41
 
const JTransitionTimeGenerator67 p67
 
 getTransitionTime
 Function object to generate transition time. More...
 
 getTransitionTimeProbability
 Function object of transition time prabability. More...
 
static const
JTransitionTimeProbability2D 
getTransitionTimeProbability2D
 Function object of twofold transition time prabability. More...
 
static const JStringCounter getNumberOfStrings
 Function object to count unique strings. More...
 

Detailed Description

Auxiliary classes and methods for detector calibration.

Auxiliary classes and methods for detector calibration and simulation.

Author
mdejong
mdejong, bjung, acreusot

Typedef Documentation

Type definition of PMT base output.

Definition at line 27 of file JCLBSimulator.hh.

Type list of KM3NeT detector types (specific detectors first).

Definition at line 44 of file JDetectorAddressMapToolkit.hh.

PMT high voltage calibration.

Definition at line 856 of file JDetectorCalibration.hh.

PMT threshold calibration.

Definition at line 857 of file JDetectorCalibration.hh.

PMT time calibration.

Definition at line 858 of file JDetectorCalibration.hh.

PMT status.

Definition at line 859 of file JDetectorCalibration.hh.

Module position.

Definition at line 860 of file JDetectorCalibration.hh.

Module rotation.

Definition at line 861 of file JDetectorCalibration.hh.

Module status.

Definition at line 862 of file JDetectorCalibration.hh.

Module time calibration.

Definition at line 863 of file JDetectorCalibration.hh.

Compass rotation.

Definition at line 864 of file JDetectorCalibration.hh.

Type definition of detector identifier.

Definition at line 19 of file JDetectorID.hh.

Type definition for range of floors.

Definition at line 427 of file JDetectorToolkit.hh.

typedef JLANG::JComparator<double (JVector3D::*)() const> JDETECTOR::JModuleComparator

Type definition of a module comparator using 3D position information.

Definition at line 22 of file JModuleComparator.hh.

Definition at line 16 of file JModuleIdentifier.hh.

Type definition to map module status bit to key.

Definition at line 58 of file JModuleStatus.hh.

Type definition of map PMT identifier to PMT parameters.

Definition at line 47 of file JPMTParametersMap.hh.

Type definition to map PMT status bit to key.

Definition at line 59 of file JPMTStatus.hh.

Function Documentation

bool JDETECTOR::operator< ( const JAnchor first,
const JAnchor second 
)
inline

Sort anchors in ascending distance from (0,0).

Parameters
firstfirst anchor
secondsecond anchor
Returns
true if first anchor closer to (0,0); else false

Definition at line 99 of file JAnchor.hh.

100  {
101  return first.getLengthSquared() < second.getLengthSquared();
102  }
double getLengthSquared() const
Get length squared.
Definition: JVector2D.hh:188
template<class T >
double JDETECTOR::getTime ( const T t1,
const JCalibration cal 
)
inline

Get calibrated time.

Parameters
t1time [ns]
calcalibration
Returns
time [ns]

Definition at line 222 of file JDetector/JCalibration.hh.

223  {
224  return JCalibrator<T>::getTime(t1, cal);
225  }
double getTime(const Hit &hit)
Get true time of hit.
template<class T >
double JDETECTOR::putTime ( const T t1,
const JCalibration cal 
)
inline

Get de-calibrated time.

Parameters
t1time [ns]
calcalibration
Returns
time [ns]

Definition at line 236 of file JDetector/JCalibration.hh.

237  {
238  return JCalibrator<T>::putTime(t1, cal);
239  }
double putTime(const T &t1, const JCalibration &cal)
Get de-calibrated time.
template<class T >
double JDETECTOR::getToT ( const T tot,
const JCalibration cal 
)
inline

Get calibrated time-over-threshold of hit.

Parameters
tottime-over-threshold [ns]
calcalibration
Returns
time-over-threshold [ns]

Definition at line 250 of file JDetector/JCalibration.hh.

251  {
252  return JCalibrator<T>::getToT(tot, cal);
253  }
double getToT(const T &tot, const JCalibration &cal)
Get calibrated time-over-threshold of hit.
template<class T >
double JDETECTOR::putToT ( const T tot,
const JCalibration cal 
)
inline

Get de-calibrated time-over-threshold of hit.

Parameters
tottime-over-threshold [ns]
calcalibration
Returns
time-over-threshold [ns]

Definition at line 264 of file JDetector/JCalibration.hh.

265  {
266  return JCalibrator<T>::putToT(tot, cal);
267  }
double putToT(const T &tot, const JCalibration &cal)
Get de-calibrated time-over-threshold of hit.
bool JDETECTOR::hasDetector ( JType< JPPM_DU_t type,
const int  id 
)
inline

Check validity of detector identifier.

Parameters
typedetector type
iddetector identifier
Returns
true if valid match; else false

Definition at line 54 of file JDetectorAddressMapToolkit.hh.

54 { return id == 1; }
bool JDETECTOR::hasDetector ( JType< JKM3NeTDB_t type,
const int  id 
)
inline

Definition at line 55 of file JDetectorAddressMapToolkit.hh.

55 { return id >= 116; }
bool JDETECTOR::hasDetector ( JType< JKM3NeT_t type,
const int  id 
)
inline

Definition at line 56 of file JDetectorAddressMapToolkit.hh.

56 { return id >= 2 && id <= 2000000000; }
bool JDETECTOR::hasDetector ( JType< JMonteCarlo_t type,
const int  id 
)
inline

Definition at line 57 of file JDetectorAddressMapToolkit.hh.

57 { return id >= -2000000000 && id <= -2; }
template<class JDetector_t >
JDetectorAddressMap& JDETECTOR::getDetectorAddressMap ( )
inline

Get detector address map.

Returns
detector address map

Definition at line 388 of file JDetectorAddressMapToolkit.hh.

389  {
391 
392  return demo;
393  }
Template lookup table for PMT addresses in detector.
template<class JDetector_t >
JModuleAddressMap& JDETECTOR::getModuleAddressMap ( int  id)
inline

Get module address map.

Parameters
idmodule identifier
Returns
module address map

Definition at line 403 of file JDetectorAddressMapToolkit.hh.

404  {
405  return getDetectorAddressMap<JDetector_t>().get(id);
406  }
template<class JDetector_t >
const JPMTAddressTranslator& JDETECTOR::getPMTAddressTranslator ( int  id,
int  tdc 
)
inline

Get PMT address translator for given module identifier and TDC channel.

Parameters
idmodule identifier
tdcTDC
Returns
PMT address translator

Definition at line 417 of file JDetectorAddressMapToolkit.hh.

418  {
419  return getModuleAddressMap<JDetector_t>(id).getAddressTranslator(tdc);
420  }
template<class JDetector_t >
int JDETECTOR::getPMTLogicalIndex ( int  id,
int  tdc 
)
inline

Get PMT logical index for given module identifier and TDC channel.

Parameters
idmodule identifier
tdcTDC
Returns
PMT logical index

Definition at line 431 of file JDetectorAddressMapToolkit.hh.

432  {
433  return getModuleAddressMap<JDetector_t>(id).getIndex(tdc);
434  }
int getIndex()
Get index for user I/O manipulation.
Definition: JManip.hh:26
JDetectorAddressMap& JDETECTOR::getDetectorAddressMap ( const int  id)
inline

Get detector address map.

Parameters
iddetector identifier
Returns
detector address map

Definition at line 512 of file JDetectorAddressMapToolkit.hh.

513  {
515  }
T get(const JHead &header)
Get object from header.
bool JDETECTOR::hasDetectorAddressMap ( const int  id)
inline

Check if detector address map is available.

Parameters
iddetector identifier
Returns
true if detector address map available; else false

Definition at line 524 of file JDetectorAddressMapToolkit.hh.

525  {
527  }
Auxiliary class to extract detector address map from detector identifier.
bool JDETECTOR::is_valid ( const json js)
inline

Check validity of JSon data.

Parameters
jsJSon data
Returns
true if valid; else false

Definition at line 147 of file JDetectorCalibration.hh.

148  {
149  return ((js.contains(Result_t) && js[Result_t] == OK_t) ||
150  (js.contains(Error_t) && js[Error_t][Code_t] == OK_t));
151  }
static const std::string OK_t
static const std::string Result_t
static const std::string Code_t
static const std::string Error_t
template<class T >
std::vector<std::string> JDETECTOR::get_string_array ( T  value)
inline

Cast single value to array of strings, conform the DB-format.

Parameters
valuevalue
Returns
std::vector containing value casted to string

Definition at line 161 of file JDetectorCalibration.hh.

162  {
163  using namespace std;
164 
165  return vector<string>{ to_string(value) };
166  }
std::string to_string(const T &value)
Convert value to string.
double JDETECTOR::retrieve_value ( std::vector< std::string >  string_value_array)
inline

Retrieve value from json array of strings.

Parameters
string_value_arrayarray of string-casted values
Returns
double-casted value

Definition at line 175 of file JDetectorCalibration.hh.

176  {
177  return std::stod(string_value_array[0]);
178  }
void JDETECTOR::to_json ( json js,
const JPMTCalibration_t object 
)
inline

Convert PMT time calibration to JSon.

Parameters
jsjson
objectPMT time calibration

Definition at line 215 of file JDetectorCalibration.hh.

216  {
217  js = json{ { PMTSerial_t, object.getID() },
218  { T0_t, object.getT0() } };
219  }
static const std::string T0_t
static const std::string PMTSerial_t
nlohmann::json json
void JDETECTOR::from_json ( const json js,
JPMTCalibration_t object 
)
inline

Convert JSon to PMT time calibration.

Parameters
jsjson
objectPMT time calibration

Definition at line 228 of file JDetectorCalibration.hh.

229  {
230  object.setID(js.at(PMTSerial_t).get<int>());
231 
232  object.setT0(js.at(T0_t).get<double>());
233  }
static const std::string T0_t
static const std::string PMTSerial_t
void JDETECTOR::to_json ( json js,
const JPMTStatus_t object 
)
inline

Convert PMT status to JSon.

Parameters
jsjson
objectPMT status

Definition at line 270 of file JDetectorCalibration.hh.

271  {
272  js = json{ { PMTSerial_t, object.getID() },
273  { STATUS_t, object.getStatus() } };
274  }
static const std::string PMTSerial_t
nlohmann::json json
static const std::string STATUS_t
void JDETECTOR::from_json ( const json js,
JPMTStatus_t object 
)
inline

Convert JSon to PMT status.

Parameters
jsjson
objectPMT status

Definition at line 283 of file JDetectorCalibration.hh.

284  {
285  object.setID(js.at(PMTSerial_t).get<int>());
286 
287  object.setStatus(js.at(STATUS_t).get<int>());
288  }
static const std::string PMTSerial_t
static const std::string STATUS_t
void JDETECTOR::to_json ( json js,
const JHVCalibration_t object 
)
inline

Convert PMT high-voltage calibration to JSon.

Parameters
jsjson2
objectPMT high-voltage calibration

Definition at line 381 of file JDetectorCalibration.hh.

382  {
383  using namespace std;
384 
385  ostringstream os;
386 
387  os << object.getUPI();
388 
389  js[UPI_t] = os.str();
390  js[Test_t + Result_t] = object.result;
392  { Unit_t, Volt_t },
393  { Values_t, get_string_array(object.supplyVoltage) } };
394 
395  static const int version = JHVCalibration_t::getVersion();
396 
397  if (version < 2) {
398 
399  js[Test_t + Parameters_t][2] = json{ { Name_t, PMTGain_t },
400  { Unit_t, Unitless_t },
401  { Values_t, get_string_array(object.PMTgain) } };
402  }
403 
404 
405  if (version < 3) {
406 
407  vector<string> runNumberList;
408 
409  for (vector<int>::const_iterator i = object.runNumbers.cbegin(); i != object.runNumbers.cend(); ++i) {
410  runNumberList.push_back(to_string(*i));
411  }
412 
413  js[Test_t + Parameters_t][1] = json{ { Name_t, RunNumber_t },
414  { Unit_t, Unitless_t },
415  { Values_t, runNumberList } };
416  }
417  }
static const std::string PMTGain_t
static const std::string Name_t
static const std::string PMTSupplyVoltage_t
static const std::string Unit_t
version
Definition: JEditTuneHV.sh:5
int getVersion(const std::string &version)
Get numerical value of AHRS calibration version.
static const std::string UPI_t
static const std::string Result_t
static const std::string Volt_t
static const std::string Test_t
static const std::string RunNumber_t
static const std::string Values_t
nlohmann::json json
std::string to_string(const T &value)
Convert value to string.
static const std::string Parameters_t
static const std::string Unitless_t
std::vector< std::string > get_string_array(T value)
Cast single value to array of strings, conform the DB-format.
void JDETECTOR::from_json ( const json js,
JHVCalibration_t object 
)
inline

Convert JSon to PMT high-voltage calibration.

Parameters
jsjson
objectPMT high-voltage calibration

Definition at line 426 of file JDetectorCalibration.hh.

427  {
428  using namespace std;
429 
430  stringstream is(js.at(UPI_t).get<string>());
431 
432  is >> static_cast<JUPI_t&>(object);
433 
434  json parameters = js.at(Test_t + Parameters_t);
435 
436  if (JHVCalibration_t::getVersion() > 0 && parameters.size() > 0) {
437 
438  object.result = js.at(Test_t + Result_t).get<string>();
439  object.supplyVoltage = retrieve_value(parameters[0].at(Values_t).get<vector<string>>());
440 
441  if (JHVCalibration_t::getVersion() < 3 && parameters.size() > 1) {
442 
443  vector<string> runNumberList = parameters[1].at(Values_t).get<vector<string>>();
444 
445  for (vector<string>::const_iterator i = runNumberList.begin(); i != runNumberList.end(); ++i) {
446  object.runNumbers.push_back(stoi(*i));
447  }
448  }
449 
450  if (JHVCalibration_t::getVersion() < 2 && parameters.size() > 2) {
451  object.PMTgain = retrieve_value(parameters[2].at(Values_t).get<vector<string>>());
452  }
453 
454  } else {
455 
456  THROW(JValueOutOfRange, "JHVCalibration_t::from_json(): No " << MAKE_STRING(Test_t + Parameters_t) << " found." << endl);
457  }
458  }
int getVersion(const std::string &version)
Get numerical value of AHRS calibration version.
static const std::string UPI_t
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:696
*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
Definition: diff-Tuna.sh:38
double retrieve_value(std::vector< std::string > string_value_array)
Retrieve value from json array of strings.
is
Definition: JDAQCHSM.chsm:167
#define MAKE_STRING(A)
Make string.
Definition: JPrint.hh:127
static const std::string Result_t
static const std::string Test_t
static const std::string Values_t
nlohmann::json json
static const std::string Parameters_t
void JDETECTOR::to_json ( json js,
const JPMTThresholdCalibration_t object 
)
inline

Convert PMT threshold calibration to JSon.

Parameters
jsjson
objectPMT threshold calibration

Definition at line 503 of file JDetectorCalibration.hh.

504  {
505  std::ostringstream os;
506 
507  os << object.getUPI();
508 
509  js[UPI_t] = os.str();
510  js[Test_t + Result_t] = object.result;
511  js[Test_t + Parameters_t][0] = json{ { Name_t, PMTThreshold_t },
512  { Unit_t, Unitless_t },
513  { Values_t, get_string_array(object.threshold) } };
514  js[Test_t + Parameters_t][2] = json{ { Name_t, RunNumber_t },
515  { Unit_t, Unitless_t },
516  { Values_t, object.runNumberList } };
517  }
static const std::string Name_t
static const std::string Unit_t
static const std::string UPI_t
static const std::string Result_t
static const std::string PMTThreshold_t
static const std::string Test_t
static const std::string RunNumber_t
static const std::string Values_t
nlohmann::json json
static const std::string Parameters_t
static const std::string Unitless_t
std::vector< std::string > get_string_array(T value)
Cast single value to array of strings, conform the DB-format.
void JDETECTOR::from_json ( const json js,
JPMTThresholdCalibration_t object 
)
inline

Convert JSon to PMT threshold calibration.

Parameters
jsjson
objectPMT threshold calibration

Definition at line 526 of file JDetectorCalibration.hh.

527  {
528  using namespace std;
529 
530  stringstream is(js.at(UPI_t).get<string>());
531 
532  is >> static_cast<JUPI_t&>(object);
533 
534  object.result = js.at(Test_t + Result_t).get<string>();
535  object.threshold = retrieve_value(js.at(Test_t + Parameters_t)[0].at(Values_t).get<vector<string>>());
536  object.runNumberList = js.at(Test_t + Parameters_t)[2].at(Values_t).get<vector<int>>();
537  }
static const std::string UPI_t
double retrieve_value(std::vector< std::string > string_value_array)
Retrieve value from json array of strings.
is
Definition: JDAQCHSM.chsm:167
static const std::string Result_t
static const std::string Test_t
static const std::string Values_t
static const std::string Parameters_t
void JDETECTOR::to_json ( json js,
const JModulePosition_t object 
)
inline

Convert module position to JSon.

Parameters
jsjson
objectmodule position

Definition at line 574 of file JDetectorCalibration.hh.

575  {
576  js = json{ { Id_t, object.getID() },
577  { PX_t, object.getX() },
578  { PY_t, object.getY() },
579  { PZ_t, object.getZ() } };
580  }
static const std::string PZ_t
static const std::string PX_t
static const std::string Id_t
static const std::string PY_t
nlohmann::json json
void JDETECTOR::from_json ( const json js,
JModulePosition_t object 
)
inline

Convert JSon to module position.

Parameters
jsjson
objectmodule position

Definition at line 589 of file JDetectorCalibration.hh.

590  {
591  if (js.contains(DOMId_t))
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>());
595  else
596  THROW(JNoValue, "Missing module identifier.");
597 
598  object.setPosition(JPosition3D(js.at(PX_t).get<double>(),
599  js.at(PY_t).get<double>(),
600  js.at(PZ_t).get<double>()));
601  }
static const std::string PZ_t
static const std::string DOMId_t
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:696
static const std::string PX_t
static const std::string Id_t
static const std::string PY_t
void JDETECTOR::to_json ( json js,
const JModuleRotation_t object 
)
inline

Convert module rotation to JSon.

Parameters
jsjson
objectmodule rotation

Definition at line 638 of file JDetectorCalibration.hh.

639  {
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() } };
645  }
static const std::string Q0_t
static const std::string QZ_t
static const std::string Id_t
nlohmann::json json
static const std::string QY_t
static const std::string QX_t
void JDETECTOR::from_json ( const json js,
JModuleRotation_t object 
)
inline

Convert JSon to module rotation.

Parameters
jsjson
objectmodule rotation

Definition at line 654 of file JDetectorCalibration.hh.

655  {
656  if (js.contains(DOMId_t))
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>());
660  else
661  THROW(JNoValue, "Missing module identifier.");
662 
663  object.setQuaternion(JQuaternion3D(js.at(Q0_t).get<double>(),
664  js.at(QX_t).get<double>(),
665  js.at(QY_t).get<double>(),
666  js.at(QZ_t).get<double>()));
667  }
static const std::string Q0_t
static const std::string DOMId_t
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:696
static const std::string QZ_t
static const std::string Id_t
static const std::string QY_t
static const std::string QX_t
void JDETECTOR::to_json ( json js,
const JModuleStatus_t object 
)
inline

Convert module status to JSon.

Parameters
jsjson
objectmodule status

Definition at line 704 of file JDetectorCalibration.hh.

705  {
706  js = json{ { Id_t, object.getID() },
707  { STATUS_t, object.getStatus() } };
708  }
static const std::string Id_t
nlohmann::json json
static const std::string STATUS_t
void JDETECTOR::from_json ( const json js,
JModuleStatus_t object 
)
inline

Convert JSon to module status.

Parameters
jsjson
objectmodule status

Definition at line 717 of file JDetectorCalibration.hh.

718  {
719  if (js.contains(DOMId_t))
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>());
723  else
724  THROW(JNoValue, "Missing module identifier.");
725 
726  object.setStatus(js.at(STATUS_t).get<int>());
727  }
static const std::string DOMId_t
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:696
static const std::string Id_t
static const std::string STATUS_t
void JDETECTOR::to_json ( json js,
const JModuleCalibration_t object 
)
inline

Convert module time calibration to JSon.

Parameters
jsjson
objectmodule time calibration

Definition at line 764 of file JDetectorCalibration.hh.

765  {
766  js = json{ { Id_t, object.getID() },
767  { T0_t, object.getT0() } };
768  }
static const std::string T0_t
static const std::string Id_t
nlohmann::json json
void JDETECTOR::from_json ( const json js,
JModuleCalibration_t object 
)
inline

Convert JSon to module time calibration.

Parameters
jsjson
objectmodule time calibration

Definition at line 777 of file JDetectorCalibration.hh.

778  {
779  if (js.contains(DOMId_t))
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>());
783  else
784  THROW(JNoValue, "Missing module identifier.");
785 
786  object.setT0(js.at(T0_t).get<double>());
787  }
static const std::string DOMId_t
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:696
static const std::string T0_t
static const std::string Id_t
void JDETECTOR::to_json ( json js,
const JCompassRotation_t object 
)
inline

Convert compass rotation to JSon.

Parameters
jsjson
objectcompass rotation

Definition at line 824 of file JDetectorCalibration.hh.

825  {
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() } };
831  }
static const std::string Q0_t
static const std::string QZ_t
static const std::string Id_t
nlohmann::json json
static const std::string QY_t
static const std::string QX_t
void JDETECTOR::from_json ( const json js,
JCompassRotation_t object 
)
inline

Convert JSon to compass rotation.

Parameters
jsjson
objectcompass rotation

Definition at line 840 of file JDetectorCalibration.hh.

841  {
842  if (js.contains(DOMId_t))
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>());
846  else
847  THROW(JNoValue, "Missing module identifier.");
848 
849  object.setQuaternion(JQuaternion3D(js.at(Q0_t).get<double>(),
850  js.at(QX_t).get<double>(),
851  js.at(QY_t).get<double>(),
852  js.at(QZ_t).get<double>()));
853  }
static const std::string Q0_t
static const std::string DOMId_t
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:696
static const std::string QZ_t
static const std::string Id_t
static const std::string QY_t
static const std::string QX_t
JUTMGrid JDETECTOR::getARCAUTMGrid ( )
inline

Get UTM grid for ARCA.

Returns
UTM grid

Definition at line 252 of file JDetectorHeader.hh.

253  {
254  return JUTMGrid("UTM", "WGS84", "33N");
255  }
JUTMGrid JDETECTOR::getORCAUTMGrid ( )
inline

Get UTM grid for ORCA.

Returns
UTM grid

Definition at line 263 of file JDetectorHeader.hh.

264  {
265  return JUTMGrid("UTM", "WGS84", "32N");
266  }
JDetectorHeader JDETECTOR::getARCADetectorHeader ( )
inline

Get detector header for ARCA.

Returns
detector header

Definition at line 274 of file JDetectorHeader.hh.

275  {
276  return JDetectorHeader(JUTCTimeRange(0.0, 999999999999.9), getARCAUTMGrid(), JUTMPosition(587600, 4016800, -3450));
277  }
Data structure for detector header.
JUTMGrid getARCAUTMGrid()
Get UTM grid for ARCA.
JDetectorHeader JDETECTOR::getORCADetectorHeader ( )
inline

Get detector header for ORCA.

Returns
detector header

Definition at line 285 of file JDetectorHeader.hh.

286  {
287  return JDetectorHeader(JUTCTimeRange(0.0, 999999999999.9), getORCAUTMGrid(), JUTMPosition(256500, 4743000, -2440));
288  }
Data structure for detector header.
JUTMGrid getORCAUTMGrid()
Get UTM grid for ORCA.
bool JDETECTOR::isARCADetector ( const JDetectorHeader header)
inline

Check if given detector header is compatible with tat of ARCA.

Parameters
headerheader
Returns
true if ARCA; else false

Definition at line 297 of file JDetectorHeader.hh.

298  {
299  return header.getUTMGrid() == getARCADetectorHeader();
300  }
const JUTMGrid & getUTMGrid() const
Get UTM grid.
Definition: JUTMGrid.hh:73
JDetectorHeader getARCADetectorHeader()
Get detector header for ARCA.
bool JDETECTOR::isORCADetector ( const JDetectorHeader header)
inline

Check if given detector header is compatible with that of ORCA.

Parameters
headerheader
Returns
true if ORCA; else false

Definition at line 309 of file JDetectorHeader.hh.

310  {
311  return header.getUTMGrid() == getORCADetectorHeader();
312  }
JDetectorHeader getORCADetectorHeader()
Get detector header for ORCA.
const JUTMGrid & getUTMGrid() const
Get UTM grid.
Definition: JUTMGrid.hh:73
double JDETECTOR::getMaximalDistance ( const JDetector detector)
inline

Get maximal distance between modules in detector.

Parameters
detectordetector
Returns
maximal distance [m]

Definition at line 78 of file JDetectorToolkit.hh.

79  {
80  using namespace JPP;
81 
82  double dmax = 0.0;
83 
84  for (JDetector::const_iterator i = detector.begin(); i != detector.end(); ++i) {
85  for (JDetector::const_iterator j = detector.begin(); j != i; ++j) {
86  if (getDistance(i->getPosition(), j->getPosition()) > dmax) {
87  dmax = getDistance(i->getPosition(), j->getPosition());
88  }
89  }
90  }
91 
92  return dmax;
93  }
double getDistance(const JFirst_t &first, const JSecond_t &second)
Get distance between objects.
int j
Definition: JPolint.hh:703
double JDETECTOR::GetXrotationG4 ( const JVersor3D  dir)
inline

Get rotation over X axis in Geant4 coordinate system.

Parameters
dirdirection
Returns
X-rotation [deg]

Definition at line 102 of file JDetectorToolkit.hh.

103  {
104  using namespace JPP;
105 
106  const double phi = atan2(dir.getDY(), dir.getDZ())*(180.0/PI);
107 
108  if (phi < 0.0){
109  return phi + 360.0;
110  }
111  else{
112  return phi;
113  }
114  }
double getDY() const
Get y direction.
Definition: JVersor3D.hh:106
static const double PI
Mathematical constants.
double getDZ() const
Get z direction.
Definition: JVersor3D.hh:117
double JDETECTOR::GetYrotationG4 ( const JVersor3D  dir)
inline

Get rotation over Y axis in Geant4 coordinate system.

Parameters
dirdirection
Returns
Y-rotation [deg]

Definition at line 123 of file JDetectorToolkit.hh.

124  {
125  using namespace JPP;
126 
127  return asin(-dir.getDX())*(180.0/PI);
128  }
double getDX() const
Get x direction.
Definition: JVersor3D.hh:95
static const double PI
Mathematical constants.
void JDETECTOR::read_gdml ( std::istream &  ,
JDetector  
)
inline

Definition at line 131 of file JDetectorToolkit.hh.

132  {
133  THROW(JException, "Operation not defined.");
134  }
General exception.
Definition: JException.hh:23
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:696
void JDETECTOR::write_gdml ( std::ostream &  out,
const JDetector detector 
)
inline

Writes KM3Sim GDML input file from detector.

Parameters
outoutput stream
detectordetector

Definition at line 143 of file JDetectorToolkit.hh.

144  {
145  using namespace std;
146  using namespace JPP;
147 
148  const double DEFAULT_CAN_MARGIN_M = 350.0; // default can margin [m]
149  const double DEFAULT_WORLD_MARGIN_M = 50.0; // default world margin [m]
150 
151  const JCylinder3D cylinder(detector.begin(), detector.end());
152 
153  double can_margin;
154 
155  if (CAN_MARGIN_M) {
156  can_margin = atof(CAN_MARGIN_M);
157  } else {
158  cerr << "CAN_MARGIN_M not defined! Setting standard CAN_MARGIN_M " << DEFAULT_CAN_MARGIN_M << " m." << endl;
159  can_margin = DEFAULT_CAN_MARGIN_M; //this is given in meters like all the dimensions in the GDML file (look at the unit field of every position and solid definition)
160  }
161 
162  const double WorldCylinderHeight = 2*(cylinder.getZmax() - cylinder.getZmin() + can_margin + DEFAULT_WORLD_MARGIN_M);
163  const double WorldRadius = cylinder.getLength() + cylinder.getRadius() + can_margin + DEFAULT_WORLD_MARGIN_M;
164 
165  const double Crust_Z_size = WorldCylinderHeight/2;
166  const double Crust_Z_position = -WorldCylinderHeight/4;
167 
168  out << "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<gdml xmlns:gdml=\"http://cern.ch/2001/Schemas/GDML\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"";
169  if (!GDML_SCHEMA) {
170  cerr << "GDML_SCHEMA_DIR NOT DEFINED! Setting default path." << endl;
171  out << G4GDML_DEFAULT_SCHEMALOCATION << "\">\n\n\n";
172  } else {
173  out << GDML_SCHEMA << "gdml.xsd\">\n\n\n";
174  }
175  out << "<!-- Jpp version: "<< getGITVersion() << " -->\n";
176  out << "<define>\n";
177  out << "<rotation name=\"identity\"/>\n<position name=\"zero\"/>\n";
178 
179  int PMTs_NO = 0;
180 
181  for (JDetector::const_iterator module = detector.begin(); module != detector.end(); ++module) {
182 
183  if(module->empty()) continue;
184 
185  const JVector3D center = module->getCenter();
186 
187  out << "<position name=\"PosString" << module->getString() << "_Dom" << module->getID() << "\" unit=\"m\" x=\"" << module->getX() << "\" y=\"" << module->getY() << "\" z=\"" << module->getZ() << "\"/>\n";
188 
189  for (JModule::const_iterator pmt = module->begin(); pmt != module->end(); ++pmt) {
190 
191  const JVector3D vec = static_cast<JVector3D>(*pmt).sub(center);
192  out << "<position name=\"CathodPosition" << pmt->getID() << "_" << module->getID() << "\" unit=\"m\" x=\"" << vec.getX() << "\" y=\"" << vec.getY() << "\" z=\"" << vec.getZ() << "\"/>\n";
193  out << "<rotation name=\"CathodRotation" << pmt->getID() << "_" << module->getID() << "\" unit=\"deg\" x=\"" << GetXrotationG4(*pmt) << "\" y=\"" << GetYrotationG4(*pmt) << "\" z=\"0.000000\"/>\n";
194  out << "<constant name=\"CathodID_" << PMTs_NO << "\" value=\"" << pmt->getID() << "\"/>\n";
195  PMTs_NO++;
196  }
197 
198  }
199 
200  out << "<position name=\"OMShift\" unit=\"m\" x=\"0\" y=\"0\" z=\"0.0392\"/>\n";
201  out << "\n\n\n";
202  out << "<!-- end of DU position definitions -->\n<position name=\"CrustPosition\" unit=\"m\" x=\"0\" y=\"0\" z=\"" << Crust_Z_position << "\"/>\n";
203 
204  out << "</define>\n";
205  out << "<materials>\n";
206  out << "</materials>\n";
207  out << "<solids>\n";
208  out << " <box name=\"CrustBox\" lunit=\"m\" x=\"2200\" y=\"2200\" z=\"" << Crust_Z_size << "\"/>\n";
209  out << " <box name=\"StoreyBox\" lunit=\"m\" x=\"0.6\" y=\"0.6\" z=\"0.6\"/>\n";
210  out << " <sphere name=\"OMSphere\" lunit=\"cm\" aunit=\"deg\" rmin=\"0.0\" rmax=\"21.6\" startphi=\"0.0\" deltaphi=\"360.0\" starttheta=\"0.0\" deltatheta=\"180.0\"/>\n";
211  out << " <tube name=\"CathodTube\" lunit=\"cm\" aunit=\"deg\" rmin=\"0.0\" rmax=\"4.7462\" z=\"0.5\" startphi=\"0.0\" deltaphi=\"360.0\"/>\n";
212  out << " <tube name=\"WorldTube\" lunit=\"m\" aunit=\"deg\" rmin=\"0.0\" rmax=\"" << WorldRadius << "\" z=\"" << WorldCylinderHeight << "\" startphi=\"0.0\" deltaphi=\"360.0\"/>\n";
213  out << "</solids>\n\n\n";
214 
215  out << "<structure>\n";
216  out << " <volume name=\"CathodVolume\">\n";
217  out << " <materialref ref=\"Cathod\"/>\n";
218  out << " <solidref ref=\"CathodTube\"/>\n";
219  out << " </volume>\n";
220 
221  out << "<!-- OMVolume(s) construction -->\n";
222 
223  for (JDetector::const_iterator module = detector.begin(); module != detector.end(); ++module) {
224 
225  if(module->empty()) continue;
226  out << " <volume name=\"OMVolume" << module->getID() << "\">\n";
227  out << " <materialref ref=\"Water\"/>\n";
228  out << " <solidref ref=\"OMSphere\"/>\n";
229 
230  for (JModule::const_iterator pmt = module->begin(); pmt != module->end(); ++pmt) {
231  out << " <physvol>\n";
232  out << " <volumeref ref=\"CathodVolume\"/>\n";
233  out << " <positionref ref=\"CathodPosition" << pmt->getID() << "_" << module->getID() << "\"/>\n";
234  out << " <rotationref ref=\"CathodRotation" << pmt->getID() << "_" << module->getID() << "\"/>\n";
235  out << " </physvol>\n";
236  }
237 
238  out << " </volume>\n";
239  }
240 
241  out << "<!-- StoreyVolume(s) construction -->\n";
242 
243  for (JDetector::const_iterator module = detector.begin(); module != detector.end(); ++module) {
244  if(module->empty()) continue;
245  out << " <volume name=\"StoreyVolume" << module->getID() << "\">\n";
246  out << " <materialref ref=\"Water\"/>\n";
247  out << " <solidref ref=\"StoreyBox\"/>\n";
248  out << " <physvol>\n";
249  out << " <volumeref ref=\"OMVolume" << module->getID() << "\"/>\n";
250  out << " <positionref ref=\"OMShift\"/>\n";
251  out << " <rotationref ref=\"identity\"/>\n";
252  out << " </physvol>\n";
253  out << " </volume>\n";
254  }
255 
256  out << "<!-- Crust Volume construction-->\n";
257  out << "<volume name=\"CrustVolume\">\n";
258  out << " <materialref ref=\"Crust\"/>\n";
259  out << " <solidref ref=\"CrustBox\"/>\n";
260  out << "</volume>\n";
261 
262  out << "<!-- World Volume construction-->\n";
263  out << "<volume name=\"WorldVolume\">\n";
264  out << " <materialref ref=\"Water\"/>\n";
265  out << " <solidref ref=\"WorldTube\"/>\n";
266 
267  out << " <physvol>\n";
268  out << " <volumeref ref=\"CrustVolume\"/>\n";
269  out << " <positionref ref=\"CrustPosition\"/>\n";
270  out << " <rotationref ref=\"identity\"/>\n";
271  out << " </physvol>\n";
272 
273  for (JDetector::const_iterator module = detector.begin(); module != detector.end(); ++module) {
274  if(module->empty()) continue;
275  out << " <physvol>\n";
276  out << " <volumeref ref=\"StoreyVolume" << module->getID() << "\"/>\n";
277  out << " <positionref ref=\"PosString" << module->getString() << "_Dom" << module->getID() << "\"/>\n";
278  out << " <rotationref ref=\"identity\"/>\n";
279  out << " </physvol>\n";
280  }
281 
282  out << "</volume>\n";
283 
284  out << "</structure>\n";
285  out << "<setup name=\"Default\" version=\"1.0\">\n";
286  out << "<world ref=\"WorldVolume\"/>\n";
287  out << "</setup>\n";
288  out << "</gdml>\n";
289  }
double GetYrotationG4(const JVersor3D dir)
Get rotation over Y axis in Geant4 coordinate system.
static const char *const GDML_SCHEMA
directory necessary for correct GDML header output
static const char *const CAN_MARGIN_M
extension of the detector size to comply with the can definition
JVector3D & sub(const JVector3D &vector)
Subtract vector.
Definition: JVector3D.hh:158
Cylinder object.
Definition: JCylinder3D.hh:39
std::string getGITVersion(const std::string &tag)
Get GIT version for given GIT tag.
Data structure for vector in three dimensions.
Definition: JVector3D.hh:34
double getY() const
Get y position.
Definition: JVector3D.hh:104
double getX() const
Get x position.
Definition: JVector3D.hh:94
static const char *const G4GDML_DEFAULT_SCHEMALOCATION
double GetXrotationG4(const JVersor3D dir)
Get rotation over X axis in Geant4 coordinate system.
double getZ() const
Get z position.
Definition: JVector3D.hh:115
double JDETECTOR::getMaximalTime ( const JDetector detector)
inline

Get maximal time between modules in detector following causality.

Parameters
detectordetector
Returns
maximal time [ns]

Definition at line 298 of file JDetectorToolkit.hh.

299  {
300  using namespace JPP;
301 
303  }
double getIndexOfRefraction()
Get average index of refraction of water corresponding to group velocity.
double getMaximalDistance(const JDetector &detector)
Get maximal distance between modules in detector.
const double getInverseSpeedOfLight()
Get inverse speed of light.
double JDETECTOR::getMaximalTime ( const JDetector detector,
const double  roadWidth_m 
)
inline

Get maximal time between modules in detector following causality.

The road width corresponds to the maximal distance traveled by the light.

Parameters
detectordetector
roadWidth_mroad width [m]
Returns
maximal time [ns]

Definition at line 314 of file JDetectorToolkit.hh.

315  {
316  using namespace JPP;
317 
318  const double Dmax_m = getMaximalDistance(detector);
319 
320  return (sqrt((Dmax_m + roadWidth_m*getSinThetaC()) *
321  (Dmax_m - roadWidth_m*getSinThetaC())) +
322  roadWidth_m * getSinThetaC() * getTanThetaC()) * getInverseSpeedOfLight();
323  }
double getMaximalDistance(const JDetector &detector)
Get maximal distance between modules in detector.
const double getInverseSpeedOfLight()
Get inverse speed of light.
double getTanThetaC()
Get average tangent of Cherenkov angle of water corresponding to group velocity.
double getSinThetaC()
Get average sine of Cherenkov angle of water corresponding to group velocity.
JTimeRange JDETECTOR::getTimeRange ( const JTimeRange timeRange,
const JModule module 
)
inline

Get de-calibrated time range.

The de-calibrated time range is corrected for minimal and maximal time offset of PMTs in given module.

Parameters
timeRangetime range [ns]
modulemodule
Returns
time range [ns]

Definition at line 335 of file JDetectorToolkit.hh.

336  {
337  if (!module.empty()) {
338 
339  JTimeRange time_range(JTimeRange::DEFAULT_RANGE);
340 
341  for (JModule::const_iterator pmt = module.begin(); pmt != module.end(); ++pmt) {
342 
343  const JCalibration& calibration = pmt->getCalibration();
344 
345  time_range.include(putTime(timeRange.getLowerLimit(), calibration));
346  time_range.include(putTime(timeRange.getUpperLimit(), calibration));
347  }
348 
349  return time_range;
350 
351  } else {
352 
353  return timeRange;
354  }
355  }
T getLowerLimit() const
Get lower limit.
Definition: JRange.hh:202
const JCalibration & getCalibration() const
Get calibration.
Data structure for time calibration.
double putTime(const T &t1, const JCalibration &cal)
Get de-calibrated time.
T getUpperLimit() const
Get upper limit.
Definition: JRange.hh:213
int JDETECTOR::getNumberOfPMTs ( const JModule module)
inline

Get number of PMTs.

Parameters
modulemodule
Returns
number of PMTs

Definition at line 364 of file JDetectorToolkit.hh.

365  {
366  return module.size();
367  }
int JDETECTOR::getNumberOfPMTs ( const JDetector detector)
inline

Get number of PMTs.

Parameters
detectordetector
Returns
number of PMTs

Definition at line 376 of file JDetectorToolkit.hh.

377  {
378  int number_of_pmts = 0;
379 
380  for (JDetector::const_iterator module = detector.begin(); module != detector.end(); ++module) {
381  number_of_pmts += getNumberOfPMTs(*module);
382  }
383 
384  return number_of_pmts;
385  }
int getNumberOfPMTs(const JModule &module)
Get number of PMTs.
std::set<int> JDETECTOR::getStringIDs ( const JDetector detector)
inline

Get list of strings identifiers.

Parameters
detectordetector
Returns
list of string identifiers

Definition at line 394 of file JDetectorToolkit.hh.

395  {
396  std::set<int> buffer;
397 
398  for (JDetector::const_iterator module = detector.begin(); module != detector.end(); ++module) {
399  buffer.insert(module->getString());
400  }
401 
402  return buffer;
403  }
int JDETECTOR::getNumberOfFloors ( const JDetector detector)
inline

Get number of floors.

Parameters
detectordetector
Returns
number of floors

Definition at line 412 of file JDetectorToolkit.hh.

413  {
414  std::set<int> buffer;
415 
416  for (JDetector::const_iterator module = detector.begin(); module != detector.end(); ++module) {
417  buffer.insert(module->getFloor());
418  }
419 
420  return buffer.size();
421  }
floor_range JDETECTOR::getRangeOfFloors ( const JDetector detector)
inline

Get range of floors.

Parameters
detectordetector
Returns
range of floors

Definition at line 436 of file JDetectorToolkit.hh.

437  {
438  floor_range buffer = floor_range::DEFAULT_RANGE;
439 
440  for (JDetector::const_iterator module = detector.begin(); module != detector.end(); ++module) {
441  buffer.include(module->getFloor());
442  }
443 
444  return buffer;
445  }
range_type & include(argument_type x)
Include given value to range.
Definition: JRange.hh:397
int JDETECTOR::getNumberOfModules ( const JDetector detector)
inline

Get number of modules.

Parameters
detectordetector
Returns
number of modules

Definition at line 454 of file JDetectorToolkit.hh.

455  {
456  std::set<int> buffer;
457 
458  for (JDetector::const_iterator module = detector.begin(); module != detector.end(); ++module) {
459  buffer.insert(module->getID());
460  }
461 
462  return buffer.size();
463  }
void JDETECTOR::load ( const std::string &  file_name,
JDetector detector 
)
inline

Load detector from input file.

Supported file formats:

Parameters
file_namefile name
detectordetector

Definition at line 478 of file JDetectorToolkit.hh.

479  {
480  using namespace std;
481  using namespace JPP;
482 
484 
485  JMonteCarloDetector buffer(true);
486 
487  ifstream in(file_name.c_str());
488 
489  if (!in) {
490  THROW(JFileOpenException, "File not opened: " << file_name);
491  }
492 
493  in >> buffer;
494 
495  in.close();
496 
497  detector.swap(buffer);
498 
499  } else if (getFilenameExtension(file_name) == BINARY_DETECTOR_FILE_FORMAT[0] ||
501 
502  JFileStreamReader in(file_name.c_str());
503 
504  if (!in) {
505  THROW(JFileOpenException, "File not opened: " << file_name);
506  }
507 
508  try {
509 
510  detector.read(in);
511 
512  } catch(const exception& error) {
513 
514  // recovery procedure for old format of comments
515 
516  JDetector::setStartOfComment(JDetector::OLD_START_OF_COMMENT);
517 
518  in.clear();
519  in.rewind();
520 
521  detector.read(in);
522 
523  JDetector::setStartOfComment(JDetector::NEW_START_OF_COMMENT);
524  }
525 
526  in.close();
527 
528  } else if (getFilenameExtension(file_name) == KM3NET_DETECTOR_FILE_FORMAT) {
529 
530  ifstream in(file_name.c_str());
531 
532  if (!in) {
533  THROW(JFileOpenException, "File not opened: " << file_name);
534  }
535 
536  in >> detector;
537 
538  in.close();
539 
540  } else if (getFilenameExtension(file_name) == ZIPPED_DETECTOR_FILE_FORMAT) {
541 
542  igzstream in(file_name.c_str());
543 
544  if (!in) {
545  THROW(JFileOpenException, "File not opened: " << file_name);
546  }
547 
548  in >> detector;
549 
550  in.close();
551 
552  } else {
553 
554  THROW(JProtocolException, "Protocol not defined: " << file_name);
555  }
556  }
Exception for opening of file.
Definition: JException.hh:342
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:696
static const char *const BINARY_DETECTOR_FILE_FORMAT[]
JIO binary file format.
Monte Carlo detector (i.e. so-called .det file).
virtual JReader & read(JReader &in) override
Read from input.
Definition: JDetector.hh:455
Protocol exception.
Definition: JException.hh:648
static const char *const KM3NET_DETECTOR_FILE_FORMAT
KM3NeT standard ASCII format
static const char *const ZIPPED_DETECTOR_FILE_FORMAT
zipped KM3NeT standard ASCII format
static const char *const GENDET_DETECTOR_FILE_FORMAT
File name extensions.
std::string getFilenameExtension(const std::string &file_name)
Get file name extension, i.e. part after last JEEP::FILENAME_SEPARATOR if any.
Definition: JeepToolkit.hh:109
do set_variable DETECTOR_TXT $WORKDIR detector
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
Definition: JCanberra.sh:46
Binary buffered file input.
void JDETECTOR::store ( const std::string &  file_name,
const JDetector detector 
)
inline

Store detector to output file.

Supported file formats:

Parameters
file_namefile name
detectordetector

Definition at line 571 of file JDetectorToolkit.hh.

572  {
573  using namespace std;
574  using namespace JPP;
575 
576  if (getFilenameExtension(file_name) == BINARY_DETECTOR_FILE_FORMAT[1]) {
577 
578  JFileStreamWriter out(file_name.c_str());
579 
580  detector.write(out);
581 
582  out.close();
583 
584  } else if (getFilenameExtension(file_name) == KM3NET_DETECTOR_FILE_FORMAT) {
585 
586  std::ofstream out(file_name.c_str());
587 
588  out << detector;
589 
590  out.close();
591 
592  } else if (getFilenameExtension(file_name) == ZIPPED_DETECTOR_FILE_FORMAT) {
593 
594  ogzstream out(file_name.c_str());
595 
596  out << detector;
597 
598  out.close();
599 
600  } else if (getFilenameExtension(file_name) == GDML_DETECTOR_FILE_FORMAT) {
601 
602  std::ofstream out(file_name.c_str());
603 
604  write_gdml(out, detector);
605 
606  out.close();
607 
608  } else {
609 
610  THROW(JProtocolException, "Protocol not defined: " << file_name);
611  }
612  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:696
static const char *const BINARY_DETECTOR_FILE_FORMAT[]
JIO binary file format.
virtual JWriter & write(JWriter &out) const override
Write to output.
Definition: JDetector.hh:507
Protocol exception.
Definition: JException.hh:648
static const char *const KM3NET_DETECTOR_FILE_FORMAT
KM3NeT standard ASCII format
static const char *const ZIPPED_DETECTOR_FILE_FORMAT
zipped KM3NeT standard ASCII format
std::string getFilenameExtension(const std::string &file_name)
Get file name extension, i.e. part after last JEEP::FILENAME_SEPARATOR if any.
Definition: JeepToolkit.hh:109
do set_variable DETECTOR_TXT $WORKDIR detector
Binary buffered file output.
static const char *const GDML_DETECTOR_FILE_FORMAT
KM3Sim input format.
void write_gdml(std::ostream &out, const JDetector &detector)
Writes KM3Sim GDML input file from detector.
const JModule& JDETECTOR::getModule ( const JModuleAddressMap memo,
const int  id = -1,
const JLocation location = JLocation() 
)
inline

Get module according module address map.

Parameters
memomodule address map
idmodule identifier
locationmodule location
Returns
module

Definition at line 623 of file JDetectorToolkit.hh.

626  {
627  static JModule module;
628 
629 
630  module.setID(id);
631 
632  module.setLocation(location);
633 
634  module.resize(memo.size());
635 
636  if (memo.has( 0)) { module[memo[ 0].tdc] = JPMT( 1, JAxis3D(JVector3D(+0.000, +0.000, -0.200), JVersor3D(+0.000, +0.000, -1.000))); }
637 
638  if (memo.has( 1)) { module[memo[ 1].tdc] = JPMT( 2, JAxis3D(JVector3D(+0.000, +0.105, -0.170), JVersor3D(+0.000, +0.527, -0.850))); }
639  if (memo.has( 2)) { module[memo[ 2].tdc] = JPMT( 3, JAxis3D(JVector3D(+0.091, +0.053, -0.170), JVersor3D(+0.456, +0.263, -0.850))); }
640  if (memo.has( 3)) { module[memo[ 3].tdc] = JPMT( 4, JAxis3D(JVector3D(+0.091, -0.053, -0.170), JVersor3D(+0.456, -0.263, -0.850))); }
641  if (memo.has( 4)) { module[memo[ 4].tdc] = JPMT( 5, JAxis3D(JVector3D(+0.000, -0.105, -0.170), JVersor3D(+0.000, -0.527, -0.850))); }
642  if (memo.has( 5)) { module[memo[ 5].tdc] = JPMT( 6, JAxis3D(JVector3D(-0.091, -0.053, -0.170), JVersor3D(-0.456, -0.263, -0.850))); }
643  if (memo.has( 6)) { module[memo[ 6].tdc] = JPMT( 7, JAxis3D(JVector3D(-0.091, +0.053, -0.170), JVersor3D(-0.456, +0.263, -0.850))); }
644 
645  if (memo.has( 7)) { module[memo[ 7].tdc] = JPMT( 8, JAxis3D(JVector3D(+0.083, +0.144, -0.111), JVersor3D(+0.416, +0.720, -0.555))); }
646  if (memo.has( 8)) { module[memo[ 8].tdc] = JPMT( 9, JAxis3D(JVector3D(+0.166, +0.000, -0.111), JVersor3D(+0.832, +0.000, -0.555))); }
647  if (memo.has( 9)) { module[memo[ 9].tdc] = JPMT(10, JAxis3D(JVector3D(+0.083, -0.144, -0.111), JVersor3D(+0.416, -0.720, -0.555))); }
648  if (memo.has(10)) { module[memo[10].tdc] = JPMT(11, JAxis3D(JVector3D(-0.083, -0.144, -0.111), JVersor3D(-0.416, -0.720, -0.555))); }
649  if (memo.has(11)) { module[memo[11].tdc] = JPMT(12, JAxis3D(JVector3D(-0.166, +0.000, -0.111), JVersor3D(-0.832, +0.000, -0.555))); }
650  if (memo.has(12)) { module[memo[12].tdc] = JPMT(13, JAxis3D(JVector3D(-0.083, +0.144, -0.111), JVersor3D(-0.416, +0.720, -0.555))); }
651 
652  if (memo.has(13)) { module[memo[13].tdc] = JPMT(14, JAxis3D(JVector3D(+0.000, +0.191, -0.059), JVersor3D(+0.000, +0.955, -0.295))); }
653  if (memo.has(14)) { module[memo[14].tdc] = JPMT(15, JAxis3D(JVector3D(+0.165, +0.096, -0.059), JVersor3D(+0.827, +0.478, -0.295))); }
654  if (memo.has(15)) { module[memo[15].tdc] = JPMT(16, JAxis3D(JVector3D(+0.165, -0.096, -0.059), JVersor3D(+0.827, -0.478, -0.295))); }
655  if (memo.has(16)) { module[memo[16].tdc] = JPMT(17, JAxis3D(JVector3D(+0.000, -0.191, -0.059), JVersor3D(+0.000, -0.955, -0.295))); }
656  if (memo.has(17)) { module[memo[17].tdc] = JPMT(18, JAxis3D(JVector3D(-0.165, -0.096, -0.059), JVersor3D(-0.827, -0.478, -0.295))); }
657  if (memo.has(18)) { module[memo[18].tdc] = JPMT(19, JAxis3D(JVector3D(-0.165, +0.096, -0.059), JVersor3D(-0.827, +0.478, -0.295))); }
658 
659  if (memo.has(19)) { module[memo[19].tdc] = JPMT(20, JAxis3D(JVector3D(+0.096, +0.165, +0.059), JVersor3D(+0.478, +0.827, +0.295))); }
660  if (memo.has(20)) { module[memo[20].tdc] = JPMT(21, JAxis3D(JVector3D(+0.191, +0.000, +0.059), JVersor3D(+0.955, +0.000, +0.295))); }
661  if (memo.has(21)) { module[memo[21].tdc] = JPMT(22, JAxis3D(JVector3D(+0.096, -0.165, +0.059), JVersor3D(+0.478, -0.827, +0.295))); }
662  if (memo.has(22)) { module[memo[22].tdc] = JPMT(23, JAxis3D(JVector3D(-0.096, -0.165, +0.059), JVersor3D(-0.478, -0.827, +0.295))); }
663  if (memo.has(23)) { module[memo[23].tdc] = JPMT(24, JAxis3D(JVector3D(-0.191, +0.000, +0.059), JVersor3D(-0.955, +0.000, +0.295))); }
664  if (memo.has(24)) { module[memo[24].tdc] = JPMT(25, JAxis3D(JVector3D(-0.096, +0.165, +0.059), JVersor3D(-0.478, +0.827, +0.295))); }
665 
666  if (memo.has(25)) { module[memo[25].tdc] = JPMT(26, JAxis3D(JVector3D(+0.000, +0.166, +0.111), JVersor3D(+0.000, +0.832, +0.555))); }
667  if (memo.has(26)) { module[memo[26].tdc] = JPMT(27, JAxis3D(JVector3D(+0.144, +0.083, +0.111), JVersor3D(+0.720, +0.416, +0.555))); }
668  if (memo.has(27)) { module[memo[27].tdc] = JPMT(28, JAxis3D(JVector3D(+0.144, -0.083, +0.111), JVersor3D(+0.720, -0.416, +0.555))); }
669  if (memo.has(28)) { module[memo[28].tdc] = JPMT(29, JAxis3D(JVector3D(+0.000, -0.166, +0.111), JVersor3D(+0.000, -0.832, +0.555))); }
670  if (memo.has(29)) { module[memo[29].tdc] = JPMT(30, JAxis3D(JVector3D(-0.144, -0.083, +0.111), JVersor3D(-0.720, -0.416, +0.555))); }
671  if (memo.has(30)) { module[memo[30].tdc] = JPMT(31, JAxis3D(JVector3D(-0.144, +0.083, +0.111), JVersor3D(-0.720, +0.416, +0.555))); }
672 
673  module.compile();
674 
675  return module;
676  }
Data structure for a composite optical module.
Definition: JModule.hh:68
void setLocation(const JLocation &location)
Set location.
Definition: JLocation.hh:91
Axis object.
Definition: JAxis3D.hh:38
Data structure for vector in three dimensions.
Definition: JVector3D.hh:34
Data structure for PMT geometry, calibration and status.
Definition: JPMT.hh:43
void compile()
Compile module data.
Definition: JModule.hh:282
void setID(const int id)
Set identifier.
Definition: JObjectID.hh:72
Data structure for normalised vector in three dimensions.
Definition: JVersor3D.hh:26
bool has(const int index) const
Test whether index is available.
template<class JDetector_t >
const JModule& JDETECTOR::getModule ( const JType< JDetector_t >  type,
const int  id,
const JLocation location = JLocation() 
)
inline

Get module according given detector type.

Parameters
typedetector type
idmodule identifier
locationmodule location
Returns
module

Definition at line 688 of file JDetectorToolkit.hh.

691  {
692  return getModule(getModuleAddressMap<JDetector_t>(id), id, location);
693  }
const JModule & getModule(const JDetector &detector, const JModuleLocation &location)
find module with a given string and floor number
const JModule& JDETECTOR::getModule ( const JType< JAntares_t type,
const int  id,
const JLocation location = JLocation() 
)
inline

Get module according Antares detector type.

Parameters
typeAntares detector type
idmodule identifier
locationmodule location
Returns
module

Definition at line 704 of file JDetectorToolkit.hh.

707  {
708  static JModule module;
709 
710  module.setID(id);
711 
712  module.setLocation(location);
713 
714  if (module.empty()) {
715 
716  module.resize(3);
717 
718  const double R = 0.5; // [m]
719 
720  const double st = sin(0.75*PI);
721  const double ct = cos(0.75*PI);
722 
723  for (int i = 0; i != 3; ++i) {
724 
725  const double phi = (2.0*PI*i) / 3.0;
726  const double cp = cos(phi);
727  const double sp = sin(phi);
728 
729  module[i] = JPMT(i, JAxis3D(JVector3D(R*st*cp, R*st*sp, R*ct), JVersor3D(st*cp, st*sp, ct)));
730  }
731  }
732 
733  return module;
734  }
Data structure for a composite optical module.
Definition: JModule.hh:68
void setLocation(const JLocation &location)
Set location.
Definition: JLocation.hh:91
Axis object.
Definition: JAxis3D.hh:38
Data structure for vector in three dimensions.
Definition: JVector3D.hh:34
Data structure for PMT geometry, calibration and status.
Definition: JPMT.hh:43
static const double PI
Mathematical constants.
then usage $script[distance] fi case set_variable R
Definition: JDrawLED.sh:43
void setID(const int id)
Set identifier.
Definition: JObjectID.hh:72
then cp
Data structure for normalised vector in three dimensions.
Definition: JVersor3D.hh:26
template<class JDetector_t >
const JModule& JDETECTOR::getModule ( const int  id,
const JLocation location = JLocation() 
)
inline

Get module according detector template.

Parameters
idmodule identifier
locationmodule location
Returns
module

Definition at line 745 of file JDetectorToolkit.hh.

747  {
748  return getModule(JType<JDetector_t>(), id, location);
749  }
Auxiliary class for a type holder.
Definition: JType.hh:19
const JModule & getModule(const JDetector &detector, const JModuleLocation &location)
find module with a given string and floor number
JPosition3D JDETECTOR::getPosition ( const JModule first,
const JModule second 
)
inline

Get position to go from first to second module.

Parameters
firstfirst module
secondsecond module
Returns
position

Definition at line 886 of file JDetectorToolkit.hh.

887  {
888  return second.getPosition() - first.getPosition();
889  }
const JPosition3D & getPosition() const
Get position.
Definition: JPosition3D.hh:130
JCalibration JDETECTOR::getCalibration ( const JCalibration first,
const JCalibration second 
)
inline

Get calibration to go from first to second calibration.

Parameters
firstfirst calibration
secondsecond calibration
Returns
calibration

Definition at line 899 of file JDetectorToolkit.hh.

900  {
901  return JCalibration(second.getT0() - first.getT0());
902  }
Data structure for time calibration.
double getT0() const
Get time offset.
std::vector<std::string> JDETECTOR::getDetectorVersions ( const JType< std::string > &  type)
inline

Get detector versions.

Note that the order of the versions is descending.

Parameters
typetype
Returns
versions

Definition at line 317 of file JDetectorVersion.hh.

318  {
319  return JLANG::make_array(putDetectorVersion.rbegin(), putDetectorVersion.rend(), &JPutDetectorVersion::value_type::second);
320  }
const array_type< JValue_t > & make_array(const JValue_t(&array)[N])
Method to create array of values.
Definition: JVectorize.hh:54
static const JPutDetectorVersion putDetectorVersion(getDetectorVersion)
Function object to map numerical value to detector version.
std::vector<JDetectorVersion::JVersion_t> JDETECTOR::getDetectorVersions ( const JType< JDetectorVersion::JVersion_t > &  type)
inline

Get detector versions.

Note that the order of the versions is descending.

Parameters
typetype
Returns
numerical values

Definition at line 331 of file JDetectorVersion.hh.

332  {
334  }
then echo The file $DIR KM3NeT_00000001_00000000 root already please rename or remove it first
const array_type< JValue_t > & make_array(const JValue_t(&array)[N])
Method to create array of values.
Definition: JVectorize.hh:54
static const JPutDetectorVersion putDetectorVersion(getDetectorVersion)
Function object to map numerical value to detector version.
template<class T >
std::vector<T> JDETECTOR::getDetectorVersions ( )
inline

Get detector versions.

Returns
versions

Definition at line 343 of file JDetectorVersion.hh.

344  {
345  return getDetectorVersions(JType<T>());
346  }
std::vector< std::string > getDetectorVersions(const JType< std::string > &type)
Get detector versions.
std::string JDETECTOR::getLatestDetectorVersion ( const JType< std::string > &  type)
inline

Get latest detector version.

Parameters
typetype
Returns
version

Definition at line 355 of file JDetectorVersion.hh.

356  {
357  return putDetectorVersion.rbegin()->second;
358  }
static const JPutDetectorVersion putDetectorVersion(getDetectorVersion)
Function object to map numerical value to detector version.
JVersion JDETECTOR::getLatestDetectorVersion ( const JType< JVersion > &  type)
inline

Get latest detector version.

Parameters
typetype
Returns
version

Definition at line 367 of file JDetectorVersion.hh.

368  {
369  return putDetectorVersion.rbegin()->second;
370  }
static const JPutDetectorVersion putDetectorVersion(getDetectorVersion)
Function object to map numerical value to detector version.
JDetectorVersion::JVersion_t JDETECTOR::getLatestDetectorVersion ( const JType< JDetectorVersion::JVersion_t > &  type)
inline

Get latest detector version.

Parameters
typetype
Returns
version

Definition at line 379 of file JDetectorVersion.hh.

380  {
381  return putDetectorVersion.rbegin()->first;
382  }
static const JPutDetectorVersion putDetectorVersion(getDetectorVersion)
Function object to map numerical value to detector version.
template<class T >
T JDETECTOR::getLatestDetectorVersion ( )
inline

Get latest detector version.

Returns
version

Definition at line 391 of file JDetectorVersion.hh.

392  {
393  return getLatestDetectorVersion(JType<T>());
394  }
std::string getLatestDetectorVersion(const JType< std::string > &type)
Get latest detector version.
std::string JDETECTOR::getLabel ( const JLocation location)
inline

Get module label for monitoring and other applications.


The format is "(XXXX,YY)", where XXXX is the string number and YY the floor.

Parameters
locationmodule location
Returns
label

Definition at line 246 of file JLocation.hh.

247  {
248  using namespace std;
249  using namespace JPP;
250 
251  return MAKE_STRING("(" << FILL(4,'0') << location.getString() << "." << FILL(2,'0') << location.getFloor() << ")");
252  }
int getFloor() const
Get floor number.
Definition: JLocation.hh:145
#define MAKE_STRING(A)
Make string.
Definition: JPrint.hh:127
Auxiliary data structure for sequence of same character.
Definition: JManip.hh:328
int getString() const
Get string number.
Definition: JLocation.hh:134
template<class JAttributes_t >
void JDETECTOR::setAttributes ( const JModule first,
const JModule second,
JAttributes_t &  attributes 
)

Template method to set module attributes.

This method should be overloaded for each type of module attributes.

Parameters
firstfirst module
secondsecond module
attributesmodule attributes
template<>
void JDETECTOR::setAttributes< JNullType > ( const JModule first,
const JModule second,
JNullType &  attributes 
)

Template specialisation to set no attributes for the default empty object.

Parameters
firstfirst module
secondsecond module
attributesmodule attributes

Definition at line 49 of file JModuleMapper.hh.

52  {}
std::vector<std::string> JDETECTOR::getModuleStatusBits ( const JType< std::string > &  type)
inline

Get module status bits.

Parameters
typetype
Returns
status bits

Definition at line 79 of file JModuleStatus.hh.

80  {
82  }
static const JGetModuleStatusBit getModuleStatusBit
Function object to map key to module status bit.
const array_type< JKey_t > & get_keys(const std::map< JKey_t, JValue_t, JComparator_t, JAllocator_t > &data)
Method to create array of keys of map.
Definition: JVectorize.hh:139
std::vector<int> JDETECTOR::getModuleStatusBits ( const JType< int > &  type)
inline

Get module status bits.

Parameters
typetype
Returns
status bits

Definition at line 91 of file JModuleStatus.hh.

92  {
94  }
static const JPutModuleStatusBit putModuleStatusBit(getModuleStatusBit)
Function object to map module status bit to key.
const array_type< JKey_t > & get_keys(const std::map< JKey_t, JValue_t, JComparator_t, JAllocator_t > &data)
Method to create array of keys of map.
Definition: JVectorize.hh:139
template<class T >
std::vector<T> JDETECTOR::getModuleStatusBits ( )
inline

Get module status bits.

Returns
status bits

Definition at line 103 of file JModuleStatus.hh.

104  {
105  return getModuleStatusBits(JType<T>());
106  }
std::vector< std::string > getModuleStatusBits(const JType< std::string > &type)
Get module status bits.
JPosition3D JDETECTOR::getPiezoPosition ( )
inline

Get relative position of piezo in optical module.

Returns
position [m]

Definition at line 30 of file JModuleSupportkit.hh.

31  {
32  return JPosition3D(0.0, 0.0, -0.20);
33  }
double JDETECTOR::getTimeOverThresholdProbability ( const JPMTAnalogueSignalProcessor &  pmt,
const double  tot_ns,
const double  NPE,
const double  precision = 1.0e-4 
)
inline

Get time-over-threshold probability.

Parameters
pmtPMT signal processor
tot_nstime-over-threshold [ns]
NPEexpected number of photo-electrons
precisionprecision
Returns
probability

Definition at line 880 of file JPMTAnalogueSignalProcessor.hh.

884  {
885  int i = (int) (NPE - 5.0 * sqrt(NPE) - 0.5);
886  int M = (int) (NPE + 5.0 * sqrt(NPE) + 0.5);
887 
888  if (i < 1) { i = 1; }
889  if (M < i) { M = i; }
890 
891  double p = NPE * exp(-NPE) / (double) 1;
892 
893  for (int __i = 1; __i != i; ++__i) {
894  p *= NPE / __i;
895  }
896 
897  double P = 0.0;
898 
899  for (double p0 = 0.0; (p >= p0 || p > precision) && i != M; ++i, p0 = p, p *= NPE / (double) i) {
900  P += pmt.getTimeOverThresholdProbability(tot_ns, i) * p;
901  }
902 
903  return P;
904  }
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable STRING $argv[2] set_array QUANTILES set_variable FORMULA *[0] exp(-0.5 *(x-[1])*(x-[1])/([2]*[2]))" set_variable MODULE `getModule -a $DETECTOR -L "$STRING 0"` source JAcousticsToolkit.sh typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
then $DIR JPlotNPE PDG P
Definition: JPlotNPE-PDG.sh:62
bool JDETECTOR::operator< ( const JPMTIdentifier first,
const JPMTIdentifier second 
)
inline

Less than operator for PMT identifiers.

Parameters
firstPMT identifier
secondPMT identifier
Returns
true if first PMT lower than second PMT; else false

Definition at line 187 of file JPMTIdentifier.hh.

188  {
189  if (first.getModuleID() == second.getModuleID())
190  return first.getPMTAddress() < second.getPMTAddress();
191  else
192  return first.getModuleID() < second.getModuleID();
193  }
int getModuleID() const
Get module identifier.
int getPMTAddress() const
Get PMT address (= TDC).
bool JDETECTOR::operator== ( const JPMTIdentifier first,
const JPMTIdentifier second 
)
inline

Equal operator for PMT identifiers.

Parameters
firstPMT identifier
secondPMT identifier
Returns
true if first PMT equal second PMT; else false

Definition at line 203 of file JPMTIdentifier.hh.

204  {
205  return (first.getModuleID() == second.getModuleID() &&
206  first.getPMTAddress() == second.getPMTAddress());
207  }
int getModuleID() const
Get module identifier.
int getPMTAddress() const
Get PMT address (= TDC).
std::string JDETECTOR::getLabel ( const JPMTIdentifier id)
inline

Get PMT label for monitoring and other applications.


The format is "(XXXXXXXXXX,YY)", where XXXXXXXXXX is the module idetifier and YY the PMT readout channel.

Parameters
idPMT identifier
Returns
label

Definition at line 217 of file JPMTIdentifier.hh.

218  {
219  using namespace std;
220  using namespace JPP;
221 
222  return MAKE_STRING("(" << FILL(10,'0') << id.getID() << "," << FILL(2,'0') << id.getPMTAddress() << ")");
223  }
#define MAKE_STRING(A)
Make string.
Definition: JPrint.hh:127
Auxiliary data structure for sequence of same character.
Definition: JManip.hh:328
double JDETECTOR::getSurvivalProbability ( const JPMTParameters parameters)
inline

Get model dependent probability that a one photo-electron hit survives the simulation of the PMT assuming QE = 1.

Parameters
parametersPMT parameters
Returns
probability

Definition at line 32 of file JPMTParametersToolkit.hh.

33  {
35  const int NPE = 1;
36 
37  data.QE = 1.0;
38 
40  }
*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
Definition: diff-Tuna.sh:38
Data structure for PMT parameters.
double QE
relative quantum efficiency
virtual double getSurvivalProbability(const int NPE) const override
Probability that a hit survives the simulation of the PMT.
double JDETECTOR::getHitProbability ( const double  QE,
const double  mu 
)
inline

Get ratio of hit probabilities for given QE and expectation value of the number of photo-electrons.


The ratio corresponds to the hit probability with given QE divided by that with QE = 1.
The expectation value is defined for a two-fold (or higher) coincidence.

Parameters
QEQE
muexpectation value
Returns
ratio

Definition at line 52 of file JPMTParametersToolkit.hh.

53  {
54  if (mu > 0.0)
55  return (1.0 - exp(-QE*mu)) / (1.0 - exp(-mu));
56  else
57  return QE;
58  }
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable STRING $argv[2] set_array QUANTILES set_variable FORMULA *[0] exp(-0.5 *(x-[1])*(x-[1])/([2]*[2]))" set_variable MODULE `getModule -a $DETECTOR -L "$STRING 0"` source JAcousticsToolkit.sh typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
double JDETECTOR::getMaximalHitProbability ( const double  mu)
inline

Get maximal ratio of hit probabilities for given QE and expectation value of the number of photo-electrons.


The ratio corresponds to the hit probability with infinite QE divided by that with QE = 1.
The expectation value is defined for a two-fold (or higher) coincidence.

Parameters
muexpectation value
Returns
ratio

Definition at line 69 of file JPMTParametersToolkit.hh.

70  {
71  using namespace std;
72 
73  if (mu > 0.0)
74  return 1.0 / (1.0 - exp(-mu));
75  else
76  return numeric_limits<double>::max();
77  }
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable STRING $argv[2] set_array QUANTILES set_variable FORMULA *[0] exp(-0.5 *(x-[1])*(x-[1])/([2]*[2]))" set_variable MODULE `getModule -a $DETECTOR -L "$STRING 0"` source JAcousticsToolkit.sh typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
double JDETECTOR::getQE ( const double  R,
const double  mu 
)
inline

Get QE for given ratio of hit probabilities and expectation value of the number of photo-electrons.


The ratio corresponds to the hit probability with given QE divided by that with QE = 1.
The expectation value is defined for a two-fold (or higher) coincidence.

Parameters
Rratio
muexpectation value
Returns
QE

Definition at line 89 of file JPMTParametersToolkit.hh.

90  {
91  if (R < getMaximalHitProbability(mu)) {
92 
93  if (mu > 0.0)
94  return -log(1.0 - R*(1.0 - exp(-mu))) / mu;
95  else
96  return R;
97 
98  } else {
99 
100  THROW(JValueOutOfRange, "Inconsistent arguments at method getQE(" << R << "," << mu <<")");
101  }
102  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:696
then usage $script[distance] fi case set_variable R
Definition: JDrawLED.sh:43
then cat $TRIPOD_INITIAL<< EOF1 256877.5 4743716.7-2438.42 256815.5 4743395.0-2435.53 257096.2 4743636.0-2439.5EOFfiif[[!-f $DETECTOR]];then JEditDetector-a $DETECTOR_INITIAL-s"-1 addz -6.9"-o $DETECTOR--!eval`JPrintDetector-a $DETECTOR-O SUMMARY`for STRING in ${STRINGS[*]};do set_variable MODULE`getModule-a $DETECTOR-L"$STRING 0"`JEditDetector-a $DETECTOR-M"$MODULE setz -2.9"-o $DETECTOR--!donefiif[[!-f $TRIPOD]];then cp-p $TRIPOD_INITIAL $TRIPODfiJAcoustics.sh $DETECTOR_IDcat > acoustics_trigger_parameters txt<< EOFQ=0.0;TMax_s=0.020;quantile=0.9;numberOfHits=90;EOFJAcousticsEventBuilder.sh $DETECTOR $RUNS[*]INPUT_FILES=(`ls KM3NeT_ ${(l:8::0::0:) DETECTOR_ID}_0 *${^RUNS}_event.root`) cd $WORKDIRif[!$HOMEDIR-ef $WORKDIR];then cp-p $HOMEDIR/$DETECTOR $WORKDIR cp-p $HOMEDIR/$TRIPOD $WORKDIR cp-p $HOMEDIR/${^INPUT_FILES}$WORKDIR cp-p $HOMEDIR/{acoustics_fit_parameters, acoustics_trigger_parameters, disable, hydrophone, mechanics, sound_velocity, tripod, waveform}.txt $WORKDIRfisource $JPP_DIR/examples/JAcoustics/acoustics-fit-toolkit.shJConvertDetectorFormat-a $DETECTOR-o $HOMEDIR/detector_backup.datxJDetachPMTs-a $DETECTOR-o $DETECTORtimer_startinitialise stage_1B 0.002 0.1 0 > &stage log
double getMaximalHitProbability(const double mu)
Get maximal ratio of hit probabilities for given QE and expectation value of the number of photo-elec...
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable STRING $argv[2] set_array QUANTILES set_variable FORMULA *[0] exp(-0.5 *(x-[1])*(x-[1])/([2]*[2]))" set_variable MODULE `getModule -a $DETECTOR -L "$STRING 0"` source JAcousticsToolkit.sh typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
double JDETECTOR::getChargeProbability ( const JPMTSignalProcessorInterface pmt,
const double  npe,
const double  NPE,
const double  precision = 1.0e-4 
)
inline

Get charge probability.

Parameters
pmtPMT signal processor
npemeasured number of photo-electrons
NPEexpected number of photo-electrons
precisionprecision
Returns
probability

Definition at line 352 of file JPMTSignalProcessorInterface.hh.

356  {
357  int i = (int) (NPE - 5.0 * sqrt(NPE));
358 
359  if (i < 1) {
360  i = 1;
361  }
362 
363  double p = NPE * exp(-NPE) / (double) 1;
364 
365  for (int __i = 1; __i != i; ++__i) {
366  p *= NPE / __i;
367  }
368 
369  double P = 0.0;
370 
371  for (double p0 = 0.0; (p >= p0 || p > precision); ++i, p0 = p, p *= NPE / (double) i) {
372  P += pmt.getChargeProbability(npe, i) * p;
373  }
374 
375  return P;
376  }
virtual double getChargeProbability(const double npe, const int NPE) const
Get probability density for given charge.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable STRING $argv[2] set_array QUANTILES set_variable FORMULA *[0] exp(-0.5 *(x-[1])*(x-[1])/([2]*[2]))" set_variable MODULE `getModule -a $DETECTOR -L "$STRING 0"` source JAcousticsToolkit.sh typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
then $DIR JPlotNPE PDG P
Definition: JPlotNPE-PDG.sh:62
bool JDETECTOR::operator< ( const JPhotoElectron first,
const JPhotoElectron second 
)
inline

Less than operator for photo-elecrons.

Parameters
firstfirst photo-electron
secondsecond photo-electron
Returns
true if first photo-electron earlier than second; else false

Definition at line 70 of file JPMTSimulator.hh.

71  {
72  return first.t_ns < second.t_ns;
73  }
bool JDETECTOR::operator< ( const JPMTSignal first,
const JPMTSignal second 
)
inline

Less than operator for PMT signals.

Parameters
firstfirst PMT signal
secondsecond PMT signal
Returns
true if first PMT signal earlier than second; else false

Definition at line 114 of file JPMTSimulator.hh.

115  {
116  return first.t_ns < second.t_ns;
117  }
double t_ns
time [ns]
bool JDETECTOR::operator< ( const JPMTPulse first,
const JPMTPulse second 
)
inline

Less than operator for PMT pulses.

Parameters
firstfirst PMT pulse
secondsecond PMT pulse
Returns
true if first PMT pulse earlier than second; else false

Definition at line 158 of file JPMTSimulator.hh.

159  {
160  return first.t_ns < second.t_ns;
161  }
double t_ns
time [ns]
JTimeRange JDETECTOR::getTimeRange ( const JPMTData< JPMTSignal > &  input)
inline

Get time range (i.e. earlist and latest hit time) of PMT data.

Parameters
inputPMT data
Returns
time range

Definition at line 287 of file JPMTSimulator.hh.

288  {
289  JTimeRange range(JTimeRange::DEFAULT_RANGE);
290 
291  for (JPMTData<JPMTSignal>::const_iterator hit = input.begin(); hit != input.end(); ++hit) {
292  range.include(hit->t_ns);
293  }
294 
295  return range;
296  }
JTOOLS::JRange< double > JTimeRange
Type definition for time range (unit [ns]).
z range($ZMAX-$ZMIN)< $MINIMAL_DZ." fi fi typeset -Z 4 STRING typeset -Z 2 FLOOR JPlot1D -f $
std::vector< JElement_t >::const_iterator const_iterator
JTimeRange JDETECTOR::getTimeRange ( const JModuleData input)
inline

Get time range (i.e. earlist and latest hit time) of module data.

Parameters
inputmodule data
Returns
time range

Definition at line 305 of file JPMTSimulator.hh.

306  {
307  JTimeRange range(JTimeRange::DEFAULT_RANGE);
308 
309  for (JModuleData::const_iterator frame = input.begin(); frame != input.end(); ++frame) {
310  for (JModuleData::value_type::const_iterator hit = frame->begin(); hit != frame->end(); ++hit) {
311  range.include(hit->t_ns);
312  }
313  }
314 
315  return range;
316  }
JTOOLS::JRange< double > JTimeRange
Type definition for time range (unit [ns]).
z range($ZMAX-$ZMIN)< $MINIMAL_DZ." fi fi typeset -Z 4 STRING typeset -Z 2 FLOOR JPlot1D -f $
std::vector<std::string> JDETECTOR::getPMTStatusBits ( const JType< std::string > &  type)
inline

Get PMT status bits.

Parameters
typetype
Returns
status bits

Definition at line 80 of file JPMTStatus.hh.

81  {
83  }
static const JGetPMTStatusBit getPMTStatusBit
Function object to map key to PMT status bit.
Definition: JPMTStatus.hh:65
const array_type< JKey_t > & get_keys(const std::map< JKey_t, JValue_t, JComparator_t, JAllocator_t > &data)
Method to create array of keys of map.
Definition: JVectorize.hh:139
std::vector<int> JDETECTOR::getPMTStatusBits ( const JType< int > &  type)
inline

Get PMT status bits.

Parameters
typetype
Returns
status bits

Definition at line 92 of file JPMTStatus.hh.

93  {
95  }
static const JPutPMTStatusBit putPMTStatusBit(getPMTStatusBit)
Function object to map PMT status bit to key.
const array_type< JKey_t > & get_keys(const std::map< JKey_t, JValue_t, JComparator_t, JAllocator_t > &data)
Method to create array of keys of map.
Definition: JVectorize.hh:139
template<class T >
std::vector<T> JDETECTOR::getPMTStatusBits ( )
inline

Get PMT status bits.

Returns
status bits

Definition at line 104 of file JPMTStatus.hh.

105  {
106  return getPMTStatusBits(JType<T>());
107  }
std::vector< std::string > getPMTStatusBits(const JType< std::string > &type)
Get PMT status bits.
Definition: JPMTStatus.hh:80

Variable Documentation

const double JDETECTOR::TIME_OVER_THRESHOLD_NS = 25.08

Specification for time-over-threshold corresponding to a one photo-electron pulse.

Definition at line 30 of file JDetector/JCalibration.hh.

const double JDETECTOR::NOMINAL_GAIN = 1.0

Specification for normalized gain corresponding to a one photo-electron pulse.

Definition at line 35 of file JDetector/JCalibration.hh.

const std::string JDETECTOR::TCAL = "tcal"
static

PMT time offsets.

Definition at line 51 of file JDetectorCalibration.hh.

const std::string JDETECTOR::PCAL = "pcal"
static

(optical|base) module positions

Definition at line 52 of file JDetectorCalibration.hh.

const std::string JDETECTOR::RCAL = "rcal"
static

(optical|base) module orientations

Definition at line 53 of file JDetectorCalibration.hh.

const std::string JDETECTOR::ACAL = "acal"
static

acoustic time offsets (piezo sensor or hydrophone)

Definition at line 54 of file JDetectorCalibration.hh.

const std::string JDETECTOR::CCAL = "ccal"
static

compass alignment (a.k.a. quaternion calibration)

Definition at line 55 of file JDetectorCalibration.hh.

const std::string JDETECTOR::SCAL = "scal"
static

PMT status.

Definition at line 56 of file JDetectorCalibration.hh.

const std::string JDETECTOR::User_t = "User"
static

Detector calibration key words for JSON I/O.

Definition at line 64 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Location_t = "Location"
static

Definition at line 65 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Time_t = "Time"
static

Definition at line 66 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Start_t = "Start"
static

Definition at line 67 of file JDetectorCalibration.hh.

const std::string JDETECTOR::End_t = "End"
static

Definition at line 68 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Comment_t = "Comment"
static

Definition at line 69 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Encoding_t = "Encoding"
static

Definition at line 70 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Input_t = "Inputs"
static

Definition at line 71 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Error_t = "Error"
static

Definition at line 72 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Message_t = "Message"
static

Definition at line 73 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Code_t = "Code"
static

Definition at line 74 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Provenance_t = "Provenance"
static

Definition at line 75 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Info_t = "Info"
static

Definition at line 76 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Configuration_t = "Configuration"
static

Definition at line 77 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Arguments_t = "Arguments"
static

Definition at line 78 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Inputs_t = "Inputs"
static

Definition at line 79 of file JDetectorCalibration.hh.

const std::string JDETECTOR::UUID_t = "UUID"
static

Definition at line 80 of file JDetectorCalibration.hh.

const std::string JDETECTOR::APIVersion_t = "APIVersion"
static

Definition at line 81 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Result_t = "Result"
static

Definition at line 82 of file JDetectorCalibration.hh.

const std::string JDETECTOR::OK_t = "OK"
static

Definition at line 83 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Fail_t = "FAIL"
static

Definition at line 84 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Type_t = "Type"
static

Definition at line 88 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Test_t = "Test"
static

Definition at line 89 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Tests_t = "Tests"
static

Definition at line 90 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Data_t = "Data"
static

Definition at line 91 of file JDetectorCalibration.hh.

const std::string JDETECTOR::URL_t = "URL"
static

Definition at line 92 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Name_t = "Name"
static

Definition at line 93 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Unit_t = "Unit"
static

Definition at line 94 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Values_t = "Values"
static

Definition at line 95 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Parameters_t = "Parameters"
static

Definition at line 96 of file JDetectorCalibration.hh.

const std::string JDETECTOR::RunNumber_t = "RUN_NUMBER"
static

Definition at line 97 of file JDetectorCalibration.hh.

const std::string JDETECTOR::PMTT0s_t = "PMTT0s"
static

Definition at line 100 of file JDetectorCalibration.hh.

const std::string JDETECTOR::PMTStatusInfo_t = "PMTStatusInfo"
static

Definition at line 101 of file JDetectorCalibration.hh.

const std::string JDETECTOR::PMTSupplyVoltage_t = "PMT_Supply_Voltage"
static

Definition at line 102 of file JDetectorCalibration.hh.

const std::string JDETECTOR::PMTThreshold_t = "PMT_Threshold"
static

Definition at line 103 of file JDetectorCalibration.hh.

const std::string JDETECTOR::DOMPositions_t = "DOMPositions"
static

Definition at line 104 of file JDetectorCalibration.hh.

const std::string JDETECTOR::DOMRotations_t = "DOMRotations"
static

Definition at line 105 of file JDetectorCalibration.hh.

const std::string JDETECTOR::DOMAcousticT0_t = "DOMAcousticT0s"
static

Definition at line 106 of file JDetectorCalibration.hh.

const std::string JDETECTOR::DOMCompassRotations_t = "DOMCompassRotations"
static

Definition at line 107 of file JDetectorCalibration.hh.

const std::string JDETECTOR::DOMStatusInfo_t = "DOMStatusInfo"
static

Definition at line 108 of file JDetectorCalibration.hh.

const std::string JDETECTOR::PMTGain_t = "PMT_Gain"
static

Definition at line 109 of file JDetectorCalibration.hh.

const std::string JDETECTOR::BasePositions_t = "BasePositions"
static

Definition at line 110 of file JDetectorCalibration.hh.

const std::string JDETECTOR::BaseRotations_t = "BaseRotations"
static

Definition at line 111 of file JDetectorCalibration.hh.

const std::string JDETECTOR::BaseStatusInfo_t = "BaseStatusInfo"
static

Definition at line 112 of file JDetectorCalibration.hh.

const std::string JDETECTOR::UPI_t = "UPI"
static

Definition at line 115 of file JDetectorCalibration.hh.

const std::string JDETECTOR::PBS_t = "PBS"
static

Definition at line 116 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Variant_t = "Variant"
static

Definition at line 117 of file JDetectorCalibration.hh.

const std::string JDETECTOR::DetOID_t = "DetOID"
static

Definition at line 118 of file JDetectorCalibration.hh.

const std::string JDETECTOR::DetID_t = "DetID"
static

Definition at line 119 of file JDetectorCalibration.hh.

const std::string JDETECTOR::PMTSerial_t = "Serial"
static

Definition at line 120 of file JDetectorCalibration.hh.

const std::string JDETECTOR::DOMSerial_t = "DOMSerial"
static

Definition at line 121 of file JDetectorCalibration.hh.

const std::string JDETECTOR::DOMId_t = "DOMId"
static

Definition at line 122 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Id_t = "Id"
static

Definition at line 123 of file JDetectorCalibration.hh.

const std::string JDETECTOR::T0_t = "T0"
static

Definition at line 126 of file JDetectorCalibration.hh.

const std::string JDETECTOR::PX_t = "PX"
static

Definition at line 127 of file JDetectorCalibration.hh.

const std::string JDETECTOR::PY_t = "PY"
static

Definition at line 128 of file JDetectorCalibration.hh.

const std::string JDETECTOR::PZ_t = "PZ"
static

Definition at line 129 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Q0_t = "Q0"
static

Definition at line 130 of file JDetectorCalibration.hh.

const std::string JDETECTOR::QX_t = "QX"
static

Definition at line 131 of file JDetectorCalibration.hh.

const std::string JDETECTOR::QY_t = "QY"
static

Definition at line 132 of file JDetectorCalibration.hh.

const std::string JDETECTOR::QZ_t = "QZ"
static

Definition at line 133 of file JDetectorCalibration.hh.

const std::string JDETECTOR::STATUS_t = "Status"
static

Definition at line 134 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Unitless_t = "-"
static

Definition at line 137 of file JDetectorCalibration.hh.

const std::string JDETECTOR::Volt_t = "V"
static

Definition at line 138 of file JDetectorCalibration.hh.

const double JDETECTOR::ORCA_TBARZ_M = 0.91
static

ORCA T-bar position relative to seabed [m].

Definition at line 17 of file JDetectorSupportkit.hh.

const double JDETECTOR::ARCA_TBARZ_M = 0.95
static

ORCA T-bar position relative to seabed [m].

Definition at line 18 of file JDetectorSupportkit.hh.

const char* const JDETECTOR::GENDET_DETECTOR_FILE_FORMAT = "det"
static

File name extensions.

file format used by gendet

Definition at line 61 of file JDetectorToolkit.hh.

const char* const JDETECTOR::BINARY_DETECTOR_FILE_FORMAT[] = { "dat", "datx" }
static

JIO binary file format.

Definition at line 62 of file JDetectorToolkit.hh.

const char* const JDETECTOR::KM3NET_DETECTOR_FILE_FORMAT = "detx"
static

KM3NeT standard ASCII format

Definition at line 63 of file JDetectorToolkit.hh.

const char* const JDETECTOR::ZIPPED_DETECTOR_FILE_FORMAT = "gz"
static

zipped KM3NeT standard ASCII format

Definition at line 64 of file JDetectorToolkit.hh.

const char* const JDETECTOR::GDML_DETECTOR_FILE_FORMAT = "gdml"
static

KM3Sim input format.

Definition at line 65 of file JDetectorToolkit.hh.

const char* const JDETECTOR::GDML_SCHEMA = getenv("GDML_SCHEMA_DIR")
static

directory necessary for correct GDML header output

Definition at line 67 of file JDetectorToolkit.hh.

const char* const JDETECTOR::CAN_MARGIN_M = getenv("CAN_MARGIN_M")
static

extension of the detector size to comply with the can definition

Definition at line 68 of file JDetectorToolkit.hh.

const char* const JDETECTOR::G4GDML_DEFAULT_SCHEMALOCATION = "http://service-spi.web.cern.ch/service-spi/app/releases/GDML/schema/gdml.xsd"
static

Definition at line 69 of file JDetectorToolkit.hh.

JRotation JDETECTOR::getRotation
static

Function object to get rotation matrix to go from first to second module.

Definition at line 876 of file JDetectorToolkit.hh.

const JGetDetectorVersion JDETECTOR::getDetectorVersion
static

Function object to map detector version to numerical value.

Definition at line 300 of file JDetectorVersion.hh.

const JPutDetectorVersion JDETECTOR::putDetectorVersion(getDetectorVersion)
static

Function object to map numerical value to detector version.

const JGetModuleStatusBit JDETECTOR::getModuleStatusBit
static

Function object to map key to module status bit.

Definition at line 64 of file JModuleStatus.hh.

const JPutModuleStatusBit JDETECTOR::putModuleStatusBit(getModuleStatusBit)
static

Function object to map module status bit to key.

const double JDETECTOR::PIEZO_V1_DELAYTIME_US = 170.3
static

Piezo delay time [us].

Definition at line 19 of file JModuleSupportkit.hh.

const double JDETECTOR::PIEZO_V2_DELAYTIME_US = 242.1
static

Piezo delay time [us].

Definition at line 20 of file JModuleSupportkit.hh.

const double JDETECTOR::PIEZO_V3_DELAYTIME_US = 242.1
static

Piezo delay time [us].

Definition at line 21 of file JModuleSupportkit.hh.

const double JDETECTOR::HYDROPHONE_DELAYTIME_US = 50.7
static

Hydrophone delay time [us].

Definition at line 22 of file JModuleSupportkit.hh.

const int JDETECTOR::LED_BEACON_PMT_TYPE = 2
static

PMT type of LED beacon.

Definition at line 37 of file JMonteCarloDetector.hh.

const JGetPMTStatusBit JDETECTOR::getPMTStatusBit
static

Function object to map key to PMT status bit.

Definition at line 65 of file JPMTStatus.hh.

const JPutPMTStatusBit JDETECTOR::putPMTStatusBit(getPMTStatusBit)
static

Function object to map PMT status bit to key.

const JTransitionTimeProbability38 JDETECTOR::p38

Definition at line 4186 of file JPMTTransitTimeGenerator.hh.

const JTransitionTimeProbability41 JDETECTOR::p41

Definition at line 4187 of file JPMTTransitTimeGenerator.hh.

const JTransitionTimeProbability67 JDETECTOR::p67

Definition at line 4188 of file JPMTTransitTimeGenerator.hh.

JDETECTOR::getTransitionTime
static

Function object to generate transition time.

JDETECTOR::getTransitionTimeProbability
static

Function object of transition time prabability.

const JTransitionTimeProbability2D JDETECTOR::getTransitionTimeProbability2D
static

Function object of twofold transition time prabability.

Definition at line 2659 of file JPMTTransitTimeProbability.hh.

const JStringCounter JDETECTOR::getNumberOfStrings
static

Function object to count unique strings.

Definition at line 95 of file JStringCounter.hh.