55int main(
int argc, 
char **argv)
 
   62  JLimit_t&      numberOfEvents = inputFile.getLimit();
 
   71    JParser<> zap(
"Example program to determine time slewing of L1 hits.");
 
   83  catch(
const exception& error) {
 
   84    FATAL(error.what() << endl);
 
  109  const double xmin = -25.0;   
 
  110  const double xmax = +25.0;   
 
  116    os << 
"M[" << setfill(
'0') << setw(2) << i << 
"]";
 
  118    H1D.push_back(
new TH1D(os.str().c_str(), NULL, nx, xmin, xmax));
 
  125  JSuperFrame2D <JHit>       buffer;     
 
  137    const Evt*       
event = ps;
 
  141    vector<Trk>::const_iterator muon = find_if(event->mc_trks.begin(), event->mc_trks.end(), 
is_muon);
 
  143    if (muon != event->mc_trks.end()) {
 
  152      buildL0(*tev, router, 
true, back_inserter(dataL0));
 
  153      buildL2(*tev, router, 
true, back_inserter(dataL2));
 
  159      dataL2.erase(unique(dataL2.begin(), dataL2.end(), equal_to<JDAQModuleIdentifier>()), dataL2.end());
 
  161      for (JDataL0_t::const_iterator hit = dataL0.begin(); hit != dataL0.end(); ++hit) {
 
  163        const double t0    = trk.
getT(*hit);
 
  164        const double t1    = converter.
getTime(hit->getT());
 
  166        H1D[1]->Fill(t1 - t0);
 
  170      for (JDataL2_t::const_iterator hit = dataL2.begin(); hit != dataL2.end(); ++hit) {
 
  172        const double t0    = trk.
getT(*hit);
 
  173        const double t1    = converter.
getTime(hit->begin()->getT());
 
  174        const size_t index = min(hit->size(), H1D.size() - 1);
 
  176        H1D[index]->Fill(t1 - t0);
 
  183  TF1 f1(
"f1", 
"[0]*exp(-0.5*(x-[1])*(x-[1])/([2]*[2])) + [3]");
 
  185  string option = 
"LL";
 
  198    Double_t sigma = 2.0;    
 
  201    for (
int i = 1; i != (*h1)->GetNbinsX(); ++i) {
 
  203      const Double_t x = (*h1)->GetBinCenter (i);
 
  204      const Double_t y = (*h1)->GetBinContent(i);
 
  212    f1.SetParameter(0, ymax);
 
  213    f1.SetParameter(1, x0);
 
  214    f1.SetParameter(2, sigma);
 
  215    f1.FixParameter(3, ymin);
 
  217    for (Int_t i = 0; i != f1.GetNpar(); ++i) {
 
  218      f1.SetParError(i, 0.0);
 
  224    (*h1)->Fit(&f1, option.c_str(), 
"same", x0 - 3 * sigma, x0 + 3 * sigma);
 
  227    cout << 
"\tt0.push_back(" << showpos << 
FIXED(4,2) << f1.GetParameter(1) << 
");" << endl;
 
 
Algorithms for hit clustering and sorting.
 
Data structure for detector geometry and calibration.
 
Basic data structure for L0 hit.
 
int main(int argc, char **argv)
 
Basic data structure for L1 hit.
 
General purpose messaging.
 
#define DEBUG(A)
Message macros.
 
Direct access to module in detector data structure.
 
Utility class to parse command line options.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
I/O formatting auxiliaries.
 
ROOT TTree parameter settings of various packages.
 
Basic data structure for time and time over threshold information of hit.
 
Synchronously read DAQ events and Monte Carlo events (and optionally other events).
 
Router for direct addressing of module data in detector data structure.
 
double getT(const JVector3D &pos) const
Get arrival time of Cherenkov light at given position.
 
Utility class to parse command line options.
 
counter_type getCounter() const
Get counter.
 
Auxiliary class to convert DAQ hit time to/from Monte Carlo hit time.
 
double getTime() const
Get DAQ/trigger time minus Monte Carlo time.
 
JTrack3E getTrack(const Trk &track)
Get track.
 
JPosition3D getPosition(const Vec &pos)
Get position.
 
bool is_muon(const Trk &track)
Test whether given track is a (anti-)muon.
 
Vec getOffset(const JHead &header)
Get offset.
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
Head getHeader(const JMultipleFileScanner_t &file_list)
Get Monte Carlo header.
 
bool timeSorter(const JHit_t &first, const JHit_t &second)
Compare two hits by weight.
 
KM3NeT DAQ data structures and auxiliaries.
 
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
 
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
 
Auxiliary data structure for floating point format specification.
 
General purpose class for multiple pointers.
 
Auxiliary class for defining the range of iterations of objects.
 
static counter_type max()
Get maximum counter value.
 
Auxiliary class to synchronously read DAQ events and Monte Carlo events (and optionally other events)...
 
virtual bool hasNext() override
Check availability of next element.
 
virtual const multi_pointer_type & next() override
Get next element.
 
Data structure for L2 parameters.
 
The Vec class is a straightforward 3-d vector, which also works in pyroot.
 
Auxiliary include file for time conversion between DAQ/trigger hit and Monte Carlo hit.