25 int 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[] = {
 
   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                 " << 
RIGHT(10) << (
int) job->GetBinContent(  1) << endl);
 
   95   NOTICE(
LEFT(40) << 
"Number of muons                        " << 
RIGHT(10) << (
int) job->GetBinContent(  2) << endl);
 
   96   NOTICE(
LEFT(40) << 
"Number of muons in can                 " << 
RIGHT(10) << (
int) job->GetBinContent(  3) << endl);
 
   97   NOTICE(
LEFT(40) << 
"Number of muons within road            " << 
RIGHT(10) << (
int) job->GetBinContent(  4) << endl);
 
   98   NOTICE(
LEFT(40) << 
"Number of decayed particles (i.e. tau) " << 
RIGHT(10) << (
int) job->GetBinContent(  6) << endl);
 
   99   NOTICE(
LEFT(40) << 
"Number of detectable decayed particles " << 
RIGHT(10) << (
int) job->GetBinContent(  7) << endl);
 
  100   NOTICE(
LEFT(40) << 
"Number of electrons/hadrons            " << 
RIGHT(10) << (
int) job->GetBinContent(  8) << endl);
 
  101   NOTICE(
LEFT(40) << 
"Number of detectable electrons/hadrons " << 
RIGHT(10) << (
int) job->GetBinContent(  9) << endl);
 
  102   NOTICE(
LEFT(40) << 
"Number of events output                " << 
RIGHT(10) << (
int) job->GetBinContent( 10) << endl);
 
  103   NOTICE(
LEFT(40) << 
"Number of unknown particles            " << 
RIGHT(10) << (
int) 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              << 
RIGHT(10) << (
int) job->GetBinContent(entry->first + *i) << endl);
 
Utility class to parse command line options. 
 
int main(int argc, char *argv[])
 
scattered light from EM shower 
 
Numbering scheme for PDF types. 
 
scattered light from muon 
 
I/O formatting auxiliaries. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
scattered light from delta-rays 
 
direct light from EM shower 
 
General purpose messaging. 
 
Auxiliary data structure for sequence of same character. 
 
direct light from delta-rays 
 
Utility class to parse command line options. 
 
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 source JAcoustics sh $DETECTOR_ID typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in