54 JLimit_t& numberOfEvents = inputFile.getLimit();
67 JParser<> zap(
"Monitoring of PMT time-over-threshold distributions.");
83 catch(
const exception &error) {
92 if (!T_ns.is_valid()) {
93 FATAL(
"Invalid time window [ns] " << T_ns <<
endl);
96 if (selector == JDAQTimeslice ::Class_Name() ||
97 selector == JDAQTimesliceL1::Class_Name()) {
105 FATAL(
"No trigger parameters from input." <<
endl);
108 if ((selector == JDAQTimeslice ::Class_Name() && parameters.writeL1.prescale > 0) ||
109 (selector == JDAQTimesliceL1::Class_Name())) {
111 if (parameters.TMaxLocal_ns < T_ns.getUpperLimit()) {
112 FATAL(
"Option -T <T_ns> = " << T_ns.getUpperLimit() <<
" is larger than in the trigger " << parameters.TMaxLocal_ns <<
endl);
117 if (!multiplicity.is_valid()) {
FATAL(
"Invalid multiplicity " << multiplicity <<
endl); }
118 if ( multiplicity.getLowerLimit() < 1) {
FATAL(
"Invalid multiplicity " << multiplicity <<
endl); }
143 const double zmin = -0.5;
144 const double zmax = 256.5;
145 const int nz = (
int) ((zmax-zmin) / 1.0);
166 for (
counter_type counter = 0; in.hasNext() && counter != inputFile.getLimit(); ++counter) {
180 for (JDAQTimeslice::const_iterator frame = timeslice->begin(); frame != timeslice->end(); ++frame) {
182 if (router.
hasModule(frame->getModuleID())) {
185 const JModule&
module = router.getModule(frame->getModuleID());
187 JSuperFrame2D_t& buffer = JSuperFrame2D_t::demultiplex(*frame,
module);
189 buffer.preprocess(option, match);
191 JSuperFrame1D_t& data = JSuperFrame1D_t::multiplex(buffer);
195 for (JSuperFrame1D_t::const_iterator p = data.begin(); p != data.end(); ) {
197 JSuperFrame1D_t::const_iterator q = p;
204 while (++q != data.end() && q->getT() - p->getT() < T_ns.getUpperLimit()) {
207 const double dt = q->getT() - p->getT();
220 for (JSuperFrame1D_t::const_iterator i = p; i != q; ++i) {
223 h2->Fill(i->getPMT(), i->getToT());
226 t0[i->getPMT()] = i->getT();
int main(int argc, char **argv)
KM3NeT DAQ constants, bit handling, etc.
Data structure for detector geometry and calibration.
Basic data structure for L0 hit.
Dynamic ROOT object management.
Match operator for consecutive hits.
General purpose messaging.
#define DEBUG(A)
Message macros.
Direct access to module in detector data structure.
Scanning of objects from multiple files according a format that follows from the extension of each fi...
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Auxiliaries for pre-processing of hits.
I/O formatting auxiliaries.
#define MAKE_CSTRING(A)
Make C-string.
ROOT TTree parameter settings of various packages.
Router for direct addressing of module data in detector data structure.
bool hasModule(const JObjectID &id) const
Has module.
Data structure for a composite optical module.
Template definition of a multi-dimensional oscillation probability interpolation table.
Reduced data structure for L0 hit.
int getDetectorID() const
Get detector identifier.
int getRunNumber() const
Get run number.
static const char *const _2SToT
Histogram naming.
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
double getDot(const JFirst_t &first, const JSecond_t &second)
Get dot product of objects.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
bool putObject(TDirectory &dir, const TObject &object)
Write object to ROOT directory.
JTriggerParameters getTriggerParameters(const JMultipleFileScanner_t &file_list)
Get trigger parameters.
KM3NeT DAQ data structures and auxiliaries.
Transmission with position.
Auxiliary class to select ROOT class based on class name.
Auxiliary class for defining the range of iterations of objects.
static counter_type max()
Get maximum counter value.
Auxiliary class for specifying the way of pre-processing of hits.
static std::vector< JPreprocessor > getOptions()
Get options.