67int main(
int argc,
char **argv)
79 JLimit_t& numberOfEvents = inputFile.getLimit();
81 JCalibration_t calibrationFile;
90 JParser<> zap(
"Auxiliary program to convert fit results to Evt format.\
91 \nThe option -L corresponds to the name of a shared library \
92 \nand function so to rearrange the order of fit results.");
107 catch(
const exception& error) {
108 FATAL(error.what() << endl);
111 if (detectorFile ==
"" && !calibrationFile.empty()) {
112 FATAL(
"Missing detector file." << endl);
116 typedef JParallelFileScanner_t::multi_pointer_type multi_pointer_type;
120 if (detectorFile !=
"") {
129 unique_ptr<JDynamics> dynamics;
131 if (!calibrationFile.empty()) {
137 dynamics->load(calibrationFile);
139 catch(
const exception& error) {
155 }
catch(
const exception& error) {}
166 copy(buffer, header);
169 if (detectorFile !=
"") {
174 copy(buffer, header);
190 STATUS(
"Processing: " << *i << endl);
192 JParallelFileScanner_t in(*i);
195 in.setLimit(inputFile.getLimit());
208 }
catch(
const exception& error) {}
211 while (in.hasNext()) {
213 STATUS(
"event: " << setw(10) << in.getCounter() <<
'\r');
DEBUG(endl);
215 multi_pointer_type ps = in.next();
221 dynamics->update(*tev);
224 JFIT::JEvt::iterator __end = evt->end();
226 if (numberOfFits > 0) {
227 advance(__end = evt->begin(), min(numberOfFits, evt->size()));
231 partial_sort(evt->begin(), __end, evt->end(),
qualitySorter);
236 if (mc.getEntries() != 0) {
256 if (!pmt_router->empty()) {
260 if (pmt_router.
hasPMT(i->pmt_id)) {
266 i->dom_id =
id.
getID();
267 i->channel_id =
id.getPMTAddress();
273 miss_pmt[i->pmt_id] += 1;
278 if (!mod_router->empty()) {
295 i->pmt_id = pmt.
getID();
300 i->a = cpu.
getNPE(i->tot);
304 miss_mod[i->dom_id] += 1;
309 copy(evt->cbegin(), __end, out);
311 out.
id = ++number_of_events;
319 for (
const auto& i : miss_pmt) {
ERROR(
"Misses PMT " << setw(8) << i.first <<
' ' << setw(8) << i.second << endl); }
320 for (
const auto& i : miss_mod) {
ERROR(
"Misses module " << setw(8) << i.first <<
' ' << setw(8) << i.second << endl); }
ROOT TTree parameter settings.
Compass event data types.
ROOT TTree parameter settings.
Data structure for detector geometry and calibration.
Dynamic detector calibration.
Recording of objects on file according a format that follows from the file name extension.
General purpose messaging.
#define DEBUG(A)
Message macros.
Direct access to module in detector data structure.
PMT analogue signal processor.
Direct access to PMT in detector data structure.
Parallel scanning of objects from a single file or multiple files according a format that follows fro...
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
ROOT TTree parameter settings of various packages.
Basic data structure for time and time over threshold information of hit.
JAANET::start_run start_run
void push(T JHead::*pd)
Push given data member to Head.
const_iterator pull(T JHead::*pd) const
Pull given data member from Head.
JAANET::calibration calibration
const JCalibration & getCalibration() const
Get calibration.
Router for direct addressing of module data in detector data structure.
const JPMT & getPMT(const JPMTIdentifier &id) const
Get PMT parameters.
bool hasModule(const JObjectID &id) const
Has module.
Address of PMT in detector data structure.
Auxiliary class for map of PMT parameters.
const JPMTParameters & getPMTParameters(const JPMTIdentifier &id) const
Get PMT parameters.
Data structure for PMT parameters.
bool slewing
time slewing of analogue signal
Router for direct addressing of PMT data in detector data structure.
bool hasPMT(const JObjectID &id) const
Has PMT.
const JPMT & getPMT(const JPMTAddress &address) const
Get PMT.
JPMTIdentifier getIdentifier(const JPMTAddress &address) const
Get identifier of PMT.
const JPMTAddress & getAddress(const JObjectID &id) const
Get address of PMT.
Data structure for PMT geometry, calibration and status.
Data structure for set of track fit results.
int getID() const
Get identifier.
Utility class to parse command line options.
General purpose class for object reading from a list of file names.
General purpose class for parallel reading of objects from a single file or multiple files.
Template definition for direct access of elements in ROOT TChain.
static void setSlewing(const bool slewing)
Set slewing option.
double getToT() const
Get calibrated time over threshold of hit.
double getT() const
Get calibrated time of hit.
JTriggerCounter_t getCounter() const
Get trigger counter.
JDirection3D getDirection(const Vec &dir)
Get direction.
void copy(const Head &from, JHead &to)
Copy header from from to to.
JPosition3D getPosition(const Vec &pos)
Get position.
Vec getOffset(const JHead &header)
Get offset.
std::istream & read(std::istream &in, JTestSummary &summary)
Read test summary.
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).
bool qualitySorter(const JFit &first, const JFit &second)
Comparison of fit results.
counter_type advance(counter_type &counter, const counter_type value, const counter_type limit=std::numeric_limits< counter_type >::max())
Advance counter.
Long64_t counter_type
Type definition for counter.
double getLivetime(const std::string &file_name)
Get data taking live time.
Head getHeader(const JMultipleFileScanner_t &file_list)
Get Monte Carlo header.
const char * getTime()
Get current local time conform ISO-8601 standard.
KM3NeT DAQ data structures and auxiliaries.
int main(int argc, char **argv)
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
std::vector< Hit > hits
list of hits
int mc_run_id
MC run identifier.
std::vector< Hit > mc_hits
MC: list of MC truth hits.
std::vector< Trk > mc_trks
MC: list of MC truth tracks.
int id
offline event identifier
The Head class reflects the header of Monte-Carlo event files, which consists of keys (also referred ...
double livetime_s
Live time [s].
std::string buffer
General purpose name.
static const std::string dynamical()
static const std::string statical()
PMT analogue signal processor.
virtual double getNPE(const double tot_ns) const override
Get number of photo-electrons.
Dynamic detector calibration.
Auxiliary class for recursive type list generation.
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
General purpose sorter of fit results.
Auxiliary class for defining the range of iterations of objects.
static counter_type max()
Get maximum counter value.
The Vec class is a straightforward 3-d vector, which also works in pyroot.