BmnRoot
26.10.0-19-g6979a6c6
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnOfflineQaSteering.h
Go to the documentation of this file.
1
#include <
BmnCSCStationSet.h
>
2
#include <
BmnGemStripStationSet.h
>
3
#include <
BmnSiliconStationSet.h
>
4
#include <
TMath.h
>
5
#include <
TNamed.h
>
6
#include <
TObjArray.h
>
7
#include <
TObjString.h
>
8
#include <
TSystem.h
>
9
#include <
TVector3.h
>
10
#include <fstream>
11
#include <iostream>
12
#include <sstream>
13
#include <vector>
14
15
#ifndef BMNOFFLINEQASTEERING_H
16
#define BMNOFFLINEQASTEERING_H 1
17
18
using namespace
std;
19
using namespace
TMath
;
20
21
class
BmnOfflineQaSteering
:
public
TNamed
22
{
23
public
:
24
BmnOfflineQaSteering
();
25
// BmnOfflineQaSteering(TString) {};
26
27
virtual
~BmnOfflineQaSteering
();
28
29
pair<Int_t, Int_t>
GetCanvasSizes
(
Int_t
run,
TString
setup,
TString
name,
TString
dim
)
30
{
31
for
(
auto
it :
fCanvasAttributes
) {
32
if
(
TString
(it[0]).Atoi() == run && it[1] == setup && name.
Contains
(
TString
(it[2]).Data())) {
33
return
(
dim
==
"1d"
) ? make_pair(
TString
(it[3]).Atoi(),
TString
(it[4]).Atoi())
34
: (
dim
==
"2d"
) ? make_pair(
TString
(it[5]).Atoi(),
TString
(it[6]).Atoi())
35
: make_pair(-1, -1);
36
}
37
}
38
return
make_pair(-1, -1);
39
}
40
41
Int_t
GetNCanvases
() {
return
fNCanvases
; }
42
43
Int_t
GetNReleases
() {
return
fNReleases
; }
44
45
vector<TString>
GetListOfReleases
() {
return
fListReleases
; }
46
47
vector<TString>
GetListOfCanvases
() {
return
fListCanvases
; }
48
49
pair<Int_t, Int_t>
GetBorderRuns
(
Int_t
period,
TString
setup =
"BM@N"
)
50
{
51
if
(period == 6 && setup ==
"SRC"
)
52
return
make_pair(-1, -1);
53
return
fBorderRuns
.find(make_pair(period, setup))->second;
54
}
55
56
vector<TString>
GetDetectors
(
Int_t
period,
TString
setup =
"BM@N"
)
57
{
58
if
(period == 6 && setup ==
"SRC"
) {
59
// Configuration does not exist !!!
60
vector<TString> tmp;
61
tmp.resize(0);
62
return
tmp;
63
}
else
64
return
fDetectors
.find(make_pair(period, setup))->second;
65
}
66
67
vector<TString>
GetTriggers
(
Int_t
period,
TString
setup =
"BM@N"
)
68
{
69
if
(period == 6 && setup ==
"SRC"
) {
70
// Configuration does not exist !!!
71
vector<TString> tmp;
72
tmp.resize(0);
73
return
tmp;
74
}
else
75
return
fTriggers
.find(make_pair(period, setup))->second;
76
}
77
78
pair<Int_t, TString>
GetRunAndSetupByRunId
(
Int_t
id
)
79
{
80
const
Int_t
nPeriods = 2;
81
const
Int_t
nSetups = 2;
82
83
Int_t
runPeriods[nPeriods] = {6, 7};
84
TString
setups[nSetups] = {
"BM@N"
,
"SRC"
};
85
86
for
(
Int_t
iPeriod = 0; iPeriod < nPeriods; iPeriod++)
87
for
(
Int_t
iSetup = 0; iSetup < nSetups; iSetup++)
88
if
(
id
>=
GetBorderRuns
(runPeriods[iPeriod], setups[iSetup]).first
89
&&
id
<=
GetBorderRuns
(runPeriods[iPeriod], setups[iSetup]).second)
90
return
make_pair(runPeriods[iPeriod], setups[iSetup]);
91
92
return
make_pair(-1,
""
);
93
}
94
95
Int_t
GetNumberOfDets
(
Int_t
period,
TString
setup,
TString
type)
96
{
97
// Possible det. types are: coordinate, time, calorimeter
98
if
(type !=
"coordinate"
&& type !=
"time"
&& type !=
"calorimeter"
)
99
return
-1;
100
Int_t
detCounter = 0;
101
for
(
size_t
iDet = 0; iDet <
GetDetectors
(period, setup).size(); iDet++) {
102
TString
det =
GetDetectors
(period, setup)[iDet];
103
104
if
(type ==
"coordinate"
) {
105
if
(det.
Contains
(
"GEM"
) || det.
Contains
(
"SILICON"
) || det.
Contains
(
"CSC"
))
106
detCounter++;
107
}
else
if
(type ==
"time"
) {
108
if
(det.
Contains
(
"TOF400"
) || det.
Contains
(
"TOF700"
) || det.
Contains
(
"MWPC"
) || det.
Contains
(
"DCH"
))
109
detCounter++;
110
}
else
if
(type ==
"calorimeter"
) {
111
if
(det.
Contains
(
"ECAL"
) || det.
Contains
(
"ZDC"
))
112
detCounter++;
113
}
114
}
115
return
detCounter;
116
}
117
118
void
SetGeometriesByRunId
(
Int_t
id
,
119
BmnGemStripStationSet
*& gem,
120
BmnSiliconStationSet
*& silicon,
121
BmnCSCStationSet
*& csc)
122
{
123
TString
gPathConfig =
gSystem
->Getenv(
"VMCWORKDIR"
);
124
125
TString
gPathGemConfig = gPathConfig +
"/parameters/gem/XMLConfigs/"
;
126
TString
gPathSilConfig = gPathConfig +
"/parameters/silicon/XMLConfigs/"
;
127
TString
gPathCscConfig = gPathConfig +
"/parameters/csc/XMLConfigs/"
;
128
129
const
Int_t
nPeriods = 2;
130
const
Int_t
nSetups = 2;
131
132
Int_t
runPeriods[nPeriods] = {6, 7};
133
TString
setups[nSetups] = {
"BM@N"
,
"SRC"
};
134
135
TString
confGEM =
""
;
136
TString
confSIL =
""
;
137
TString
confCSC =
""
;
138
139
for
(
Int_t
iPeriod = 0; iPeriod < nPeriods; iPeriod++)
140
for
(
Int_t
iSetup = 0; iSetup < nSetups; iSetup++)
141
if
(
id
>=
GetBorderRuns
(runPeriods[iPeriod], setups[iSetup]).first
142
&&
id
<=
GetBorderRuns
(runPeriods[iPeriod], setups[iSetup]).second)
143
{
144
145
if
(iPeriod == 0 && iSetup == 0) {
146
// RUN6, BM@N
147
148
confGEM =
"GemRunSpring2017.xml"
;
149
confSIL =
"SiliconRunSpring2017.xml"
;
150
}
else
if
(iPeriod == 1 && iSetup == 0) {
151
// RUN7, BM@N
152
153
confGEM =
"GemRunSpring2018.xml"
;
154
confSIL =
"SiliconRunSpring2018.xml"
;
155
confCSC =
"CSCRunSpring2018.xml"
;
156
}
else
if
(iPeriod == 1 && iSetup == 1) {
157
// RUN7, SRC
158
159
confGEM =
"GemRunSRCSpring2018.xml"
;
160
confSIL =
"SiliconRunSRCSpring2018.xml"
;
161
confCSC =
"CSCRunSRCSpring2018.xml"
;
162
}
163
164
if
(!gem)
165
gem =
new
BmnGemStripStationSet
(gPathGemConfig + confGEM);
166
167
if
(!silicon)
168
silicon =
new
BmnSiliconStationSet
(gPathSilConfig + confSIL);
169
170
if
(!confCSC.
IsNull
() && !csc)
171
csc =
new
BmnCSCStationSet
(gPathCscConfig + confCSC);
172
}
173
}
174
175
vector<Double_t>
GetAxisAttributes
(
TString
);
176
177
private
:
178
void
ParseSteerFile
(
TString
f =
"qaOffline.dat"
);
179
180
Int_t
fNCanvases
;
181
Int_t
fNReleases
;
182
183
vector<TString>
fListCanvases
;
184
vector<TString>
fListReleases
;
185
186
vector<vector<TString>>
fCanvasAttributes
;
187
188
map<pair<Int_t, TString>, pair<Int_t, Int_t>>
fBorderRuns
;
// (period, setup) --> (start, finish)
189
map<pair<Int_t, TString>, vector<TString>>
fDetectors
;
// (period, setup) --> list of detectors
190
map<pair<Int_t, TString>, vector<TString>>
fTriggers
;
// (period, setup) --> list of triggers
191
192
ClassDef
(
BmnOfflineQaSteering
, 1);
193
};
194
195
#endif
BmnCSCStationSet.h
BmnGemStripStationSet.h
BmnSiliconStationSet.h
dim
const UInt_t dim
Definition
MpdVHLLEGenerator.h:22
Int_t
int Int_t
ClassDef
#define ClassDef(name, id)
TMath.h
TNamed.h
TObjArray.h
TObjString.h
TSystem.h
gSystem
R__EXTERN TSystem * gSystem
TVector3.h
BmnCSCStationSet
Definition
BmnCSCStationSet.h:14
BmnGemStripStationSet
Definition
BmnGemStripStationSet.h:15
BmnOfflineQaSteering::BmnOfflineQaSteering
BmnOfflineQaSteering()
Definition
BmnOfflineQaSteering.cxx:3
BmnOfflineQaSteering::GetNCanvases
Int_t GetNCanvases()
Definition
BmnOfflineQaSteering.h:41
BmnOfflineQaSteering::fTriggers
map< pair< Int_t, TString >, vector< TString > > fTriggers
Definition
BmnOfflineQaSteering.h:190
BmnOfflineQaSteering::~BmnOfflineQaSteering
virtual ~BmnOfflineQaSteering()
Definition
BmnOfflineQaSteering.cxx:8
BmnOfflineQaSteering::SetGeometriesByRunId
void SetGeometriesByRunId(Int_t id, BmnGemStripStationSet *&gem, BmnSiliconStationSet *&silicon, BmnCSCStationSet *&csc)
Definition
BmnOfflineQaSteering.h:118
BmnOfflineQaSteering::GetCanvasSizes
pair< Int_t, Int_t > GetCanvasSizes(Int_t run, TString setup, TString name, TString dim)
Definition
BmnOfflineQaSteering.h:29
BmnOfflineQaSteering::fCanvasAttributes
vector< vector< TString > > fCanvasAttributes
Definition
BmnOfflineQaSteering.h:186
BmnOfflineQaSteering::GetNumberOfDets
Int_t GetNumberOfDets(Int_t period, TString setup, TString type)
Definition
BmnOfflineQaSteering.h:95
BmnOfflineQaSteering::GetListOfReleases
vector< TString > GetListOfReleases()
Definition
BmnOfflineQaSteering.h:45
BmnOfflineQaSteering::GetDetectors
vector< TString > GetDetectors(Int_t period, TString setup="BM@N")
Definition
BmnOfflineQaSteering.h:56
BmnOfflineQaSteering::fNReleases
Int_t fNReleases
Definition
BmnOfflineQaSteering.h:181
BmnOfflineQaSteering::GetAxisAttributes
vector< Double_t > GetAxisAttributes(TString)
Definition
BmnOfflineQaSteering.cxx:10
BmnOfflineQaSteering::fListCanvases
vector< TString > fListCanvases
Definition
BmnOfflineQaSteering.h:183
BmnOfflineQaSteering::GetRunAndSetupByRunId
pair< Int_t, TString > GetRunAndSetupByRunId(Int_t id)
Definition
BmnOfflineQaSteering.h:78
BmnOfflineQaSteering::fBorderRuns
map< pair< Int_t, TString >, pair< Int_t, Int_t > > fBorderRuns
Definition
BmnOfflineQaSteering.h:188
BmnOfflineQaSteering::GetTriggers
vector< TString > GetTriggers(Int_t period, TString setup="BM@N")
Definition
BmnOfflineQaSteering.h:67
BmnOfflineQaSteering::fNCanvases
Int_t fNCanvases
Definition
BmnOfflineQaSteering.h:180
BmnOfflineQaSteering::ParseSteerFile
void ParseSteerFile(TString f="qaOffline.dat")
Definition
BmnOfflineQaSteering.cxx:42
BmnOfflineQaSteering::GetBorderRuns
pair< Int_t, Int_t > GetBorderRuns(Int_t period, TString setup="BM@N")
Definition
BmnOfflineQaSteering.h:49
BmnOfflineQaSteering::fListReleases
vector< TString > fListReleases
Definition
BmnOfflineQaSteering.h:184
BmnOfflineQaSteering::GetListOfCanvases
vector< TString > GetListOfCanvases()
Definition
BmnOfflineQaSteering.h:47
BmnOfflineQaSteering::GetNReleases
Int_t GetNReleases()
Definition
BmnOfflineQaSteering.h:43
BmnOfflineQaSteering::fDetectors
map< pair< Int_t, TString >, vector< TString > > fDetectors
Definition
BmnOfflineQaSteering.h:189
BmnSiliconStationSet
Definition
BmnSiliconStationSet.h:14
TNamed::TNamed
TNamed()
TString
TString::IsNull
Bool_t IsNull() const
TString::Contains
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
TMath
steering
BmnOfflineQaSteering.h
Generated on
for BmnRoot by
1.17.0