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.