BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnOfflineQaSteering.cxx
Go to the documentation of this file.
1
#include "
BmnOfflineQaSteering.h
"
2
3
BmnOfflineQaSteering::BmnOfflineQaSteering
()
4
{
5
ParseSteerFile
();
6
}
7
8
BmnOfflineQaSteering::~BmnOfflineQaSteering
() {}
9
10
vector<Double_t>
BmnOfflineQaSteering::GetAxisAttributes
(
TString
histoName)
11
{
12
TString
gPathConfig =
gSystem
->Getenv(
"VMCWORKDIR"
);
13
TString
gPathFull = gPathConfig +
"/macro/steering/qaHisto.dat"
;
14
15
string
line;
16
ifstream f(gPathFull.
Data
(), ios::in);
17
18
vector<Double_t> axisAttr;
19
20
while
(!f.eof()) {
21
getline(f, line);
22
23
TString
currString(line);
24
25
if
(currString.
Contains
(histoName.
Data
())) {
26
TObjArray
* arr = currString.
Tokenize
(
" "
);
27
for
(
Int_t
iEle = 0; iEle < arr->
GetEntriesFast
(); iEle++) {
28
TString
str = ((
TObjString
*)arr->
UncheckedAt
(iEle))->GetString();
29
if
(str.Contains(
"nBins"
) || str.Contains(
"nBinsX"
) || str.Contains(
"nBinsY"
) || str.Contains(
"xLow"
)
30
|| str.Contains(
"xUp"
) || str.Contains(
"yLow"
) || str.Contains(
"yUp"
))
31
{
32
TString
tmp = ((
TObjString
*)arr->
UncheckedAt
(iEle + 1))->GetString();
33
axisAttr.push_back(tmp.
Atof
());
34
}
35
}
36
break
;
37
}
38
}
39
return
axisAttr;
40
}
41
42
void
BmnOfflineQaSteering::ParseSteerFile
(
TString
fileName)
43
{
44
TString
gPathConfig =
gSystem
->Getenv(
"VMCWORKDIR"
);
45
TString
gPathFull = gPathConfig +
"/macro/steering/"
+ fileName;
46
47
TString
buff =
""
;
48
string
line;
49
ifstream f(gPathFull.
Data
(), ios::in);
50
51
getline(f, line);
// Line with comments
52
getline(f, line);
// get number of canvases to be registered ...
53
f >> buff >>
fNCanvases
;
54
55
for
(
Int_t
iCanvas = 0; iCanvas <
fNCanvases
; iCanvas++) {
56
TString
setup, name;
57
Int_t
run, col1d, col2d, rows1d, rows2d;
58
const
Int_t
nSetups = 3;
59
60
getline(f, line);
61
for
(
Int_t
iSetup = 0; iSetup < nSetups; iSetup++) {
62
if
(iSetup == 0) {
63
f >> name >> run >> setup >> rows1d >> col1d >> rows2d >> col2d;
64
fListCanvases
.push_back(name);
65
}
else
66
f >> run >> setup >> rows1d >> col1d >> rows2d >> col2d;
67
vector<TString>
vec
= {
TString::Format
(
"%d"
, run),
TString::Format
(
"%s"
, setup.
Data
()),
68
TString::Format
(
"%s"
, name.
Data
()),
TString::Format
(
"%d"
, rows1d),
69
TString::Format
(
"%d"
, col1d),
TString::Format
(
"%d"
, rows2d),
70
TString::Format
(
"%d"
, col2d)};
71
72
fCanvasAttributes
.push_back(
vec
);
73
}
74
}
75
76
// Get period, exp. setup, start and finish run id, set of detectors and triggers ...
77
for
(
Int_t
iLine = 0; iLine < 3; iLine++) {
78
getline(f, line);
79
Int_t
period, start, finish, Ndets, Ntrigs;
80
TString
setup,
detector
, trigger;
81
f >> period >> setup >> start >> finish >> buff >> Ndets;
82
fBorderRuns
[make_pair(period, setup)] = make_pair(start, finish);
83
84
vector<TString> detectors;
85
86
for
(
Int_t
iDet = 0; iDet < Ndets; iDet++) {
87
f >>
detector
;
88
detectors.push_back(
detector
);
89
}
90
fDetectors
[make_pair(period, setup)] = detectors;
91
92
vector<TString> triggers;
93
f >> buff >> Ntrigs;
94
for
(
Int_t
iTrigger = 0; iTrigger < Ntrigs; iTrigger++) {
95
f >> trigger;
96
triggers.push_back(trigger);
97
}
98
fTriggers
[make_pair(period, setup)] = triggers;
99
}
100
101
// Get releases to be published ...
102
getline(f, line);
103
f >> buff >>
fNReleases
;
104
105
getline(f, line);
106
for
(
Int_t
iRelease = 0; iRelease <
fNReleases
; iRelease++) {
107
TString
releaseName;
108
if
(iRelease == 0)
109
f >> buff >> releaseName;
110
else
111
f >> releaseName;
112
fListReleases
.push_back(releaseName);
113
}
114
}
detector
detector
Definition
BmnLambdaEmbeddingQa.h:47
Int_t
int Int_t
gSystem
R__EXTERN TSystem * gSystem
BmnOfflineQaSteering::BmnOfflineQaSteering
BmnOfflineQaSteering()
Definition
BmnOfflineQaSteering.cxx:3
BmnOfflineQaSteering::fDetectors
map< pair< Int_t, TString >, vector< TString > > fDetectors
Definition
BmnOfflineQaSteering.h:189
BmnOfflineQaSteering::~BmnOfflineQaSteering
virtual ~BmnOfflineQaSteering()
Definition
BmnOfflineQaSteering.cxx:8
BmnOfflineQaSteering::fListReleases
vector< TString > fListReleases
Definition
BmnOfflineQaSteering.h:184
BmnOfflineQaSteering::fNReleases
Int_t fNReleases
Definition
BmnOfflineQaSteering.h:181
BmnOfflineQaSteering::GetAxisAttributes
vector< Double_t > GetAxisAttributes(TString)
Definition
BmnOfflineQaSteering.cxx:10
BmnOfflineQaSteering::fCanvasAttributes
vector< vector< TString > > fCanvasAttributes
Definition
BmnOfflineQaSteering.h:186
BmnOfflineQaSteering::fTriggers
map< pair< Int_t, TString >, vector< TString > > fTriggers
Definition
BmnOfflineQaSteering.h:190
BmnOfflineQaSteering::fBorderRuns
map< pair< Int_t, TString >, pair< Int_t, Int_t > > fBorderRuns
Definition
BmnOfflineQaSteering.h:188
BmnOfflineQaSteering::fNCanvases
Int_t fNCanvases
Definition
BmnOfflineQaSteering.h:180
BmnOfflineQaSteering::ParseSteerFile
void ParseSteerFile(TString f="qaOffline.dat")
Definition
BmnOfflineQaSteering.cxx:42
BmnOfflineQaSteering::fListCanvases
vector< TString > fListCanvases
Definition
BmnOfflineQaSteering.h:183
TObjArray
TObjArray::GetEntriesFast
Int_t GetEntriesFast() const
TObjArray::UncheckedAt
TObject * UncheckedAt(Int_t i) const
TObjString
TString
TString::Atof
Double_t Atof() const
TString::Data
const char * Data() const
TString::Tokenize
TObjArray * Tokenize(const TString &delim) const
TString::Format
static TString Format(const char *fmt,...)
TString::Contains
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
BmnOfflineQaSteering.h
vec
steering
BmnOfflineQaSteering.cxx
Generated on
for BmnRoot by
1.17.0