50 friend inline bool operator<(
const entry_type& first,
const entry_type& second)
67 typedef double value_type;
76 inline value_type operator()(
const Evt& evt)
const
90int main(
int argc,
char **argv)
114 catch(
const exception& error) {
115 FATAL(error.what() << endl);
127 if (scanners.empty()) {
128 FATAL(
"File scanner set is empty");
133 const JHead& firstHeader = scanners.begin()->getHeader();
134 JHead commonHeader = firstHeader;
137 eventHeaders.
merge(firstHeader);
142 commonHeader = commonHeader.
getMatch(header);
144 eventHeaders.
insert(header);
147 eventHeaders.
merge();
154 copy(commonHeader, buffer);
170 for (
const auto& i : in) {
171 number_of_events += i.getEntries();
177 auto getEvt = [eventHeaders, scanners](
const entry_type& top) {
186 eventHeaders.
getHeaderUUID(out) : scanners[top.index].getHeader().UUID);
196 priority_queue<entry_type, deque<entry_type> > buffer;
198 for (
size_t i = 0; i != in.size(); ++i) {
200 if (in[i].hasNext()) {
202 buffer.push({i, *in[i].next()});
208 while (number_of_events != 0) {
210 STATUS(
"event: " << setw(10) << number_of_events <<
'\r');
DEBUG(endl);
212 const entry_type& top = buffer.top();
216 if (in[top.index].hasNext()) {
218 buffer.push({top.index, *in[top.index].next()});
226 while (!buffer.empty()) {
228 const entry_type& top = buffer.top();
Recording of objects on file according a format that follows from the file name extension.
int main(int argc, char **argv)
General purpose messaging.
#define DEBUG(A)
Message macros.
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
I/O formatting auxiliaries.
ROOT TTree parameter settings of various packages.
const JHead & getHeader() const
Get header.
JHead getMatch(const JHead &header) const
Get matching fields.
Data structure for set of track fit results.
Utility class to parse command line options.
General purpose class for object reading from a list of file names.
Base class for JTreeScanner.
Template definition for direct access of elements in ROOT TChain.
void copy(const Head &from, JHead &to)
Copy header from from to to.
bool operator<(const Head &first, const Head &second)
Less than operator.
JEvt getEvt(const JHead &header, const JModel &model)
Get event.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Long64_t counter_type
Type definition for counter.
JMultiHead getMultiHeader(const JMultipleFileScanner_t &file_list)
Get multi-header corresponding to a given file list.
KM3NeT DAQ data structures and auxiliaries.
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
std::vector< double > w
MC: Weights w[0]=w1, w[1]=w2, w[2]=w3 (see e.g. Tag list or km3net-dataformat/definitions)
TTimeStamp mc_event_time
MC: true generation time (UTC) of the event, (default: 01 Jan 1970 00:00:00)
uuid_t header_uuid
UUID of header containing the event-weight information.
The Head class reflects the header of Monte-Carlo event files, which consists of keys (also referred ...
Auxiliary data structure to store multiple headers and bookkeep event-weight normalisations.
bool insert(const JHead &header)
Insert the given header.
void merge(const JHead &header)
Merge the given header into this object.
double getNormalisation(const JUUID &UUID) const
Get normalisation for given header UUID.
JUUID getHeaderUUID(const Evt &event) const
Get the header UUID corresponding to the given event.
Auxiliary data structure to convert model to event.
Auxiliary class for recursive type list generation.
Auxiliary class for organising Monte Carlo file scanners associated with event weighters.
Auxiliary base class for list of file names.
static const int WEIGHTLIST_NORMALISATION
Event rate normalisation.