Jpp  15.0.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions
JPrintDomino.cc File Reference

Auxiliary program to print JDomino.cc statistics. More...

#include <string>
#include <iostream>
#include <iomanip>
#include <map>
#include "TROOT.h"
#include "TFile.h"
#include "TH1D.h"
#include "JAAnet/JAAnetToolkit.hh"
#include "JAAnet/JPDB.hh"
#include "Jeep/JeepToolkit.hh"
#include "Jeep/JPrint.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Detailed Description

Auxiliary program to print JDomino.cc statistics.

Author
mdejong

Definition in file JPrintDomino.cc.

Function Documentation

int main ( int  argc,
char **  argv 
)

Definition at line 26 of file JPrintDomino.cc.

27 {
28  using namespace std;
29 
30  vector<string> inputFile;
31  bool combine;
32  int debug;
33 
34  try {
35 
36  JParser<> zap("Auxiliary program to print JDomino statistics.");
37 
38  zap['f'] = make_field(inputFile);
39  zap['c'] = make_field(combine);
40  zap['d'] = make_field(debug) = 2;
41 
42  zap(argc, argv);
43  }
44  catch(const exception &error) {
45  FATAL(error.what() << endl);
46  }
47 
48  using namespace JPP;
49 
50  vector<TH1D*> buffer;
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 
72  const int WIDTH = 32;
73 
74  DEBUG(setw(6) << ' ' << ' ' << FILL(WIDTH, ' '));
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  }
79  DEBUG(endl);
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 
97  for (vector<TH1D*>::iterator h1 = buffer.begin(); h1 != buffer.end(); ++h1) {
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 
109  NOTICE(' ' << setw(WIDTH) << left << particle.name);
110  }
111  catch(const exception& error) {
112 
113  NOTICE(' ' << setw(WIDTH) << left << "unknown");
114  }
115 
116  for (vector<TH1D*>::iterator h1 = buffer.begin(); h1 != buffer.end(); ++h1) {
117  NOTICE(noshowpos << ' ' << FIXED(12,6) << (combine ? (*h1)->GetBinContent(i0) + (*h1)->GetBinContent(i1) : (*h1)->GetBinContent(i0)));
118  }
119 
120  NOTICE(endl);
121  }
122  }
123  }
124 }
Auxiliary data structure for alignment of data.
Definition: JManip.hh:231
Utility class to parse command line options.
Definition: JParser.hh:1500
then for HISTOGRAM in h0 h1
Definition: JMatrixNZ.sh:71
Auxiliary data structure for floating point format specification.
Definition: JManip.hh:446
T & getInstance(const T &object)
Get static instance from temporary object.
Definition: JObject.hh:75
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition: JParser.hh:1961
#define NOTICE(A)
Definition: JMessage.hh:64
int debug
debug level
Definition: JSirene.cc:63
Auxiliary data structure for sequence of same character.
Definition: JManip.hh:328
JRange< T, JComparator_t > combine(const JRange< T, JComparator_t > &first, const JRange< T, JComparator_t > &second)
Combine ranges.
Definition: JRange.hh:698
#define FATAL(A)
Definition: JMessage.hh:67
then usage $script< input_file >< detector_file > fi set_variable OUTPUT_DIR set_variable SELECTOR JDAQTimesliceL1 set_variable DEBUG case set_variable DEBUG
std::string getFilename(const std::string &file_name)
Get file name part, i.e. part after last JEEP::PATHNAME_SEPARATOR if any.
Definition: JeepToolkit.hh:88
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 CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
Definition: JCanberra.sh:41