62{
65
68 int numberOfEntries;
69 int numberOfOutliers;
70 map_type y_expand;
71 map_type y_margin;
73
74 try {
75
76 JParser<> zap(
"Auxiliary program to write test criteria to file.");
77
78 zap[
'f'] =
make_field(inputFile,
"<input file>:<object name>");
80 zap[
'N'] =
make_field(numberOfEntries,
"Minimal number of entries");
81 zap[
'O'] =
make_field(numberOfOutliers,
"Maximal number of outliers");
85
86 zap(argc, argv);
87 }
88 catch(const exception &error) {
89 FATAL(error.what() << endl);
90 }
91
92
94
95 if (out) {
96
98
99 if (dir == NULL) {
101 }
102
104
105 TIter iter(dir->GetListOfKeys());
106
107 for (TKey* key; (
key = (TKey*) iter.Next()) != NULL; ) {
108
109 const TString tag(
key->GetName());
110
111 DEBUG(
"Key: " << tag <<
" match = " << tag.Contains(regexp) << endl);
112
113
114
115 if (tag.Contains(regexp) &&
isTObject(key)) {
116
117 TGraph*
g1 =
dynamic_cast<TGraph*
>(
key->ReadObj());
118
120
122
123 const double extra = (
getValue(y_expand, tag, 0.0) * (range.getUpperLimit() - range.getLowerLimit()) +
125
126 out << setw(64) << left <<
g1->GetName() << right <<
' '
127 << setw(5) << numberOfEntries << ' '
128 << setw(3) << numberOfOutliers << ' '
129 <<
FIXED(15,3) << range.getLowerLimit() - extra <<
' '
130 <<
FIXED(15,3) << range.getUpperLimit() + extra << endl;
131 }
132 }
133 }
134 } else {
136 }
137}
#define DEBUG(A)
Message macros.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Double_t g1(const Double_t x)
Function.
Auxiliary class to handle file name, ROOT directory and object name.
TString getObjectName() const
Get object name.
TString getFullFilename() const
Get full file name, including path.
Utility class to parse command line options.
double getValue(const JScale_t scale)
Get numerical value corresponding to scale.
TDirectory * getDirectory(const JRootObjectID &id)
Get TDirectory pointer.
bool isTObject(const TKey *key)
Check if given key corresponds to a TObject.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary data structure for floating point format specification.
Empty structure for specification of parser element that is initialised (i.e. does not require input)...