25int main(
int argc,
char **argv)
34 JParser<> zap(
"Auxiliary program to print JSirene job statistics.");
41 catch(
const exception &error) {
42 FATAL(error.what() << endl);
46 gErrorIgnoreLevel = kError;
48 TFile* in = TFile::Open(inputFile.c_str(),
"exist");
50 if (in == NULL || !in->IsOpen()) {
51 FATAL(
"File: " << inputFile <<
" not opened." << endl);
55 TH1D* job =
dynamic_cast<TH1D*
>(in->Get(
"job"));
58 FATAL(
"No job statistics.");
63 const int hit_types[] = {
64 DIRECT_LIGHT_FROM_MUON,
65 SCATTERED_LIGHT_FROM_MUON,
66 DIRECT_LIGHT_FROM_DELTARAYS,
67 SCATTERED_LIGHT_FROM_DELTARAYS,
68 DIRECT_LIGHT_FROM_EMSHOWER,
69 SCATTERED_LIGHT_FROM_EMSHOWER,
71 DIRECT_LIGHT_FROM_MUON + 20,
72 SCATTERED_LIGHT_FROM_MUON + 20,
73 DIRECT_LIGHT_FROM_DELTARAYS + 20,
74 SCATTERED_LIGHT_FROM_DELTARAYS + 20,
76 DIRECT_LIGHT_FROM_EMSHOWER + 40,
77 SCATTERED_LIGHT_FROM_EMSHOWER + 40,
87 zmap[100] =
"Number of photons";
88 zmap[200] =
"Number of errors";
89 zmap[300] =
"Number of misses";
92 NOTICE(
"Job summary" << endl);
94 NOTICE(
LEFT(40) <<
"Number of events input " <<
FIXED(13,0) << job->GetBinContent( 1) << endl);
95 NOTICE(
LEFT(40) <<
"Number of muons " <<
FIXED(13,0) << job->GetBinContent( 2) << endl);
96 NOTICE(
LEFT(40) <<
"Number of muons in can " <<
FIXED(13,0) << job->GetBinContent( 3) << endl);
97 NOTICE(
LEFT(40) <<
"Number of muons within road " <<
FIXED(13,0) << job->GetBinContent( 4) << endl);
98 NOTICE(
LEFT(40) <<
"Number of decayed particles (i.e. tau) " <<
FIXED(13,0) << job->GetBinContent( 6) << endl);
99 NOTICE(
LEFT(40) <<
"Number of detectable decayed particles " <<
FIXED(13,0) << job->GetBinContent( 7) << endl);
100 NOTICE(
LEFT(40) <<
"Number of electrons/hadrons " <<
FIXED(13,0) << job->GetBinContent( 8) << endl);
101 NOTICE(
LEFT(40) <<
"Number of detectable electrons/hadrons " <<
FIXED(13,0) << job->GetBinContent( 9) << endl);
102 NOTICE(
LEFT(40) <<
"Number of events output " <<
FIXED(13,0) << job->GetBinContent( 10) << endl);
103 NOTICE(
LEFT(40) <<
"Number of unknown particles " <<
FIXED(13,0) << job->GetBinContent( 21) << endl);
105 for (map_type::const_iterator entry = zmap.begin(); entry != zmap.end(); ++entry) {
107 for (
const int* i = hit_types; *i != -1; ++i) {
109 <<
LEFT (19) << entry->second <<
FILL(1)
112 <<
FIXED(13,0) << job->GetBinContent(entry->first + *i) << endl);