1 #ifndef JSHOWERENERGYPREFIT_INCLUDE
2 #define JSHOWERENERGYPREFIT_INCLUDE
59 namespace JRECONSTRUCTION {}
60 namespace JPP {
using namespace JRECONSTRUCTION; }
62 namespace JRECONSTRUCTION {
79 using JRegressor_t::operator();
95 const std::string pdfFile,
124 const double chi2 = std::numeric_limits<double>::max())
135 operator bool()
const
137 return chi2 != std::numeric_limits<double>::max();
166 for (JEvt::const_iterator shower = in.begin(); shower != in.end(); ++shower) {
177 for (JDataL0_t::const_iterator i = dataL0.begin(); i != dataL0.end(); ++i) {
180 top.insert(i->getPMTIdentifier());
186 for (JDetector::const_iterator module = subdetector.begin(); module != subdetector.end(); ++module) {
188 for (
size_t i = 0; i != module->size(); ++i) {
198 const int NDF = data.size() - 1;
207 for (
int i = 0; i !=
N; ++i) {
217 for (
int i = 0; i !=
N; ++i) {
221 result[i].
chi2 = (*this)(result[i].
x, data.begin(), data.end());
225 if (result[i].
chi2 < result[j].
chi2) {
235 result[4] = result[1];
236 result[2] =
JResult(0.5 * (result[0].
x + result[4].
x));
240 result[4] = result[2];
241 result[2] = result[1];
245 result[0] = result[1];
246 result[4] = result[3];
250 result[0] = result[2];
251 result[2] = result[3];
255 result[0] = result[3];
256 result[2] =
JResult(0.5 * (result[0].x + result[4].x));
260 result[1] =
JResult(0.5 * (result[0].
x + result[2].
x));
261 result[3] =
JResult(0.5 * (result[2].x + result[4].x));
266 if (result[1].
chi2 != result[3].
chi2) {
268 result[2].
x += 0.25 * (result[3].
x - result[1].
x) * (result[1].chi2 - result[3].chi2) / (result[1].
chi2 + result[3].
chi2 - 2*result[2].
chi2);
270 result[2].
chi2 = (*this)(result[2].
x, data.begin(), data.end());
275 const double E = result[2].
x.
getE();
277 JShower3E sh_fit(sh.getPosition(), sh.getDirection(), sh.getT(),
E);
282 shower->getNDF(), sh_fit.getE()));
static int debug
debug level (default is off).
Template definition of a data regressor of given model.
double getE() const
Get energy.
double roadWidth_m
road width [m]
JRegressor< JEnergy, JSimplex > JRegressor_t
Algorithms for hit clustering and sorting.
int mestimator
M-estimator.
Template specialisation of L0 builder for JHitL0 data type.
static double Vmax_npe
Maximal integral of PDF [npe].
JEvt operator()(const KM3NETDAQ::JDAQEvent &event, const JFIT::JEvt &in)
Declaration of the member function that actually performs the reconstruction.
const JSummaryRouter & summary
Data structure for vertex fit.
Router for direct addressing of module data in detector data structure.
Data structure for fit parameters.
double getRate() const
Get default rate.
double resolution
energy resolution [log10(GeV)]
then JShowerPostfit f $INPUT_FILE o $OUTPUT_FILE N
*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
Basic data structure for time and time over threshold information of hit.
static const int JSHOWERENERGYPREFIT
Data structure for detector geometry and calibration.
JResult(const JEnergy &x=0.0, const double chi2=std::numeric_limits< double >::max())
Constructor.
Basic data structure for L0 hit.
Auxiliary class to extract a subset of optical modules from a detector.
Auxiliary class for energy estimation.
double TMin_ns
minimum time for local coincidences [ns]
class to handle the third step of the shower reconstruction, mainly dedicated for ORCA ...
JDirection3D getDirection(const Vec &dir)
Get direction.
set_variable E_E log10(E_{fit}/E_{#mu})"
double Emax_GeV
maximum energy [GeV]
double VMax_npe
maximum number of of photo-electrons
JPosition3D getPosition(const Vec &pos)
Get position.
JShowerEnergyPrefit(const JShowerEnergyPrefitParameters_t ¶meters, const JModuleRouter &router, const JSummaryRouter &summary, const std::string pdfFile, const int debug=0)
Parameterized constructor.
static JTimeRange T_ns
Time window with respect to Cherenkov hypothesis [ns].
Router for fast addressing of summary data in KM3NETDAQ::JDAQSummaryslice data structure as a functio...
Detector subset without binary search functionality.
Reduced data structure for L1 hit.
const JClass_t & getReference() const
Get reference to object.
Data regression method for JFIT::JShower3EZ only focused on the energy estimation from a bright point...
Data structure for set of track fit results.
double TMax_ns
maximum time for local coincidences [ns]
JFit getFit(const int id, const JMODEL::JString &string)
Get fit parameters of string.
Simple fit method based on Powell's algorithm, see reference: Numerical Recipes in C++...
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
Auxiliary class for simultaneously handling light yields and response of PMT.
int NMax
maximum number of iterations
Regressor function object for JShower3EZ fit using JSimplex minimiser.
Data structure for fit of energy.
double getNPE(const Hit &hit)
Get true charge of hit.
static int MAXIMUM_ITERATIONS
maximal number of iterations
JMEstimator * getMEstimator(const int type)
Get M-Estimator.
Template specialisation of class JModel to match hit with bright point.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
const JModuleRouter & router
double Emin_GeV
minimum energy [GeV]
Match operator for Cherenkov light from shower in any direction.
Basic data structure for L1 hit.