80 JLimit_t& numberOfEvents = inputFile.getLimit();
93 JParser<> zap(
"Application to fit position calibration model to acoustic data.");
95 zap[
'f'] =
make_field(inputFile,
"output of JAcousticEventBuilder[.sh]");
107 zap[
's'] =
make_field(squash,
"squash transmissions in output");
112 catch(
const exception &error) {
116 ROOT::EnableThreadSafety();
130 for (JDetector::const_iterator i =
detector.begin(); i !=
detector.end(); ++i) {
131 receivers[i->getID()] = i->getLocation();
134 for (tripods_container::const_iterator i = tripods.begin(); i != tripods.end(); ++i) {
138 for (transmitters_container::const_iterator i = transmitters.begin(); i != transmitters.end(); ++i) {
142 catch(
const exception&) {}
155 if (inputFile.size() > 1u) {
159 for (
const string& file_name : inputFile) {
165 const JEvent* evt = in.next();
172 zmap[evt->begin()->getToE()] = file_name;
181 inputFile.push_back(i->second);
209 for (
const string file_name = inputFile.getFilename(); inputFile.hasNext() && file_name == inputFile.getFilename(); ) {
211 const JEvent* evt = inputFile.next();
214 zbuf.push_back(*evt);
218 sort(zbuf.begin(), zbuf.end());
220 for (buffer_type::iterator p = zbuf.begin(), q; p != zbuf.end(); p = q) {
222 for (q = p; ++q != zbuf.end() && q->begin()->getToE() <= p->rbegin()->getToE() + parameters.
Tmax_s; ) {}
224 if (q == zbuf.end()) {
226 if (inputFile.hasNext()) {
228 zbuf.erase(zbuf.begin(), p);
242 for (buffer_type::iterator evt = p; evt != q; ++evt) {
249 const double weight =
getWeight(evt->getID());
251 for (JEvent::const_iterator i = evt->begin(); i != __end; ++i) {
256 if (receivers.has(i->getID()) && geometry.
hasLocation(receivers[i->getID()]) && i->getQ() >= parameters.
Qmin * (parameters.
Qmin <= 1.0 ? i->getW() : 1.0)) {
258 data.push_back(
JHit(emitter,
260 receivers[i->getID()],
277 catch(
const exception& error) {
278 FATAL(
"main " << error.what());
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.
int main(int argc, char **argv)
Fit function of acoustic model.
General purpose class for hash map of unique elements.
Data structure for hydrophone.
General purpose messaging.
#define DEBUG(A)
Message macros.
Data structure for optical module.
Scanning of objects from multiple files according a format that follows from the extension of each fi...
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Auxiliary class to define a range between two values.
Scanning of objects from a single file according a format that follows from the extension of each fil...
Acoustic transmission identifier.
Data structure for transmitter.
Data structure for tripod.
Thread pool for global fits.
static output_type * output
optional output
static JMATH::JQuantile_t Q
chi2/NDF
static int detid
detector identifier
static bool squash
squash transmissions in output
Template definition of a multi-dimensional oscillation probability interpolation table.
size_t getMinimumNumberOfEmitters(T __begin, T __end)
Get minimum number of emitters for any string in data.
JContainer< std::vector< JTripod > > tripods_container
JContainer< std::vector< JTransmitter > > transmitters_container
JContainer< std::vector< JHydrophone > > hydrophones_container
size_t getNumberOfEmitters(T __begin, T __end)
Get number of emitters.
static const JSoundVelocity getSoundVelocity(1541.0, -17.0e-3, -2000.0)
Function object for velocity of sound.
static JDetectorMechanics getMechanics
Function object to get string mechanics.
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
std::vector< JHitW0 > buffer_type
hits
JRECONSTRUCTION::JWeight getWeight
int getID() const
Get emitter identifier.
const int getDetectorID() const
Get detector identifier.
double Qmin
minimal quality transmission
double deadTime_s
dead time between events [s]
size_t Nmin
minimum number of emitters
double sigma_s
time-of-arrival resolution [s]
double Tmax_s
time window to combine events [s]
bool hasLocation(const JLocation &location) const
Check if this detector has given location.
Global fit of prameterised detector geometry to acoustics data.
Template definition of fit function of acoustic model.
Implementation for depth dependend velocity of sound.
JSoundVelocity & set(const double z0)
Set depth.
Acoustic transmission identifier.
int getID() const
Get identifier.
Auxiliary data structure to unify weights of acoustics data according to the number of pings per emit...
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
Auxiliary class for defining the range of iterations of objects.
static counter_type max()
Get maximum counter value.
Auxiliary data structure for floating point format specification.