32 int main(
int argc,
char **argv)
36 using namespace KM3NETDAQ;
42 JAbstractHistogram_t
X;
43 JAbstractHistogram_t
Y;
48 JParser<> zap(
"Example program to histogram trigger efficiency.");
52 zap[
'X'] =
make_field(
X,
"Energy binning") = JAbstractHistogram_t(20, 1e-3, 100.0);
53 zap[
'Y'] =
make_field(
Y,
"Zenith-angle binning") = JAbstractHistogram_t(20, -1.0, 1.0);
58 catch(
const exception &error) {
59 FATAL(error.what() << endl);
68 X.getNumberOfBins(),
X.getLowerLimit(),
X.getUpperLimit(),
69 Y.getNumberOfBins(),
Y.getLowerLimit(),
Y.getUpperLimit());
71 X.getNumberOfBins(),
X.getLowerLimit(),
X.getUpperLimit(),
72 Y.getNumberOfBins(),
Y.getLowerLimit(),
Y.getUpperLimit());
74 X.getNumberOfBins(),
X.getLowerLimit(),
X.getUpperLimit(),
75 Y.getNumberOfBins(),
Y.getLowerLimit(),
Y.getUpperLimit());
80 while (inputFile.hasNext()) {
82 STATUS(
"event: " << setw(10) << inputFile.getCounter() <<
'\r');
DEBUG(endl);
86 const Evt*
event = ps;
92 if (hit != event->mc_hits.cend() && primary !=
event->mc_trks.cend()) {
93 h1.Fill(primary->E, primary->dir.z, 1.0);
101 STATUS(
"event: " << setw(10) <<
in.getCounter() <<
'\r');
DEBUG(endl);
103 const Evt*
event =
in.next();
109 if (hit != event->mc_hits.cend() && primary !=
event->mc_trks.cend()) {
110 h0.Fill(primary->E, primary->dir.z, 1.0);
116 for (Int_t
i = 1;
i <= h1.GetNbinsX(); ++
i) {
117 for (Int_t
j = 1;
j <= h1.GetNbinsY(); ++
j) {
119 const Double_t z1 = h1.GetBinContent(
i,
j);
120 const Double_t z0 = h0.GetBinContent(
i,
j);
124 const Double_t z3 = z1 / z0;
125 const Double_t w3 = sqrt(z1 * (z0 - z1) / (z0*z0*z0));
127 h2.SetBinContent(
i,
j, z3);
128 h2.SetBinError (
i,
j, w3);
131 ERROR(
"Bin " << h0.GetName() <<
"[" <<
i <<
"," <<
j <<
"] empty." << endl);
Utility class to parse command line options.
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).
Auxiliary class to synchronously read DAQ events and Monte Carlo events (and optionally other events)...
then fatal Wrong number of arguments fi set_variable STRING $argv[1] set_variable DETECTORXY_TXT $WORKDIR $DETECTORXY_TXT tail read X Y CHI2 RMS printf optimum n $X $Y $CHI2 $RMS awk v Y
bool is_noise(const Hit &hit)
Verify hit origin.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
bool is_initialstate(const Trk &track)
Test whether given track corresponds to an initial state particle.
General purpose messaging.
General purpose class for object reading from a list of file names.
Utility class to parse command line options.
no fit printf nominal n $STRING awk v X
General purpose class for multiple pointers.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] 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
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
#define DEBUG(A)
Message macros.