1 #ifndef __JRECONSTRUCTION__JMUONENERGY__ 
    2 #define __JRECONSTRUCTION__JMUONENERGY__ 
   68     using JRegressor_t::operator();
 
   82                 const std::string&             pdfFile,
 
  101       if (!this->estimator.is_valid()) {
 
  102         FATAL(
"Invalid M-Estimator." << endl);
 
  118               const double   chi2 = std::numeric_limits<double>::max())
 
  129       operator bool()
 const 
  131         return chi2 != std::numeric_limits<double>::max();
 
  162       for (JEvt::const_iterator track = in.begin(); track != in.end(); ++track) {
 
  172         for (JDataL0_t::const_iterator i = dataL0.begin(); i !=dataL0.end(); ++i) {
 
  179             top.insert(i->getPMTIdentifier());
 
  191         for (JDetector::const_iterator module = subdetector.begin(); module != subdetector.end(); ++module) {
 
  197             for (
size_t i = 0; i != module->size(); ++i) {
 
  207                 const size_t count   = top.count(
id);
 
  225           for (
int i = 0; i != N; ++i) {
 
  235             for (
int i = 0; i != N; ++i) {
 
  240                 const double  chi2 = (*this)(
x, 
data.begin(), 
data.end());
 
  243                 buffer[chi2]   = 
x.getE();
 
  252             for (
int i = 0; i != N; ++i) {
 
  302           const double chi2 = 
result[2].chi2;
 
  303           const double E    = 
result[2].x.getE();
 
  307           double Emin = numeric_limits<double>::max();
 
  308           double Emax = numeric_limits<double>::lowest();
 
  311             if (i->second < Emin) { Emin = i->second; }
 
  312             if (i->second > Emax) { Emax = i->second; }
 
  315           const double mu_range   = 
gWater(E);           
 
  317           double noise_likelihood = 0.0;                 
 
  318           int    number_of_hits   = 0;                   
 
  321             noise_likelihood += log10(
getP(i->getY0(), i->getN()));       
 
  322             number_of_hits   += i->getN();                                
 
  327           out.rbegin()->setE(E);
 
  329           out.rbegin()->setW(track->getW());
 
Auxiliary class to extract a subset of optical modules from a detector.
 
Data structure for detector geometry and calibration.
 
Data regression method for JFIT::JEnergy.
 
Basic data structure for L0 hit.
 
Reduced data structure for L1 hit.
 
#define DEBUG(A)
Message macros.
 
Direct access to module in detector data structure.
 
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
 
Detector subset without binary search functionality.
 
Router for direct addressing of module data in detector data structure.
 
Data structure for fit of energy.
 
Data structure for set of track fit results.
 
JFit & add(const int type)
Add event to history.
 
Data structure for fit of straight line paralel to z-axis.
 
JPosition3D & rotate(const JRotation3D &R)
Rotate.
 
const JClass_t & getReference() const
Get reference to object.
 
Auxiliary class to to determine muon energy.
 
JTRIGGER::JHitR1 hit_type
 
JTOOLS::JRange< JEnergy > JEnergyRange
 
JMuonEnergy(const JMuonEnergyParameters_t ¶meters, const JModuleRouter &router, const JSummaryRouter &summary, const std::string &pdfFile, const int debug=0)
Constructor.
 
std::vector< hit_type > buffer_type
 
const JModuleRouter & router
 
JEvt operator()(const KM3NETDAQ::JDAQEvent &event, const JEvt &in)
Fit function.
 
const JSummaryRouter & summary
 
JRegressor< JEnergy > JRegressor_t
 
Router for fast addressing of summary data in KM3NETDAQ::JDAQSummaryslice data structure as a functio...
 
bool hasSummaryFrame(const JDAQModuleIdentifier &module) const
Has summary frame.
 
const JDAQSummaryFrame & getSummaryFrame() const
Get default summary frame.
 
double getRate() const
Get default rate.
 
Template specialisation of L0 builder for JHitL0 data type.
 
Reduced data structure for L1 hit.
 
Data storage class for rate measurements of all PMTs in one module.
 
static const int JMUONENERGY
 
static const int JENERGY_NDF
number of degrees of freedom from JEnergy.cc
 
static const int JENERGY_ENERGY
uncorrected energy [GeV] from JEnergy.cc
 
static const int JENERGY_NOISE_LIKELIHOOD
log likelihood of every hit being K40 from JEnergy.cc
 
static const int JENERGY_CHI2
chi2 from JEnergy.cc
 
static const int JENERGY_MUON_RANGE_METRES
range of a muon with the reconstructed energy [m] from JEnergy.cc
 
static const int JENERGY_NUMBER_OF_HITS
number of hits from JEnergy.cc
 
static const int JSTART_LENGTH_METRES
distance between first and last hits in metres from JStart.cc
 
static const int JENERGY_MINIMAL_ENERGY
minimal energy [GeV] from JEnergy.cc
 
static const int JENERGY_MAXIMAL_ENERGY
maximal energy [GeV] from JEnergy.cc
 
JAxis3D getAxis(const Trk &track)
Get axis.
 
JDirection3D getDirection(const Vec &dir)
Get direction.
 
JPosition3D getPosition(const Vec &pos)
Get position.
 
double getNPE(const Hit &hit)
Get true charge of hit.
 
JMEstimator * getMEstimator(const int type)
Get M-Estimator.
 
double getP(const double expval, bool hit)
Get Poisson probability to observe a hit or not for given expectation value for the number of hits.
 
static const JGeaneWater gWater
Function object for energy loss of muon in sea water.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
bool is_valid(const json &js)
Check validity of JSon data.
 
bool getDAQStatus(const JDAQFrameStatus &frame, const JStatus &status)
Test status of DAQ.
 
bool getPMTStatus(const JStatus &status)
Test status of PMT.
 
static const int PMT_DISABLE
KM3NeT Data Definitions v3.4.0-8-ge14cb17 https://git.km3net.de/common/km3net-dataformat.
 
Auxiliary data structure for floating point format specification.
 
Template specialisation of class JModel to match hit with muon trajectory along z-axis.
 
Auxiliary class for simultaneously handling light yields and response of PMT.
 
Regressor function object for fit of muon energy.
 
Template definition of a data regressor of given model.
 
Data structure for fit parameters.
 
double roadWidth_m
road width [m]
 
double TMin_ns
minimal time w.r.t. Cherenkov hypothesis [ns]
 
double resolution
energy resolution [log10(GeV)]
 
int mestimator
M-estimator.
 
double EMin_log
minimal energy [log10(GeV)]
 
double TMax_ns
maximal time w.r.t. Cherenkov hypothesis [ns]
 
double ZMin_m
minimal z-position [m]
 
double EMax_log
maximal energy [log10(GeV)]
 
Auxiliary class for energy estimation.
 
JResult(const JEnergy &x=0.0, const double chi2=std::numeric_limits< double >::max())
Constructor.