27{
   29 
   33 
   34  try { 
   35 
   36    JParser<> zap(
"Auxiliary program to print JDomino statistics.");
 
   37    
   41    
   42    zap(argc, argv);
   43  }
   44  catch(const exception &error) {
   45    FATAL(error.what() << endl);
 
   46  }
   47 
   49 
   51 
   52  for (vector<string>::const_iterator file_name = inputFile.begin(); file_name != inputFile.end(); ++file_name) {
   53 
   54    TFile* in = TFile::Open(file_name->c_str(), "exist");
   55 
   56    if (in == NULL || !in->IsOpen()) {
   57      FATAL(
"File: " << *file_name << 
" not opened." << endl);
 
   58    }
   59 
   60    TH1D* job = dynamic_cast<TH1D*>(in->Get("job"));
   61 
   62    if (job == NULL) {
   63      FATAL(
"No job statistics.");
 
   64    }
   65 
   66    buffer.push_back(job);
   67  }
   68    
   69 
   70  if (!buffer.empty()) {
   71 
   73    
   75    
   76    for (vector<string>::const_iterator file_name = inputFile.begin(); file_name != inputFile.end(); ++file_name) {
   77      DEBUG(
' ' << setw(12) << getFilename(*file_name));
 
   78    }
   80    
   81    TH1D* h0 = buffer[0];
   82 
   83    for (int i0 = 1; i0 <= h0->GetNbinsX(); ++i0) {
   84 
   85      const Double_t 
x    = h0->GetBinCenter(i0);
 
   86      const int      type = (int) x;
   87      const Int_t    i1   = h0->FindBin(-x);
   88 
   89      if (combine) {
   90        if (type > 0) {
   91          break;
   92        }
   93      }
   94      
   95      double W = 0.0;
   96      
   98        W += (
combine ? (*h1)->GetBinContent(i0) + (*h1)->GetBinContent(i1) : (*h1)->GetBinContent(i0));
 
   99      }
  100      
  101      if (W > 0.0 || JPDB::getInstance().hasPDG(combine ? abs(type) : type)) {
  102 
  103        NOTICE(setw(6) << right << (combine ? abs(type) : type));
 
  104        
  105        try {
  106 
  107          JParticle particle = JPDB::getInstance().getPDG(combine ? abs(type) : type);
 
  108 
  110        }
  111        catch(const exception& error) {
  112 
  114        }
  115        
  117          NOTICE(noshowpos << 
' ' << 
FIXED(12,6) << (combine ? (*h1)->GetBinContent(i0) + (*h1)->GetBinContent(i1) : (*h1)->GetBinContent(i0)));
 
  118        }
  119 
  121      }
  122    }
  123  }
  124}
#define DEBUG(A)
Message macros.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
Utility class to parse command line options.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
Auxiliary data structure for sequence of same character.
 
Auxiliary data structure for floating point format specification.
 
Auxiliary class to handle particle name, codes and mass.
 
std::string name
name of particle
 
Auxiliary data structure for alignment of data.