80 int main(
int argc,
char **argv)
84 using namespace KM3NETDAQ;
105 formulaMap[
i->second] = formulae[
i->first];
119 catch(
const exception& error) {
120 FATAL(error.what() << endl);
132 const TString expression =
i->second.GetExpFormula();
134 if (!expression.IsNull() &&
i->second.IsValid() &&
i->second.GetNdim() <= JEvtWeightFactorGSeaGen::NUMBER_OF_VARIABLES) {
136 i->second.configure(atmFlux);
140 }
else if (expression.IsNull()) {
142 fluxFunction.insert(
i->first, atmFlux);
146 FATAL(
"Invalid formula " << expression <<
" (number of dimensions must be < " <<
147 JEvtWeightFactorGSeaGen::NUMBER_OF_VARIABLES <<
"; see `JAANET::JEvtWeightFactorGSeaGen`).");
159 scanners.
setFlux(fluxFunction);
163 JHead commonHeader = scanners.begin()->getHeader();
172 commonHeader = commonHeader.getMatch(header);
174 eventHeaders.merge(header);
176 while (scanner->hasNext()) {
178 Evt*
event = scanner->next();
181 WARNING(
"Event " << scanner->getCounter() <<
" is empty; skip.");
185 const double weight = scanner->getWeight(*event);
190 if (!isfinite(weight)) {
192 WARNING(
"Non-finite reweighting factor " << weight <<
193 " for event " << scanner->getCounter() <<
"!");
200 const JUUID headerUUID = (uuid_is_null(event->header_uuid) == 0 ?
201 eventHeaders.getHeaderUUID(*event) : header.
UUID);
206 uuid_copy(event->header_uuid, headerUUID.
uuid);
213 copy(commonHeader, newHead);
217 outputFile.put(static_cast<const MultiHead&>(eventHeaders));
Utility class to parse command line options.
int main(int argc, char *argv[])
ROOT TTree parameter settings of various packages.
static const int WEIGHTLIST_RESCALED_EVENT_RATE
Rescaled event rate [s-1].
Auxiliary data structure to store multiple headers and bookkeep event-weight normalisations.
Recording of objects on file according a format that follows from the file name extension.
Utility class to parse parameter values.
Implementation of event-weight factor interface.
Simple data structure to support I/O of equations (see class JLANG::JEquation).
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
JEvtWeightFactorFunction< JFunction_t, JFlux > make_fluxFunction(const JFunction_t &flux)
Auxiliary method for creating an interface to a flux function.
Utility class to parse parameter values.
JEvtWeightFactorFunction< JAtmosphericNeutrinoFlux, JFlux > make_atmosphericNeutrinoFluxFunction(const std::string &oscProbTableFile, const JOscParametersInterface< double > &oscParameters)
Auxiliary method for creating an interface to an atmospheric neutrino flux function using an oscillat...
I/O formatting auxiliaries.
Auxiliary class for recursive type list generation.
void createUUID()
Create UUID if not already set.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Implementation of event-weight factor for multiple particle types.
JMultiHead getMultiHeader(const JMultipleFileScanner_t &file_list)
Get multi-header corresponding to a given file list.
General purpose messaging.
The Head class reflects the header of Monte-Carlo event files, which consists of keys (also referred ...
Scanning of objects from multiple files according a format that follows from the extension of each fi...
Auxiliary base class for list of file names.
Data structure for single set of oscillation parameters.
std::vector< filescanner_type >::iterator iterator
Data structure for set of track fit results.
General purpose class for object reading from a list of file names.
Utility class to parse command line options.
Definition of particle types.
void copy(const Head &from, JHead &to)
Copy header from from to to.
size_t setFlux(const int type, const JFlux &flux)
Set flux function for all MC-files corresponding to a given PDG code.
static const int WEIGHTLIST_NORMALISATION
Event rate normalisation.
const JHead & getHeader() const
Get header.
Auxiliary class for organising Monte Carlo file scanners associated with event weighters.
Auxiliary data structure for floating point format specification.
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
#define DEBUG(A)
Message macros.