Jpp
software
JSirene
JPrintDomino.cc
Go to the documentation of this file.
1
2
#include <string>
3
#include <iostream>
4
#include <iomanip>
5
#include <map>
6
7
#include "TROOT.h"
8
#include "TFile.h"
9
#include "TH1D.h"
10
11
#include "
JAAnet/JAAnetToolkit.hh
"
12
#include "
JAAnet/JPDB.hh
"
13
14
#include "
Jeep/JeepToolkit.hh
"
15
#include "
Jeep/JPrint.hh
"
16
#include "
Jeep/JParser.hh
"
17
#include "
Jeep/JMessage.hh
"
18
19
20
/**
21
* \file
22
*
23
* Auxiliary program to print JDomino.cc statistics.
24
* \author mdejong
25
*/
26
int
main
(
int
argc,
char
**argv)
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
}
FIXED
Auxiliary data structure for floating point format specification.
Definition:
JPrint.hh:481
JMessage.hh
JPrint.hh
JLANG::getInstance
T & getInstance(const T &object)
Get static instance from temporary object.
Definition:
JObject.hh:75
std::vector
Definition:
JSTDTypes.hh:12
JAANET::JParticle::name
std::string name
name of particle
Definition:
JPDB.hh:85
JPARSER::JParser
Utility class to parse command line options.
Definition:
JParser.hh:1493
NOTICE
#define NOTICE(A)
Definition:
JMessage.hh:64
JPP
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Definition:
JAAnetToolkit.hh:37
debug
int debug
debug level
Definition:
JSirene.cc:59
FILL
Auxiliary data structure for sequence of same character.
Definition:
JPrint.hh:361
WIDTH
Auxiliary data structure for alignment of data.
Definition:
JPrint.hh:267
JAAnetToolkit.hh
JEEP::getFilename
std::string getFilename(const std::string &file_name)
Get file name part, i.e.
Definition:
JeepToolkit.hh:86
JTOOLS::combine
JRange< T, JComparator_t > combine(const JRange< T, JComparator_t > &first, const JRange< T, JComparator_t > &second)
Combine ranges.
Definition:
JRange.hh:688
JParser.hh
JAANET::JParticle
Auxiliary class to handle particle name, codes and mass.
Definition:
JPDB.hh:33
make_field
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition:
JParser.hh:1954
DEBUG
#define DEBUG(A)
Message macros.
Definition:
JMessage.hh:62
std
Definition:
jaanetDictionary.h:36
JeepToolkit.hh
JPDB.hh
FATAL
#define FATAL(A)
Definition:
JMessage.hh:67
main
int main(int argc, char **argv)
Definition:
JPrintDomino.cc:26
Generated by
1.8.16