42 inline double getRange(
const double E,
const double l_abs)
44 const double precision = 1.0e-6;
45 const double y0 = 1.0e-3;
50 for (
int i = 0; i != 1000; ++i) {
52 const double x = 0.5 * (xmin + xmax);
53 const double R = 1.0e3 *
pow(10.0, x);
55 const double y = E * 2.0e-9 *
exp(-R/l_abs) / R;
57 if (fabs(y - y0) <= precision) {
88 size_t numberOfEvents;
98 double ZMax_m = 150.0;
112 JParser<> zap(
" Auxiliary program to write signal acoustic data.");
131 catch(
const exception &error) {
147 const double RMax_m =
getRange(E_GeV, parameters.l_abs);
156 const double x = h1.GetXaxis()->GetBinCenter(i);
157 const double E =
pow(10.0, x);
158 const double R =
getRange(E, parameters.l_abs);
160 h1.SetBinContent(i, R);
176 for (
size_t i = 0; i != numberOfEvents; ++i) {
192 const double t0 =
T_s * i;
198 if (
module->getFloor() != 0) {
205 if (sqrt(P.
getX()*P.
getX() + P.
getY()*P.
getY()) <= RMax_m && fabs(P.
getZ()) <= parameters.ZMax_m) {
222 <<
FIXED(12,2) << t0 <<
' '
ROOT TTree parameter settings.
Data structure for detector geometry and calibration.
Recording of objects on file according a format that follows from the file name extension.
General purpose messaging.
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Utility class to parse parameter values.
#define gmake_property(A)
macros to convert (template) parameter to JPropertiesElement object
Auxiliary class to define a range between two values.
int main(int argc, char **argv)
Utility class to parse parameter values.
Data structure for position in three dimensions.
JPosition3D & rotate(const JRotation3D &R)
Rotate.
double getY() const
Get y position.
JVector3D & add(const JVector3D &vector)
Add vector.
double getDistance(const JVector3D &pos) const
Get distance to point.
double getZ() const
Get z position.
JVector3D & sub(const JVector3D &vector)
Subtract vector.
double getX() const
Get x position.
Data structure for normalised vector in three dimensions.
double getDY() const
Get y direction.
double getDX() const
Get x direction.
double getDZ() const
Get z direction.
int getID() const
Get identifier.
Template definition of a multi-dimensional oscillation probability interpolation table.
Auxiliary classes and methods for acoustic position calibration.
static const JSoundVelocity getSoundVelocity(1541.0, -17.0e-3, -2000.0)
Function object for velocity of sound.
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
T pow(const T &x, const double y)
Power .
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary classes and methods for ROOT I/O.
range_type getRange(TAxis *pAxis)
Get range of given axis.
Auxiliary data structure for floating point format specification.
Type definition of range.
double putT(const double t_s) const
Get uncorrected time.
Implementation for depth dependend velocity of sound.
virtual double getTime(const double D_m, const double z1, const double z2) const override
Get propagation time of sound.
Time-of-arrival data from acoustic piezo sensor or hydrophone.
uint32_t DOMID
DAQ run number.
int64_t TOA_NS
Unique ID of the waveform that best described the signal around TOA_NS.
uint32_t QUALITYFACTOR
The ticks (16ns) part of the DAQ frame timestamp.
uint32_t QUALITYNORMALISATION
A measure of how good the waveform match was to the signal.
int32_t WAVEFORMID
DOM unique identifeir.
int32_t RUN
detector identifier
Empty structure for specification of parser element that is initialised (i.e. does not require input)...