1 #ifndef __JACOUSTICS__JPLATYPUS_T__
2 #define __JACOUSTICS__JPLATYPUS_T__
26 namespace JACOUSTICS {}
27 namespace JPP {
using namespace JACOUSTICS; }
29 namespace JACOUSTICS {
64 for (
size_t i = 0;
i <
ns; ++
i) {
66 thread worker([
this, geometry, emitters, velocity, parameters]() {
75 unique_lock<mutex> lock(
in);
77 cv.wait(lock, [
this]() {
return stop || this->input.
hasNext(); });
87 for (JSuperEvt::rx_type::const_iterator hit = evt->
rx.begin(); hit != evt->
rx.end(); ++hit) {
89 data.push_back(
JHit(emitters[hit->id],
100 const double chi2 = katoomba (data.begin(), data.end()) / katoomba.estimator->getRho(1.0);
101 const double ndf =
getWeight(data.begin(), data.end()) - katoomba.value.getN();
104 unique_lock<mutex> lock(
out);
111 workers.emplace_back(std::move(worker));
124 unique_lock<mutex> lock(
in);
143 std::condition_variable
cv;
JModel getModel(const JEvt &evt)
Get model.
double getWeight(T __begin, T __end)
Get total weight of data points.
General purpose class for hash map of unique elements.
static JMATH::JQuantile_t Q
chi2/NDF
void put(const double x)
Put value.
*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
Interface of object iteration for a single data type.
JPlatypus(const JGeometry &geometry, const JEmitters &emitters, const JSoundVelocity &velocity, const JFitParameters ¶meters, input_type &input, const size_t ns)
Constructor.
Template specialisation of fit function of acoustic model based on JGandalf minimiser.
virtual const pointer_type & next()=0
Get next element.
Logical location of module.
JTOOLS::JHashMap< int, JEmitter > JEmitters
virtual bool hasNext()=0
Check availability of next element.
std::vector< std::thread > workers
Implementation for depth dependend velocity of sound.
Acoustic super event fit.
Thread pool for global fits using super events.
Fit functions of acoustic model.
then if[[!-f $DETECTOR]] then JDetector sh $DETECTOR fi cat $WORKDIR trigger_parameters txt<< EOFtrigger3DMuon.enabled=1;trigger3DMuon.numberOfHits=5;trigger3DMuon.gridAngle_deg=1;ctMin=0.0;TMaxLocal_ns=15.0;EOF set_variable TRIGGEREFFICIENCY_TRIGGERED_EVENTS_ONLY INPUT_FILES=() for((i=1;$i<=$NUMBER_OF_RUNS;++i));do JSirene.sh $DETECTOR $JPP_DATA/genhen.km3net_wpd_V2_0.evt.gz $WORKDIR/sirene_ ${i}.root JTriggerEfficiency.sh $DETECTOR $DETECTOR $WORKDIR/sirene_ ${i}.root $WORKDIR/trigger_efficiency_ ${i}.root $WORKDIR/trigger_parameters.txt $JPP_DATA/PMT_parameters.txt INPUT_FILES+=($WORKDIR/trigger_efficiency_ ${i}.root) done for ANGLE_DEG in $ANGLES_DEG[*];do set_variable SIGMA_NS 3.0 set_variable OUTLIERS 3 set_variable OUTPUT_FILE $WORKDIR/matrix\[${ANGLE_DEG}\deg\].root $JPP_DIR/examples/JReconstruction-f"$INPUT_FILES[*]"-o $OUTPUT_FILE-S ${SIGMA_NS}-A ${ANGLE_DEG}-O ${OUTLIERS}-d ${DEBUG}--!fiif[[$OPTION=="plot"]];then if((0));then for H1 in h0 h1;do JPlot1D-f"$WORKDIR/matrix["${^ANGLES_DEG}" deg].root:${H1}"-y"1 2e3"-Y-L TR-T""-\^"number of events [a.u.]"-> o chi2
double sigma_s
time-of-arrival resolution [s]
int mestimator
M-estimator.
JMEstimator * getMEstimator(const int type)
Get M-Estimator.
Auxiliary data structure for average.
JLANG::JObjectIterator< JSuperEvt > input_type
std::condition_variable cv