1#include <BmnCSCStationSet.h>
2#include <BmnGemStripStationSet.h>
3#include <BmnSiliconStationSet.h>
15#ifndef BMNOFFLINEQASTEERING_H
16#define BMNOFFLINEQASTEERING_H 1
38 return make_pair(-1, -1);
51 if (period == 6 && setup ==
"SRC")
52 return make_pair(-1, -1);
53 return fBorderRuns.find(make_pair(period, setup))->second;
58 if (period == 6 && setup ==
"SRC") {
64 return fDetectors.find(make_pair(period, setup))->second;
69 if (period == 6 && setup ==
"SRC") {
75 return fTriggers.find(make_pair(period, setup))->second;
80 const Int_t nPeriods = 2;
81 const Int_t nSetups = 2;
83 Int_t runPeriods[nPeriods] = {6, 7};
84 TString setups[nSetups] = {
"BM@N",
"SRC"};
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]);
92 return make_pair(-1,
"");
98 if (type !=
"coordinate" && type !=
"time" && type !=
"calorimeter")
100 Int_t detCounter = 0;
101 for (
size_t iDet = 0; iDet <
GetDetectors(period, setup).size(); iDet++) {
104 if (type ==
"coordinate") {
107 }
else if (type ==
"time") {
110 }
else if (type ==
"calorimeter") {
125 TString gPathGemConfig = gPathConfig +
"/parameters/gem/XMLConfigs/";
126 TString gPathSilConfig = gPathConfig +
"/parameters/silicon/XMLConfigs/";
127 TString gPathCscConfig = gPathConfig +
"/parameters/csc/XMLConfigs/";
129 const Int_t nPeriods = 2;
130 const Int_t nSetups = 2;
132 Int_t runPeriods[nPeriods] = {6, 7};
133 TString setups[nSetups] = {
"BM@N",
"SRC"};
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)
145 if (iPeriod == 0 && iSetup == 0) {
148 confGEM =
"GemRunSpring2017.xml";
149 confSIL =
"SiliconRunSpring2017.xml";
150 }
else if (iPeriod == 1 && iSetup == 0) {
153 confGEM =
"GemRunSpring2018.xml";
154 confSIL =
"SiliconRunSpring2018.xml";
155 confCSC =
"CSCRunSpring2018.xml";
156 }
else if (iPeriod == 1 && iSetup == 1) {
159 confGEM =
"GemRunSRCSpring2018.xml";
160 confSIL =
"SiliconRunSRCSpring2018.xml";
161 confCSC =
"CSCRunSRCSpring2018.xml";
170 if (!confCSC.
IsNull() && !csc)
188 map<pair<Int_t, TString>, pair<Int_t, Int_t>>
fBorderRuns;
189 map<pair<Int_t, TString>, vector<TString>>
fDetectors;
190 map<pair<Int_t, TString>, vector<TString>>
fTriggers;
#define ClassDef(name, id)
R__EXTERN TSystem * gSystem
map< pair< Int_t, TString >, vector< TString > > fDetectors
void SetGeometriesByRunId(Int_t id, BmnGemStripStationSet *&gem, BmnSiliconStationSet *&silicon, BmnCSCStationSet *&csc)
vector< TString > fListReleases
pair< Int_t, Int_t > GetCanvasSizes(Int_t run, TString setup, TString name, TString dim)
Int_t GetNumberOfDets(Int_t period, TString setup, TString type)
vector< TString > GetListOfReleases()
vector< TString > GetDetectors(Int_t period, TString setup="BM@N")
vector< Double_t > GetAxisAttributes(TString)
virtual ~BmnOfflineQaSteering()
vector< vector< TString > > fCanvasAttributes
pair< Int_t, TString > GetRunAndSetupByRunId(Int_t id)
map< pair< Int_t, TString >, vector< TString > > fTriggers
vector< TString > GetTriggers(Int_t period, TString setup="BM@N")
map< pair< Int_t, TString >, pair< Int_t, Int_t > > fBorderRuns
void ParseSteerFile(TString f="qaOffline.dat")
pair< Int_t, Int_t > GetBorderRuns(Int_t period, TString setup="BM@N")
vector< TString > fListCanvases
vector< TString > GetListOfCanvases()
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const