59{
63
65
67
70
75
78
80
82
83 try {
84
86
91
92 JParser<> zap(
"Example program to analyse track fit results from Evt formatted data.");
93
98 = "";
100 = "histogram.root";
110 = 2;
111
113 }
114 catch(const exception& error) {
116 }
117
119 FATAL(
"Cannot apply weighting to limited number of events.");
120 }
121
122
123
124
126
128 try {
130 }
133 }
134 }
135
137
138
139
140
142 const Trk& (*get_best_fit)(
const Evt&);
143
150 } else {
152 }
153
154
155
156
160
164
168
172
176
180
184
188
192
196
200
201
202
203
205
207
214
223
230
235
254
264
274
278
279
280
281
283
286 }
287
289
291
293
294 const Evt* evt = in.next();
295
296 const double weight = (
useWeights ? scanner->getWeight(*evt) : 1.0);
297
301
303
307
309
312
313 const double logE =
log10(
tb.getE());
316
320 continue;
321 }
322
323
324
326 RIGHT (15) << in.getCounter() <<
328
329
330
331 hz .Fill(
tb.getDZ(), weight);
332 he .Fill(logE, weight);
335
336 hzo.Fill(
tb.getDZ(), evt->overlays, weight);
337 hze.Fill(
tb.getDZ(), logE, weight);
338 heo.Fill(logE, evt->overlays, weight);
339
343
344 hxy.Fill(
tb.getX(),
tb.getY(), weight);
345
347
349
354 }
355
360
363
365
366 if (router.hasPMT(
hit->pmt_id)) {
367
368 const JPMT& pmt = router.getPMT(
hit->pmt_id);
369
370 const double t0 =
tb.getT(pmt);
372
373 ht .Fill(t1 - t0, weight);
374 hot.Fill(evt->overlays, t1 - t0, weight);
375 hzt.Fill(
tb.getDZ(), t1 - t0, weight);
377
379
382
387 }
388 }
389 }
390 }
391
395 }
396 }
397
399
400 out.Write();
401 out.Close();
402
403 return 0;
404}
#define DEBUG(A)
Message macros.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
#define MAKE_CSTRING(A)
Make C-string.
#define gmake_property(A)
macros to convert (template) parameter to JPropertiesElement object
Template specialisation for a map between event categories and event-weight factor products.
Router for direct addressing of PMT data in detector data structure.
Data structure for PMT geometry, calibration and status.
Utility class to parse parameter values.
Template definition of a multi-dimensional oscillation probability interpolation table.
double getBaseline(const double costh) const override final
Get baseline for a given cosine zenith angle.
static const int JGANDALF_BETA0_RAD
ile KM3NeT Data Definitions v3.6.2 https://git.km3net.de/common/km3net-dataformat
JTrack3E getTrack(const Trk &track)
Get track.
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
const JCylinder3D getMaximumContainmentVolume()
Forward function declarations.
const char * getTime()
Get current local time conform ISO-8601 standard.
KM3NeT DAQ data structures and auxiliaries.
const char *const track_t
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
std::vector< Hit > hits
list of hits
unsigned int overlays
number of overlaying triggered events
ULong64_t trig
non-zero if the hit is a trigger hit.
double t
hit time (from tdc+calibration or MC truth)
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
Auxiliary class for organising Monte Carlo file scanners associated with event weighters.
Auxiliary class for defining the range of iterations of objects.
static counter_type max()
Get maximum counter value.
Auxiliary base class for list of file names.
Auxiliary data structure for alignment of data.
Auxiliary data structure for floating point format specification.
The Trk class represents a Monte Carlo (MC) particle as well as a reconstructed track/shower.