27 m_oracleDB = iOracleDB;
28 m_pathCondDB = iPathCondDB;
32 bool SessionOpen =
false;
36 m_omdsReader->connect(m_oracleDB,m_pathCondDB);
39 if(!m_omdsReader->dbSession().connectionString().empty()){SessionOpen =
true;}
42 if (SessionOpen){out =
true;}
43 else {error = WARNING_DB_CONN_FAILED;}
53 map<string,WbMTriggerXSecFit>
out;
58 string qSchema =
"CMS_WBM";
61 vector<string> qStrings;
62 qStrings.push_back(
"BIT");
63 qStrings.push_back(
"NAME");
64 qStrings.push_back(
"PM1");
65 qStrings.push_back(
"P0");
66 qStrings.push_back(
"P1");
67 qStrings.push_back(
"P2");
71 if(paramResults.
queryFailed()){error = WARNING_DB_QUERY_FAILED;}
101 return getWbMTriggerXsecFits(
"LEVEL1_ALGO_CROSS_SECTION",error);
106 return getWbMTriggerXsecFits(
"LEVEL1_TECH_CROSS_SECTION",error);
112 int nCollidingBunches = 0;
116 string rtlSchema =
"CMS_RUNTIME_LOGGER";
117 string table =
"FILL_INITLUMIPERBUNCH";
118 string atribute1 =
"LHCFILL";
121 vector<std::string> qStrings ;
122 qStrings.push_back(
"BUNCH");
123 qStrings.push_back(
"BEAM1CONFIG");
124 qStrings.push_back(
"BEAM2CONFIG");
126 l1t::OMDSReader::QueryResults qResults = m_omdsReader->basicQuery(qStrings,rtlSchema,table,atribute1,m_omdsReader->singleAttribute(lhcFillNumber));
129 if(qResults.
queryFailed()){error = WARNING_DB_QUERY_FAILED;}
132 if(qResults.
numberRows() != 3564){error = WARNING_DB_INCORRECT_NBUNCHES;}
138 bool beam1config,beam2config;
143 if(beam1config && beam2config){nCollidingBunches++;}
148 return nCollidingBunches;
159 string rtlSchema =
"CMS_RUNTIME_LOGGER";
160 string table =
"FILL_INITLUMIPERBUNCH";
161 string atribute1 =
"LHCFILL";
164 vector<std::string> qStrings ;
165 qStrings.push_back(
"BUNCH");
166 qStrings.push_back(
"BEAM1CONFIG");
167 qStrings.push_back(
"BEAM2CONFIG");
169 l1t::OMDSReader::QueryResults qResults = m_omdsReader->basicQuery(qStrings,rtlSchema,table,atribute1,m_omdsReader->singleAttribute(lhcFillNumber));
171 if(qResults.
queryFailed()){error = WARNING_DB_QUERY_FAILED;}
174 if(qResults.
numberRows() != 3564){error = WARNING_DB_INCORRECT_NBUNCHES;}
179 int nCollidingBunches = 0;
183 bool beam1config,beam2config;
188 if(beam1config){bConfig.
beam1.push_back(
true);}
189 else {bConfig.
beam1.push_back(
false);}
191 if(beam2config){bConfig.
beam2.push_back(
true);}
192 else {bConfig.
beam2.push_back(
false);}
194 if(beam1config && beam2config){nCollidingBunches++;}
210 vector<bool> BunchStructure;
214 string rtlSchema =
"CMS_RUNTIME_LOGGER";
215 string table =
"FILL_INITLUMIPERBUNCH";
216 string atribute1 =
"LHCFILL";
219 vector<std::string> qStrings ;
220 qStrings.push_back(
"BUNCH");
221 qStrings.push_back(
"BEAM1CONFIG");
222 qStrings.push_back(
"BEAM2CONFIG");
224 l1t::OMDSReader::QueryResults qResults = m_omdsReader->basicQuery(qStrings,rtlSchema,table,atribute1,m_omdsReader->singleAttribute(lhcFillNumber));
226 if(qResults.
queryFailed()){error = WARNING_DB_QUERY_FAILED;}
229 if(qResults.
numberRows() != 3564){error = WARNING_DB_INCORRECT_NBUNCHES;}
234 bool beam1config,beam2config;
239 if(beam1config && beam2config){BunchStructure.push_back(
true);}
240 else {BunchStructure.push_back(
false);}
246 return BunchStructure;
253 vector<float> InitBunchLumi;
257 string rtlSchema =
"CMS_RUNTIME_LOGGER";
258 string table =
"FILL_INITLUMIPERBUNCH";
259 string atribute1 =
"LHCFILL";
262 vector<std::string> qStrings ;
263 qStrings.push_back(
"BUNCH");
264 qStrings.push_back(
"INITBUNCHLUMI");
266 l1t::OMDSReader::QueryResults qResults = m_omdsReader->basicQuery(qStrings,rtlSchema,table,atribute1,m_omdsReader->singleAttribute(lhcFillNumber));
268 if(qResults.
queryFailed()){error = WARNING_DB_QUERY_FAILED;}
271 if(qResults.
numberRows() != 3564){error = WARNING_DB_INCORRECT_NBUNCHES;}
280 InitBunchLumi.push_back(initbunchlumi);
285 return InitBunchLumi;
292 vector<double> RelativeBunchLumi;
296 string rtlSchema =
"CMS_RUNTIME_LOGGER";
297 string table =
"FILL_INITLUMIPERBUNCH";
298 string atribute1 =
"LHCFILL";
301 vector<std::string> qStrings ;
302 qStrings.push_back(
"BUNCH");
303 qStrings.push_back(
"INITBUNCHLUMI");
305 l1t::OMDSReader::QueryResults qResults = m_omdsReader->basicQuery(qStrings,rtlSchema,table,atribute1,m_omdsReader->singleAttribute(lhcFillNumber));
307 if(qResults.
queryFailed()){error = WARNING_DB_QUERY_FAILED;}
310 if(qResults.
numberRows() != 3564){error = WARNING_DB_INCORRECT_NBUNCHES;}
314 double InitTotalLumi = 0;
315 vector<float> InitBunchLumi;
323 InitTotalLumi += initbunchlumi;
324 InitBunchLumi.push_back(initbunchlumi);
328 for(
unsigned int i=0 ;
i<InitBunchLumi.size() ;
i++){
329 RelativeBunchLumi.push_back(InitBunchLumi[
i]/InitTotalLumi);
334 return RelativeBunchLumi;
344 case NO_ERROR: out =
"NO_ERROR";
break;
345 case WARNING_DB_CONN_FAILED: out =
"WARNING_DB_CONN_FAILED";
break;
346 case WARNING_DB_QUERY_FAILED: out =
"WARNING_DB_QUERY_FAILED";
break;
347 case WARNING_DB_INCORRECT_NBUNCHES: out =
"WARNING_DB_INCORRECT_NBUNCHES";
break;
348 default: out =
"UNKNOWN";
break;
std::vector< float > getInitBunchLumi(int lhcFillNumber, int &error)
bool connect(std::string iOracleDB, std::string iPathCondDB, int &error)
std::vector< bool > getBunchStructure(int lhcFillNumber, int &error)
std::map< std::string, WbMTriggerXSecFit > getWbMTechXsecFits(int &error)
BeamConfiguration getBeamConfiguration(int lhcFillNumber, int &error)
std::map< std::string, WbMTriggerXSecFit > getWbMTriggerXsecFits(std::string iTable, int &error)
bool fillVariableFromRow(const std::string &columnName, int rowNumber, T &outputVariable) const
int getNumberCollidingBunches(int lhcFillNumber, int &error)
std::map< std::string, WbMTriggerXSecFit > getWbMAlgoXsecFits(int &error)
std::vector< bool > beam2
std::string enumToStringError(int)
std::vector< bool > beam1
std::vector< double > getRelativeBunchLumi(int lhcFillNumber, int &error)