52 int main(
int argc, 
char **argv)
 
   56   using namespace KM3NETDAQ;
 
   68     JParser<> zap(
"Example program to determine time slewing of L1 hits.");
 
   73     zap[
'n'] = 
make_field(numberOfEvents)      = JLimit::max();
 
   80   catch(
const exception& error) {
 
   81     FATAL(error.what() << endl);
 
  107   const double xmin = -25.0;   
 
  108   const double xmax = +25.0;   
 
  114     os << 
"M[" << setfill(
'0') << setw(2) << i << 
"]";
 
  116     H1D.push_back(
new TH1D(os.str().c_str(), NULL, nx, xmin, xmax));
 
  128   while (inputFile.hasNext()) {
 
  130     STATUS(
"event: " << setw(10) << inputFile.getCounter() << 
'\r'); 
DEBUG(endl);
 
  135     const Evt*       
event = ps;
 
  141     if (muon != event->mc_trks.end()) {
 
  150       buildL0(*tev, router, 
true, back_inserter(dataL0));
 
  151       buildL2(*tev, router, 
true, back_inserter(dataL2));
 
  155       sort(dataL2.begin(), dataL2.end(), timeSorter<JHitL2>);
 
  157       dataL2.erase(unique(dataL2.begin(), dataL2.end(), equal_to<JDAQModuleIdentifier>()), dataL2.end());
 
  159       for (JDataL0_t::const_iterator hit = dataL0.begin(); hit != dataL0.end(); ++hit) {
 
  161         const double t0    = trk.
getT(*hit);
 
  162         const double t1    = converter.
getTime(hit->getT());
 
  164         H1D[1]->Fill(t1 - t0);
 
  168       for (JDataL2_t::const_iterator hit = dataL2.begin(); hit != dataL2.end(); ++hit) {
 
  170         const double t0    = trk.
getT(*hit);
 
  171         const double t1    = converter.
getTime(hit->begin()->getT());
 
  172         const size_t index = min(hit->size(), H1D.size() - 1);
 
  174         H1D[index]->Fill(t1 - t0);
 
  181   TF1 f1(
"f1", 
"[0]*exp(-0.5*(x-[1])*(x-[1])/([2]*[2])) + [3]");
 
  183   string option = 
"LL";
 
  196     Double_t sigma = 2.0;    
 
  199     for (
int i = 1; i != (*h1)->GetNbinsX(); ++i) {
 
  201       const Double_t x = (*h1)->GetBinCenter (i);
 
  202       const Double_t y = (*h1)->GetBinContent(i);
 
  210     f1.SetParameter(0, ymax);
 
  211     f1.SetParameter(1, x0);
 
  212     f1.SetParameter(2, sigma);
 
  213     f1.FixParameter(3, ymin);
 
  218     (*h1)->Fit(&f1, option.c_str(), 
"same", x0 - 3 * sigma, x0 + 3 * sigma);
 
  221     cout << 
"\tt0.push_back(" << showpos << 
FIXED(4,2) << f1.GetParameter(1) << 
");" << endl;
 
Utility class to parse command line options. 
 
ROOT TTree parameter settings. 
 
JTrack3E getTrack(const Trk &track)
Get track. 
 
Algorithms for hit clustering and sorting. 
 
Synchronously read DAQ events and Monte Carlo events (and optionally other events). 
 
Template specialisation of L0 builder for JHitL0 data type. 
 
bool is_muon(const Trk &track)
Test whether given track is a (anti-)muon. 
 
Router for direct addressing of module data in detector data structure. 
 
Auxiliary class to synchronously read DAQ events and Monte Carlo events (and optionally other events)...
 
then for HISTOGRAM in h0 h1
 
double getTime() const 
Get DAQ/trigger minus Monte Carlo hit time. 
 
Auxiliary data structure for floating point format specification. 
 
Basic data structure for time and time over threshold information of hit. 
 
Data structure for detector geometry and calibration. 
 
Head getHeader(const JMultipleFileScanner_t &file_list)
Get Monte Carlo header. 
 
Basic data structure for L0 hit. 
 
Auxiliary class for defining the range of iterations of objects. 
 
I/O formatting auxiliaries. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
Template specialisation of L2 builder for JHitL2 data type. 
 
void load(const JString &file_name, JDetector &detector)
Load detector from input file. 
 
double getT(const JVector3D &pos) const 
Get arrival time of Cherenkov light at given position. 
 
General purpose messaging. 
 
Direct access to module in detector data structure. 
 
Data structure for L2 parameters. 
 
Utility class to parse command line options. 
 
2-dimensional frame with time calibrated data from one optical module. 
 
Auxiliary class to convert DAQ/trigger hit time to/from Monte Carlo hit time. 
 
const JLimit & getLimit() const 
Get limit. 
 
static const int NUMBER_OF_PMTS
Total number of PMTs in module. 
 
General purpose class for multiple pointers. 
 
Basic data structure for L1 hit. 
 
The Evt class respresent a Monte Carlo (MC) event as well as an offline event. 
 
#define DEBUG(A)
Message macros. 
 
int main(int argc, char *argv[])