31 const char*
const Mass_t =
"Mass";
32 const char*
const Volume_t =
"Volume";
42 int main(
int argc,
char **argv)
46 using namespace KM3NETDAQ;
58 JParser<> zap(
"Example program to histogram neutrino effective mass for triggered events.");
62 zap[
'X'] =
make_field(logx,
"Use logarithm of energy");
64 zap[
'O'] =
make_field(option,
"Result option") = Mass_t, Volume_t;
69 catch(
const exception &error) {
70 FATAL(error.what() << endl);
75 double Xmin = numeric_limits<double>::max();
76 double Xmax = numeric_limits<double>::lowest();
82 const JVolume volume(scanner->getHeader(), logx);
84 if (volume.getXmin() < Xmin) { Xmin = volume.
getXmin(); }
85 if (volume.getXmax() > Xmax) { Xmax = volume.getXmax(); }
94 NOTICE(
"Scanning file type " << scanner->getName() << endl);
95 DEBUG (header << endl);
97 const JEvtWeight& weighter = scanner->getEvtWeighter();
99 if (!header.
is_valid(&JHead::genvol)) {
100 FATAL(
"Mising normalisation in header." << endl);
105 if (header.
is_valid(&JHead::cut_nu))
112 STATUS(
"event: " << setw(10) <<
in.getCounter() <<
'\r');
DEBUG(endl);
114 const Evt*
event =
in.next();
117 double x = logx ?
log10(primary.
E) : primary.
E;
120 (logx ? log(10.0) * primary.
E * hm->GetBinWidth(1) : hm->GetBinWidth(1)) /
123 if (option == Mass_t) {
125 }
else if (option == Volume_t) {
129 hm[primary.
type]->Fill(x, y);
141 FATAL(error << endl);
Utility class to parse command line options.
bool is_valid(T JHead::*pd) const
Check validity of given data member in JHead.
Double_t getXmin() const
Get minimal abscissa value.
int main(int argc, char *argv[])
ROOT TTree parameter settings of various packages.
Synchronously read DAQ events and Monte Carlo events (and optionally other events).
double getVolume(const JType< JEvtWeightGSeaGen > &type, const Evt &evt)
Get volume of given event according given weighter.
double numberOfEvents
Number of events.
Auxiliary class to synchronously read DAQ events and Monte Carlo events (and optionally other events)...
const Trk & get_primary(const Evt &evt)
Get primary.
static const double DENSITY_SEA_WATER
Fixed environment values.
Dynamic ROOT object management.
double E
Energy [GeV] (either MC truth or reconstructed)
Auxiliary class for histogramming of effective volume.
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys...
Abstract base class for event weighing.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
set_variable E_E log10(E_{fit}/E_{#mu})"
static const double PI
Mathematical constants.
JRange_t cosT
Cosine zenith angle range.
General purpose messaging.
int type
MC: particle type in PDG encoding.
Auxiliary base class for list of file names.
std::vector< filescanner_type >::iterator iterator
then fatal The output file must have the wildcard in the e g root fi eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
Utility class to parse command line options.
const JHead & getHeader() const
Get header.
Auxiliary class for organising Monte Carlo file scanners associated with event weighters.
The Trk class represents a Monte Carlo (MC) particle as well as a reconstructed track/shower.
std::vector< filescanner_type >::const_iterator const_iterator
int numberOfBins
number of bins for average CDF integral of optical module
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
#define DEBUG(A)
Message macros.