1 #ifndef __JACOUSTICS__JFREMANTLE_T__
2 #define __JACOUSTICS__JFREMANTLE_T__
53 const size_t backlog = std::numeric_limits<size_t>::max()) :
62 for (
size_t i = 0; i <
ns; ++i) {
64 thread worker([
this, geometry, velocity, parameters]() {
68 for (
JGlobalfit katoomba(geometry, velocity, parameters); ; ) {
71 unique_lock<mutex> lock(
in);
73 cv.wait(lock, [
this]() {
return stop || !
input.empty(); });
88 if (
result.chi2 /
result.ndf <= katoomba.parameters.chi2perNDF) {
91 unique_lock<mutex> lock(
out);
112 workers.emplace_back(std::move(worker));
125 unique_lock<mutex> lock(
in);
148 unique_lock<mutex> lock(
in);
153 throw runtime_error(
"The thread pool has been stopped.");
172 std::condition_variable
cv;
173 std::condition_variable
cw;
Fit function of acoustic model.
Thread pool for global fits.
static output_type * output
optional output
std::condition_variable cw
JLANG::JObjectOutput< JSuperEvt > output_type
void enqueue(input_type &data)
Queue data.
std::vector< std::thread > workers
std::vector< JHit > input_type
static JMATH::JQuantile_t Q
chi2/NDF
std::condition_variable cv
static int detid
detector identifier
JFremantle(const JGeometry &geometry, const JSoundVelocity &velocity, const JFitParameters ¶meters, const size_t ns, const size_t backlog=std::numeric_limits< size_t >::max())
Constructor.
static bool squash
squash transmissions in output
std::queue< input_type > input
Template interface of object output for single data type.
virtual bool put(const T &object)=0
Object output.
Auxiliary classes and methods for acoustic position calibration.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Global fit of prameterised detector geometry to acoustics data.
Implementation for depth dependend velocity of sound.
Auxiliary data structure to convert model to super event.
Auxiliary data structure for average.
void put(const double x)
Put value.