41int main(
int argc,
char **argv)
59 JParser<> zap(
"Program to search for sets of consecutive hits on a given PMT that are equidistant in time.");
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);
143 if (d >= multiplicity)
165 for(JDAQTimeslice::iterator frame = slice->begin(); frame != slice->end() ; ++frame){
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)
int main(int argc, char **argv)
Direct access to PMT data in detector data structure for DAQ hits.
Recording of objects on file according a format that follows from the file name extension.
Dynamic ROOT object management.
General purpose messaging.
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
#define MAKE_CSTRING(A)
Make C-string.
Direct access to string in detector data structure.
ROOT TTree parameter settings of various packages.
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...
JPMTChannel getPMTChannel(const JDAQKeyHit &hit) const
Get PMT channel.
int getFloor() const
Get floor number.
int getString() const
Get string number.
Router for direct addressing of module data in detector data structure.
const JModule & getModule(const JObjectID &id) const
Get module parameters.
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.
static counter_type max()
Get maximum counter value.