32int main(
int argc,
char **argv)
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());
86 const Evt*
event = ps;
88 vector<Hit>::const_iterator hit = find_if_not(event->mc_hits.cbegin(), event->mc_hits.cend(), &
is_noise);
90 vector<Trk>::const_iterator
primary = find_if(event->mc_trks.cbegin(), event->mc_trks.cend(), &
is_initialstate);
92 if (hit != event->mc_hits.cend() &&
primary != event->mc_trks.cend()) {
101 STATUS(
"event: " << setw(10) << in.getCounter() <<
'\r');
DEBUG(endl);
103 const Evt*
event = in.next();
105 vector<Hit>::const_iterator hit = find_if_not(event->mc_hits.cbegin(), event->mc_hits.cend(), &
is_noise);
107 vector<Trk>::const_iterator
primary = find_if(event->mc_trks.cbegin(), event->mc_trks.cend(), &
is_initialstate);
109 if (hit != event->mc_hits.cend() &&
primary != event->mc_trks.cend()) {
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);