34{
37
39 JLimit_t& numberOfEvents = inputFile.getLimit();
41 string detectorFile;
43
44 try {
45
46 JParser<> zap(
"Example program to determine speed of PMT router.");
47
53
54 zap(argc, argv);
55 }
56 catch(const exception& error) {
57 FATAL(error.what() << endl);
58 }
59
60
62
63 try {
65 }
68 }
69
71
73
74 map_t zmap;
75
76 for (JDetector::const_iterator module =
detector.begin(); module !=
detector.end(); ++module) {
77 for (JModule::const_iterator pmt = module->begin(); pmt != module->end(); ++pmt) {
78 zmap[pmt->getID()] = module->getLocation();
79 }
80 }
81
83
84 JRange_t floor = JRange_t::DEFAULT_RANGE();
85 JRange_t string = JRange_t::DEFAULT_RANGE();
86
87 for (JDetector::const_iterator module =
detector.begin(); module !=
detector.end(); ++module) {
88 floor .
include(module->getFloor());
89 string.
include(module->getString());
90 }
91
92 NOTICE(
"String " <<
string.getLowerLimit() <<
" - " <<
string.getUpperLimit() << endl);
93 NOTICE(
"Floor " << floor .getLowerLimit() <<
" - " << floor .getUpperLimit() << endl);
94
95
97
98 TH2D h1("h1", NULL,
99 string.getLength() + 1,
100 string.getLowerLimit() - 0.5,
101 string.getUpperLimit() + 0.5,
105
106 TH2D h2("h2", NULL,
107 string.getLength() + 1,
108 string.getLowerLimit() - 0.5,
109 string.getUpperLimit() + 0.5,
113
116
118
120
121 const Evt*
event = inputFile.
next();
122
123 t1.start();
124
125 for (vector<Hit>::const_iterator hit = event->mc_hits.begin(); hit != event->mc_hits.end(); ++hit) {
126
127 const JLocation& pos = zmap[hit->pmt_id];
128
130 }
131
132 t1.stop();
133 }
135
137
139
141
142 const Evt*
event = inputFile.
next();
143
144 t2.start();
145
146 for (vector<Hit>::const_iterator hit = event->mc_hits.begin(); hit != event->mc_hits.end(); ++hit) {
147
148 const JLocation& pos = router.getParentModule(hit->pmt_id);
149
151 }
152
153 t2.stop();
154 }
156
157 t1.print(cout);
158 t2.print(cout);
159
160 out.Write();
161 out.Close();
162}
#define DEBUG(A)
Message macros.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Logical location of module.
int getFloor() const
Get floor number.
int getString() const
Get string number.
Router for direct addressing of PMT data in detector data structure.
Auxiliary class for CPU timing and usage.
Utility class to parse command line options.
General purpose class for object reading from a list of file names.
virtual void rewind() override
Rewind.
virtual bool hasNext() override
Check availability of next element.
counter_type getCounter() const
Get counter.
virtual const pointer_type & next() override
Get next element.
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).
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
Type definition of range.
Auxiliary class for defining the range of iterations of objects.
static counter_type max()
Get maximum counter value.