82   using namespace KM3NETDAQ;
 
   85   typedef JParallelFileScanner_t::multi_pointer_type               multi_pointer_type;
 
   87   JParallelFileScanner_t   inputFile;
 
   98     JParser<> zap(
"Program to perform detector calibration using reconstructed muon trajectories.");
 
  102     zap[
'n'] = 
make_field(numberOfEvents)      = JLimit::max();
 
  109   catch(
const exception& error) {
 
  110     FATAL(error.what() << endl);
 
  118     WARNING(
"Number of prefits " << 
parameters.numberOfPrefits << 
" != " << 1 << endl);
 
  144   while (inputFile.hasNext()) {
 
  146     STATUS(
"event: " << setw(10) << inputFile.getCounter() << 
'\r'); 
DEBUG(endl);
 
  148     multi_pointer_type ps = inputFile.next();
 
  153     DEBUG(
"event: " << *tev << endl);
 
  155     summary.update(*tev);
 
  161     buildL0(*tev, router, 
true, back_inserter(dataL0));
 
  163     for (JEvt::const_iterator track = in->begin(); track != in->end(); ++track) {
 
  165       DEBUG(
"track: " << *track << endl);
 
  181       for (JDataL0_t::const_iterator i = dataL0.begin(); i != dataL0.end(); ++i) {
 
  183         double rate_Hz = summary.getRate(*i);
 
  185         if (rate_Hz <= 0.0) {
 
  186           rate_Hz = summary.getRate();
 
  200       sort(data.begin(), data.end(), compare);
 
  202       JDataW0_t::iterator __end = unique(data.begin(), data.end(), equal_to<JDAQPMTIdentifier>());
 
  213             << 
FIXED(12,3) << tz.getX()     << 
' ' 
  214             << 
FIXED(12,3) << tz.getY()     << 
' ' 
  215             << 
FIXED(12,3) << tz.getZ()     << 
' ' 
  216             << 
FIXED(12,3) << tz.getT()     << 
' '  
  217             << 
FIXED(12,1) << E_GeV         << 
' ' 
  218             << 
FIXED( 8,3) << track->getQ() << endl);
 
  237       for (JDataW0_t::const_iterator hit = data.begin(); hit != __end; ++hit) {
 
  239         const double x  = hit->getX() - tz.getX();
 
  240         const double y  = hit->getY() - tz.getY();
 
  241         const double z  = hit->getZ() - tz.getZ();
 
  242         const double R  = sqrt(x*x + y*y);
 
  250         const double theta = 
u.getTheta();
 
  251         const double phi   = fabs(
u.getPhi());                    
 
  254         const double E  = E_GeV;
 
  255         const double dt = T_ns.constrain(hit->getT()  -  t1);
 
  262         const double chi2 = H1.getChi2() - H0.getChi2();          
 
  265               << setw(10) << hit->getModuleID() << 
':' << setw( 2) << setfill(
'0') << hit->getPMTAddress() << setfill(
' ') << 
' ' 
  266               << 
FIXED(12,1) << E           << 
' ' 
  267               << 
FIXED( 9,1) << R           << 
' ' 
  268               << 
FIXED( 6,4) << theta       << 
' ' 
  269               << 
FIXED( 6,4) << phi         << 
' ' 
  270               << 
FIXED( 8,3) << dt          << 
' ' 
  271               << 
FIXED(12,3) << chi2 << endl);
 
  276       DEBUG(
"quality: " << 
FIXED(8,3) << Q << 
' ' << 
distance(data.begin(), __end) << endl);
 
  281       for (JDetector::const_iterator i = 
detector.begin(); i != 
detector.end(); ++i) {
 
  293           for (JModule::iterator pmt = module.begin(); pmt != module.end(); ++pmt) {
 
  295             const double R     = sqrt(pmt->getX()*pmt->getX() + pmt->getY()*pmt->getY());
 
  296             const double theta = pmt->getTheta();
 
  297             const double phi   = fabs(pmt->getTheta());
 
  298             const double y     = npe.calculate(1.0, R, theta, phi);   
 
  301                   << setw(10) << module.
getID() << 
':' << setw( 2) << setfill(
'0') << 
distance(module.begin(),pmt) << setfill(
' ') << 
' ' 
  302                   << 
FIXED(9,1)      << R      << 
' ' 
  303                   << 
FIXED(6,4)      << theta  << 
' ' 
  304                   << 
FIXED(6,4)      << phi    << 
' ' 
Utility class to parse command line options. 
 
Data structure for direction in three dimensions. 
 
Data structure for a composite optical module. 
 
double getQuality(const double chi2, const int NDF)
Get quality of fit. 
 
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance. 
 
Template specialisation of L0 builder for JHitL0 data type. 
 
Router for direct addressing of module data in detector data structure. 
 
*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
 
General purpose class for parallel reading of objects from a single file or multiple files...
 
Template specialisation of class JModel to match hit with muon trajectory along z-axis. 
 
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
 
then fatal Wrong number of arguments fi set_variable STRING $argv[1] set_variable DETECTORXY_TXT $WORKDIR $DETECTORXY_TXT tail read X Y CHI2 RMS printf optimum n $X $Y $CHI2 $RMS awk v Y
 
Auxiliary data structure for floating point format specification. 
 
void transform(const JRotation3D &R, const JVector3D &pos)
Transform position. 
 
Auxiliary class for defining the range of iterations of objects. 
 
JDirection3D getDirection(const Vec &dir)
Get direction. 
 
JFunction1D_t::result_type result_type
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
int getID() const 
Get identifier. 
 
JPosition3D getPosition(const Vec &pos)
Get position. 
 
File router for fast addressing of summary data. 
 
Data structure for fit parameters. 
 
then usage $script[distance] fi case set_variable R
 
Auxiliary class for a hit with background rate value. 
 
static const int JSTART_LENGTH_METRES
distance between first and last hits in metres from JStart.cc 
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file. 
 
void transform(const JRotation3D &R, const JVector3D &pos)
Transformation of geometry (see method JGEOMETRY3D::JPosition3D::transform(const JRotation3D&, const JVector3D&)). 
 
const double getInverseSpeedOfLight()
Get inverse speed of light. 
 
Data structure for fit of straight line paralel to z-axis. 
 
double getTanThetaC()
Get average tangent of Cherenkov angle of water corresponding to group velocity. 
 
Data structure for position in three dimensions. 
 
const JLimit & getLimit() const 
Get limit. 
 
do set_variable DETECTOR_TXT $WORKDIR detector
 
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 source JAcoustics sh $DETECTOR_ID typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
 
JPosition3D & rotate(const JRotation3D &R)
Rotate. 
 
Auxiliary data structure for floating point format specification. 
 
bool qualitySorter(const JRECONSTRUCTION::JFit &first, const JRECONSTRUCTION::JFit &second)
Comparison of fit results. 
 
then usage $script[input file[working directory[option]]] nWhere option can be E
 
#define DEBUG(A)
Message macros.