59     JParser<> zap(
"Program to search for sets of consecutive hits on a given PMT that are equidistant in time.");
 
   66     zap[
'n'] = 
make_field(numberOfEvents) = JLimit::max();
 
   71   catch(
const exception& error) {
 
   72     FATAL(error.what() << endl);
 
   87     cerr << 
"FATAL ERROR. Could not open detector file '" << detectorFile << 
"'." << endl;
 
   95   TH1D h1 (
"MEvt", 
"", 50, 0.5, 50.5);
 
   97   TH2D h2 (
"FEvt", NULL, 
 
   98            stringRouter.size() + 0, -0.5, stringRouter.size() - 0.5,
 
  101   TH1D h3 (
"ML0" , 
"", 50, 0.5, 50.5);
 
  103   TH2D h4 (
"FL0", NULL, 
 
  104            stringRouter.size() + 0, -0.5, stringRouter.size() - 0.5,
 
  107   for (Int_t i = 1; i <= h2.GetXaxis()->GetNbins(); ++i) {
 
  108     h2.GetXaxis()->SetBinLabel(i, 
MAKE_CSTRING(stringRouter.at(i-1)));
 
  111   for (Int_t i = 1; i <= h2.GetXaxis()->GetNbins(); ++i) {
 
  112     h4.GetXaxis()->SetBinLabel(i, 
MAKE_CSTRING(stringRouter.at(i-1)));
 
  124       JHitBuffer& buffer = 
event->getHits<
JHit_t>();
 
  126       std::sort(buffer.begin(),buffer.end(),less<JDAQKeyHit>());
 
  128       for (JHitBuffer::const_iterator p = buffer.begin() ; p != buffer.end() ; ) {
 
  130         JHitBuffer::const_iterator q = p;
 
  133              (++q              != buffer.end()     && 
 
  134               q->getModuleID() == p->getModuleID() &&
 
  135               q->getPMT()      == p->getPMT()      &&
 
  136               q->getT()        == t1 + deltaT); 
 
  141         const JPMTChannel& channel = hitRouter.getPMTChannel(*p);
 
  143         if (d >= multiplicity) 
 
  144           h2.Fill((
double) stringRouter.getIndex(channel.
getString()), (
double) channel.
getFloor());
 
  165       for(JDAQTimeslice::iterator frame = slice->begin(); frame != slice->end() ; ++frame){
 
  167         const JModule&   module = moduleRouter.getModule(frame->getModuleID()); 
 
  168         JSuperFrame2D_t& buffer = JSuperFrame2D_t::demultiplex(*frame, module);
 
  170         for (JSuperFrame2D_t::iterator pmt = buffer.begin() ; pmt != buffer.end() ; ++pmt) {
 
  172           for (JHitBuffer::const_iterator p = pmt->begin() ; p != pmt->end() ;) {
 
  174             JHitBuffer::const_iterator q = p;
 
  177                  (++q              != pmt->end()     && 
 
  178                   q->getT()        == t1 + deltaT); 
 
  185             if (d >= multiplicity) 
 
  186               h4.Fill((
double) stringRouter.getIndex(channel.
getString()), (
double) channel.
getFloor());
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
#define MAKE_CSTRING(A)
Make C-string.
 
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
 
Simple wrapper around JModuleRouter class for direct addressing of PMT data in detector data structur...
 
int getFloor() const
Get floor number.
 
int getString() const
Get string number.
 
Router for direct addressing of module data in detector data structure.
 
Data structure for a composite optical module.
 
Auxiliary class to uniquely identify PMT readout channel.
 
Utility class to parse command line options.
 
General purpose class for object reading from a list of file names.
 
virtual bool hasNext() override
Check availability of next element.
 
2-dimensional frame with time calibrated data from one optical module.
 
unsigned int JTDC_t
leading edge [ns]
 
JTriggerCounter_t next()
Increment trigger counter.
 
floor_range getRangeOfFloors(const JDetector &detector)
Get range of floors.
 
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).
 
KM3NeT DAQ data structures and auxiliaries.
 
Router for mapping of string identifier to index.
 
Auxiliary class to set-up Hit.
 
Auxiliary class for defining the range of iterations of objects.