88   size_t           numberOfEvents;
 
   98     double         ZMax_m = 150.0;         
 
  112     JParser<> zap(
" Auxiliary program to write signal acoustic data.");
 
  114     zap[
'a'] = 
make_field(detectorFile,        
"detector.");
 
  118     zap[
'E'] = 
make_field(E_GeV,               
"neutrino energy [GeV]");
 
  119     zap[
'R'] = 
make_field(run,                 
"run number")            = -1;
 
  120     zap[
'T'] = 
make_field(T_s,                 
"time interval between events [s]");
 
  125     zap[
'W'] = 
make_field(
id,                  
"waveform identifier");
 
  131   catch(
const exception &error) {
 
  132     FATAL(error.what() << endl);
 
  136   gRandom->SetSeed(seed);
 
  147   const double RMax_m = 
getRange(E_GeV, parameters.l_abs);
 
  150   const JPosition3D   center(cylinder.getX(), cylinder.getY(), 0.5 * (cylinder.getZmin() + cylinder.getZmax()));
 
  152   TH1D h1(
"h1", NULL, 60, 6.0, 12.0);
 
  154   for (Int_t i = 1; i <= h1.GetXaxis()->GetNbins(); ++i) {
 
  156     const double x = h1.GetXaxis()->GetBinCenter(i);
 
  157     const double E = 
pow(10.0, 
x);
 
  159     h1.SetBinContent(i, 
getRange(E, parameters.l_abs));
 
  175   for (
size_t i = 0; i != numberOfEvents; ++i) {
 
  185     gRandom->Sphere(
x, 
y, z, 1.0);
 
  191     const double t0 = T_s * i;             
 
  193     size_t number_of_hits = 0;
 
  195     for (JDetector::const_iterator module = 
detector.begin(); module != 
detector.end(); ++module) {
 
  197       if (module->getFloor() != 0) {
 
  204         if (sqrt(P.getX()*P.getX() + P.getY()*P.getY()) <= RMax_m && fabs(P.getZ()) <= parameters.ZMax_m) {
 
  206           const JReceiver receiver(module->getID(), module->getPosition(), module->getT0() * 1.0e-9);
 
  208           const double t1 = V.
getTime(pos.getDistance(receiver), pos.getZ(), receiver.getZ());
 
  210           toa.
DOMID        = receiver.getID();
 
  211           toa.
TOA_NS       = llrint(1E9*receiver.putT(t0 + t1));
 
  220     STATUS(
"event: " << setw(6) << i << 
' ' 
  221            << 
FIXED(12,2) <<  t0                          << 
' ' 
  222            << 
FIXED(9,2)  << (pos.getX() - center.getX()) << 
' ' 
  223            << 
FIXED(9,2)  << (pos.getY() - center.getY()) << 
' ' 
  224            << 
FIXED(9,2)  << (pos.getZ() - center.getZ()) << 
' ' 
  225            << 
FIXED(6,3)  <<  dir.getDX()                 << 
' ' 
  226            << 
FIXED(6,3)  <<  dir.getDY()                 << 
' ' 
  227            << 
FIXED(6,3)  <<  dir.getDZ()                 << 
' ' 
  228            << setw(4)     <<  number_of_hits << endl);    
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
#define gmake_property(A)
macros to convert (template) parameter to JPropertiesElement object
Utility class to parse parameter values.
Data structure for position in three dimensions.
Data structure for normalised vector in three dimensions.
Utility class to parse command line options.
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).
range_type getRange(TAxis *pAxis)
Get range of given axis.
Auxiliary data structure for floating point format specification.
Type definition of range.
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)...