Fit function. 
  198    {
  201 
  203 
  205 
  206      
  207 
  209 
  211 
  212      if (!in.empty()) {
  214      }
  215 
  217      
  219          
  220        double getZ()  const { return z; }
  221        double getP()
  const { 
return p; }
 
  222          
  223        double z;
  224        double p;
  225        double y1;
  226        double yx;
  227      };
  228        
  229      for (JEvt::const_iterator track = in.begin(); track != in.end(); ++track) {
  230        
  233        
  235 
  236        for (const auto& module : input.data) {
  237 
  239            
  240          pos.transform(R, tz.getPosition());
  241            
  243 
  244            const double z = pos.getZ()  -  pos.getX() / 
getTanThetaC();
 
  246 
  247            const double p = module.getProbability(rates_Hz.getMultiplesRates(), T_ns + t);
  248 
  249            double y1 = 0.0;
  250            double yx = 0.0;
  251 
  252            for (size_t i = 0; i != module->size(); ++i) {
  253 
  254              if (module.getStatus(i)) {
  255 
  256                JPMT pmt = 
module->getPMT(i);
 
  257                    
  259                    
  260                const double npe = this->getY1(pmt);
  261 
  262                y1 += npe;
  263 
  265                  yx += npe;
  266                }
  267              }
  268            }
  269 
  270            data.push_back({ z, p, y1, yx });
 
  271          }
  272        }
  273 
  274        double Zmin = 0.0;     
  275        double Zmax = 0.0;     
  276        double y1   = 0.0;     
  277        double yx   = 0.0;     
  278        
  280          
  282 
  283          vector<JHit_t>::const_iterator         q1 = start.find(
data. begin(), 
data. end());
 
  284          vector<JHit_t>::const_reverse_iterator q2 = start.find(
data.rbegin(), 
data.rend());
 
  285          
  286          if (q1 != 
data.end() && q2 != 
data.rend()) {
 
  287 
  288            vector<JHit_t>::const_iterator         
p1 = q1;  
if (
p1 != 
data. begin()) { --
p1; }
 
  289            vector<JHit_t>::const_reverse_iterator p2 = q2;  
if (p2 != 
data.rbegin()) { --p2; }
 
  290 
  291            Zmin = 0.5 * (
p1->getZ() + q1->getZ());
 
  292            Zmax = 0.5 * (p2->getZ() + q2->getZ());
  293 
  294            for (vector<JHit_t>::const_iterator i = q1; i != q2.base(); ++i) {
  295              y1 += i->y1;
  296              yx += i->yx;
  297            }
  298          }
  299        }
  300 
  302          
  303        fit.push_back(event());
  304 
  305        
  306 
  308          
  309        out.push_back(fit);
  310 
  311        
  312 
  313        out.rbegin()->setW(track->getW());
  319      }
  320 
  321      
  322 
  324 
  325      copy(input.in.begin(), input.in.end(), back_inserter(out));
 
  326      
  327      return out;
  328    }
Data structure for PMT geometry, calibration and status.
 
Data structure for fit of straight line paralel to z-axis.
 
void transform(const JAxis3D &axis)
Transform axis to reference frame of given axis.
 
Data structure for position in three dimensions.
 
JPosition3D & rotate(const JRotation3D &R)
Rotate.
 
JPMT_t getPMT() const
Get PMT.
 
unsigned char JPMT_t
PMT channel in FPGA.
 
static const int JMUONSTART
 
static const int JSTART_NPE_MIP_TOTAL
number of photo-electrons along the whole track from JStart.cc
 
static const int JPP_COVERAGE_POSITION
coverage of dynamic position calibration from any Jpp application
 
static const int JSTART_LENGTH_METRES
distance between projected positions on the track of optical modules for which the response does not ...
 
static const int JPP_COVERAGE_ORIENTATION
coverage of dynamic orientation calibration from any Jpp application
 
static const int JSTART_NPE_MIP_MISSED
number of photo-electrons missed from JStart.cc
 
void copy(const Head &from, JHead &to)
Copy header from from to to.
 
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.
 
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member.
 
double getKappaC()
Get average R-dependence of arrival time of Cherenkov light (a.k.a.
 
const double getInverseSpeedOfLight()
Get inverse speed of light.
 
double getTanThetaC()
Get average tangent of Cherenkov angle of water corresponding to group velocity.
 
const double getSpeedOfLight()
Get speed of light.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
JPosition3D getPosition(const JFit &fit)
Get position.
 
bool qualitySorter(const JFit &first, const JFit &second)
Comparison of fit results.
 
JDirection3D getDirection(const JFit &fit)
Get direction.
 
Auxiliary class to test history.
 
size_t numberOfPrefits
number of prefits
 
int Nmax2
maximal number for twofold observations
 
double Pmin1
minimal probability single observation
 
double Pmin2
minimal probability for twofold observations
 
Auxiliary class for start or end point evaluation.
 
Auxiliary class to set-up Hit.