1 #ifndef __JACOUSTICS__JPLATYPUS_T__
2 #define __JACOUSTICS__JPLATYPUS_T__
24 namespace JACOUSTICS {}
25 namespace JPP {
using namespace JACOUSTICS; }
27 namespace JACOUSTICS {
62 for (
size_t i = 0;
i <
ns; ++
i) {
64 thread worker([
this, geometry, emitters, velocity, parameters]() {
73 unique_lock<mutex> lock(
in);
75 cv.wait(lock, [
this]() {
return stop || this->input.
hasNext(); });
85 for (JSuperEvt::rx_type::const_iterator hit = evt->
rx.begin(); hit != evt->
rx.end(); ++hit) {
87 data.push_back(
JHit(emitters[hit->id],
98 const double chi2 = katoomba (data.begin(), data.end()) / katoomba.estimator->getRho(1.0);
99 const double ndf =
getWeight(data.begin(), data.end()) - katoomba.value.getN();
102 unique_lock<mutex> lock(
out);
109 workers.emplace_back(std::move(worker));
122 unique_lock<mutex> lock(
in);
141 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.
*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
static JQuantile Q
chi2/NDF
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.
Auxiliary data structure for average.
Fit functions of acoustic model.
void put(const double x)
Put value.
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.
JLANG::JObjectIterator< JSuperEvt > input_type
std::condition_variable cv