76   typedef JParallelFileScanner_t::multi_pointer_type               multi_pointer_type;
 
   78   JParallelFileScanner_t   inputFile;
 
   89     JParser<> zap(
"Program to evaluate hit probabilities.");
 
   93     zap[
'n'] = 
make_field(numberOfEvents)      = JLimit::max();
 
  100   catch(
const exception& error) {
 
  101     FATAL(error.what() << endl);
 
  134   while (inputFile.hasNext()) {
 
  136     STATUS(
"event: " << setw(10) << inputFile.getCounter() << 
'\r'); 
DEBUG(endl);
 
  138     multi_pointer_type ps = inputFile.next();
 
  143     DEBUG(
"event: " << *tev << endl);
 
  145     summary.update(*tev);
 
  151     buildL0(*tev, router, 
true, back_inserter(dataL0));
 
  153     for (JEvt::const_iterator track = in->begin(); track != in->end(); ++track) {
 
  155       DEBUG(
"track: " << *track << endl);
 
  171       for (JDataL0_t::const_iterator i = dataL0.begin(); i != dataL0.end(); ++i) {
 
  173         JHitW0 hit(*i, summary.getRate(*i));
 
  184       sort(
data.begin(), 
data.end(), compare);
 
  186       JDataW0_t::iterator __end = unique(
data.begin(), 
data.end(), equal_to<JDAQPMTIdentifier>());
 
  189       double E_GeV = parameters.
E_GeV;
 
  197             << 
FIXED(12,3) << tz.getX()     << 
' ' 
  198             << 
FIXED(12,3) << tz.getY()     << 
' ' 
  199             << 
FIXED(12,3) << tz.getZ()     << 
' ' 
  200             << 
FIXED(12,3) << tz.getT()     << 
' '  
  201             << 
FIXED(12,1) << E_GeV         << 
' ' 
  202             << 
FIXED( 8,3) << track->getQ() << endl);
 
  221       for (JDataW0_t::const_iterator hit = 
data.begin(); hit != __end; ++hit) {
 
  223         const double x  = hit->getX() - tz.getX();
 
  224         const double y  = hit->getY() - tz.getY();
 
  225         const double z  = hit->getZ() - tz.getZ();
 
  226         const double R  = sqrt(
x*
x + 
y*
y);
 
  234         const double theta = 
u.getTheta();
 
  235         const double phi   = fabs(
u.getPhi());                    
 
  238         const double E  = E_GeV;
 
  239         const double dt = T_ns.constrain(hit->getT()  -  t1);
 
  246         const double chi2 = H1.getChi2() - H0.getChi2();          
 
  249               << setw(10) << hit->getModuleID() << 
':' << setw( 2) << setfill(
'0') << hit->getPMTAddress() << setfill(
' ') << 
' ' 
  250               << 
FIXED(12,1) << E           << 
' ' 
  251               << 
FIXED( 9,1) << R           << 
' ' 
  252               << 
FIXED( 6,4) << theta       << 
' ' 
  253               << 
FIXED( 6,4) << phi         << 
' ' 
  254               << 
FIXED( 8,3) << dt          << 
' ' 
  255               << 
FIXED(12,3) << chi2 << endl);
 
  265       for (JDetector::const_iterator i = 
detector.begin(); i != 
detector.end(); ++i) {
 
  269         pos.transform(R, tz.getPosition());
 
  277           for (JModule::iterator pmt = module.begin(); pmt != module.end(); ++pmt) {
 
  279             const double R     = sqrt(pmt->getX()*pmt->getX() + pmt->getY()*pmt->getY());
 
  280             const double theta = pmt->getTheta();
 
  281             const double phi   = fabs(pmt->getPhi());
 
  282             const double y     = npe.calculate(1.0, R, theta, phi);   
 
  285                   << setw(10) << module.
getID() << 
':' << setw( 2) << setfill(
'0') << 
distance(module.begin(),pmt) << setfill(
' ') << 
' ' 
  286                   << 
FIXED(9,1)      << R      << 
' ' 
  287                   << 
FIXED(6,4)      << theta  << 
' ' 
  288                   << 
FIXED(6,4)      << phi    << 
' ' 
#define DEBUG(A)
Message macros.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
 
Router for direct addressing of module data in detector data structure.
 
Data structure for a composite optical module.
 
void transform(const JRotation3D &R, const JVector3D &pos)
Transformation of geometry (see method JGEOMETRY3D::JPosition3D::transform(const JRotation3D&,...
 
Data structure for fit of straight line paralel to z-axis.
 
Data structure for direction in three dimensions.
 
Data structure for position in three dimensions.
 
JPosition3D & rotate(const JRotation3D &R)
Rotate.
 
int getID() const
Get identifier.
 
Utility class to parse command line options.
 
Auxiliary class for a hit with background rate value.
 
General purpose class for parallel reading of objects from a single file or multiple files.
 
File router for fast addressing of summary data.
 
Template specialisation of L0 builder for JHitL0 data type.
 
static const int JSTART_LENGTH_METRES
distance between first and last hits in metres from JStart.cc
 
JDirection3D getDirection(const Vec &dir)
Get direction.
 
JPosition3D getPosition(const Vec &pos)
Get position.
 
double getQuality(const double chi2, const int NDF)
Get quality of fit.
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
 
const double getInverseSpeedOfLight()
Get inverse speed of light.
 
double getTanThetaC()
Get average tangent of Cherenkov angle of water corresponding to group velocity.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
bool qualitySorter(const JFit &first, const JFit &second)
Comparison of fit results.
 
KM3NeT DAQ data structures and auxiliaries.
 
Auxiliary data structure for floating point format specification.
 
Template specialisation of class JModel to match hit with muon trajectory along z-axis.
 
Auxiliary data structure for muon PDF.
 
JFunction1D_t::result_type result_type
 
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
 
Data structure for fit parameters.
 
double TTS_ns
transition-time spread [ns]
 
double TMin_ns
minimal time w.r.t. Cherenkov hypothesis [ns]
 
double roadWidth_m
road width [m]
 
double TMax_ns
maximal time w.r.t. Cherenkov hypothesis [ns]
 
double ZMax_m
maximal z-positon [m]
 
double ZMin_m
minimal z-positon [m]
 
double R_Hz
default rate [Hz]
 
size_t numberOfPrefits
number of prefits
 
Auxiliary class for defining the range of iterations of objects.
 
const JLimit & getLimit() const
Get limit.
 
Auxiliary data structure for floating point format specification.