CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Static Private Member Functions
L1GtPsbSetupConfigOnlineProd Class Reference

#include <L1GtPsbSetupConfigOnlineProd.h>

Inheritance diagram for L1GtPsbSetupConfigOnlineProd:
L1ConfigOnlineProdBase< L1GtPsbSetupRcd, L1GtPsbSetup > edm::ESProducer edm::ESProxyFactoryProducer edm::eventsetup::DataProxyProvider

Public Member Functions

 L1GtPsbSetupConfigOnlineProd (const edm::ParameterSet &)
 constructor More...
 
virtual boost::shared_ptr
< L1GtPsbSetup
newObject (const std::string &objectKey)
 public methods More...
 
 ~L1GtPsbSetupConfigOnlineProd ()
 destructor More...
 
- Public Member Functions inherited from L1ConfigOnlineProdBase< L1GtPsbSetupRcd, L1GtPsbSetup >
 L1ConfigOnlineProdBase (const edm::ParameterSet &)
 
boost::shared_ptr< L1GtPsbSetupproduce (const L1GtPsbSetupRcd &iRecord)
 
 ~L1ConfigOnlineProdBase ()
 
- Public Member Functions inherited from edm::ESProducer
 ESProducer ()
 
virtual ~ESProducer ()
 
- Public Member Functions inherited from edm::ESProxyFactoryProducer
 ESProxyFactoryProducer ()
 
virtual void newInterval (const eventsetup::EventSetupRecordKey &iRecordType, const ValidityInterval &iInterval)
 overrides DataProxyProvider method More...
 
virtual ~ESProxyFactoryProducer ()
 
- Public Member Functions inherited from edm::eventsetup::DataProxyProvider
 DataProxyProvider ()
 
const ComponentDescriptiondescription () const
 
bool isUsingRecord (const EventSetupRecordKey &) const
 
const KeyedProxieskeyedProxies (const EventSetupRecordKey &iRecordKey) const
 
void resetProxies (const EventSetupRecordKey &iRecordType)
 
void resetProxiesIfTransient (const EventSetupRecordKey &iRecordType)
 
void setAppendToDataLabel (const edm::ParameterSet &)
 
void setDescription (const ComponentDescription &iDescription)
 
std::set< EventSetupRecordKeyusingRecords () const
 
virtual ~DataProxyProvider ()
 

Private Member Functions

void addDefaultPsb (const std::string &psbColumn, std::vector< L1GtPsbConfig > &psbSetup) const
 Creates a default valued PSB from an empty foreign key in the GT_SETUP table. More...
 
void addPsbFromDb (const std::string &psbKey, std::vector< L1GtPsbConfig > &psbSetup) const
 Creates a new PSB object from a GT_PSB_SETUP entry and adds. More...
 
bool checkOneLineResult (const l1t::OMDSReader::QueryResults &result, const std::string &queryDescription) const
 Ensures that result contains exactly one line, returning false otherwise. More...
 
std::vector< bool > extractBoolVector (const l1t::OMDSReader::QueryResults &query, const std::string &prefix, const std::string &suffix, unsigned nColumns) const
 
template<class T >
void getRequiredValue (const l1t::OMDSReader::QueryResults &result, const std::string &colName, T &value) const
 
std::string numberedColumnName (const std::string &prefix, unsigned number, const std::string &suffix) const
 Concatenates prefix, number and suffix into a string. More...
 
std::string numberedColumnName (const std::string &prefix, unsigned number) const
 Special case for empty suffix. More...
 
unsigned numberFromString (const std::string &aString) const
 

Static Private Member Functions

static bool notPsbColumnName (const std::string &columnName)
 

Additional Inherited Members

- Public Types inherited from edm::eventsetup::DataProxyProvider
typedef std::vector< std::pair
< DataKey, boost::shared_ptr
< DataProxy > > > 
KeyedProxies
 
typedef std::vector
< EventSetupRecordKey
Keys
 
typedef std::map
< EventSetupRecordKey,
KeyedProxies
RecordProxies
 
- Static Public Member Functions inherited from edm::eventsetup::DataProxyProvider
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from L1ConfigOnlineProdBase< L1GtPsbSetupRcd, L1GtPsbSetup >
bool getObjectKey (const L1GtPsbSetupRcd &record, boost::shared_ptr< L1GtPsbSetup > data, std::string &objectKey)
 
- Protected Member Functions inherited from edm::ESProducer
template<typename T >
void setWhatProduced (T *iThis, const es::Label &iLabel=es::Label())
 
template<typename T >
void setWhatProduced (T *iThis, const char *iLabel)
 
template<typename T >
void setWhatProduced (T *iThis, const std::string &iLabel)
 
template<typename T , typename TDecorator >
void setWhatProduced (T *iThis, const TDecorator &iDec, const es::Label &iLabel=es::Label())
 
template<typename T , typename TReturn , typename TRecord >
void setWhatProduced (T *iThis, TReturn(T::*iMethod)(const TRecord &), const es::Label &iLabel=es::Label())
 
template<typename T , typename TReturn , typename TRecord , typename TArg >
void setWhatProduced (T *iThis, TReturn(T::*iMethod)(const TRecord &), const TArg &iDec, const es::Label &iLabel=es::Label())
 
- Protected Member Functions inherited from edm::ESProxyFactoryProducer
template<class TFactory >
void registerFactory (std::auto_ptr< TFactory > iFactory, const std::string &iLabel=std::string())
 
virtual void registerFactoryWithKey (const eventsetup::EventSetupRecordKey &iRecord, std::auto_ptr< eventsetup::ProxyFactoryBase > &iFactory, const std::string &iLabel=std::string())
 
virtual void registerProxies (const eventsetup::EventSetupRecordKey &iRecord, KeyedProxies &aProxyList)
 override DataProxyProvider method More...
 
- Protected Member Functions inherited from edm::eventsetup::DataProxyProvider
void eraseAll (const EventSetupRecordKey &iRecordKey)
 deletes all the Proxies in aStream More...
 
void invalidateProxies (const EventSetupRecordKey &iRecordKey)
 
template<class T >
void usingRecord ()
 
void usingRecordWithKey (const EventSetupRecordKey &)
 
- Protected Attributes inherited from L1ConfigOnlineProdBase< L1GtPsbSetupRcd, L1GtPsbSetup >
bool m_copyFromCondDB
 
cond::persistency::Session m_dbSession
 
bool m_forceGeneration
 
l1t::OMDSReader m_omdsReader
 

Detailed Description

Description: online producer for L1GtPsbSetup.

Implementation: <TODO: enter implementation details>

Author
: Vasile Mihai Ghete - HEPHY Vienna

Description: online producer for L1GtPsbSetup.

Implementation: <TODO: enter implementation details>

Author
: Vasile Mihai Ghete - HEPHY Vienna
: Thomas Themel - HEPHY Vienna

Definition at line 35 of file L1GtPsbSetupConfigOnlineProd.h.

Constructor & Destructor Documentation

L1GtPsbSetupConfigOnlineProd::L1GtPsbSetupConfigOnlineProd ( const edm::ParameterSet parSet)

constructor

Definition at line 27 of file L1GtPsbSetupConfigOnlineProd.cc.

L1GtPsbSetupConfigOnlineProd::~L1GtPsbSetupConfigOnlineProd ( )

destructor

Definition at line 35 of file L1GtPsbSetupConfigOnlineProd.cc.

35  {
36 
37  // empty
38 
39 }

Member Function Documentation

void L1GtPsbSetupConfigOnlineProd::addDefaultPsb ( const std::string &  psbColumn,
std::vector< L1GtPsbConfig > &  psbSetup 
) const
private

Creates a default valued PSB from an empty foreign key in the GT_SETUP table.

Definition at line 216 of file L1GtPsbSetupConfigOnlineProd.cc.

References numberFromString(), L1GtPsbConfig::PsbNumberLvdsGroups, L1GtPsbConfig::PsbSerLinkNumberChannels, L1GtPsbConfig::setGtBoardSlot(), L1GtPsbConfig::setGtPsbCh0SendLvds(), L1GtPsbConfig::setGtPsbCh1SendLvds(), L1GtPsbConfig::setGtPsbEnableRecLvds(), L1GtPsbConfig::setGtPsbEnableRecSerLink(), and makeLayoutFileForGui::toAdd.

Referenced by newObject().

217  {
218 
219  // deduce the assigned board from the column name
220  unsigned boardSlot = numberFromString(psbColumn);
221 
222  // create a default PsbConfig with the appropriate board slot and all links disabled
224  static std::vector<bool> allFalseLvds(L1GtPsbConfig::PsbNumberLvdsGroups, false);
225  static std::vector<bool> allFalseSerLink(L1GtPsbConfig::PsbSerLinkNumberChannels, false);
226 
227  toAdd.setGtBoardSlot(boardSlot);
228  toAdd.setGtPsbCh0SendLvds(false);
229  toAdd.setGtPsbCh1SendLvds(false);
230  toAdd.setGtPsbEnableRecLvds(allFalseLvds);
231  toAdd.setGtPsbEnableRecSerLink(allFalseSerLink);
232 
233  psbSetup.push_back(toAdd);
234 }
void setGtPsbEnableRecLvds(const std::vector< bool > &)
void setGtPsbCh0SendLvds(const bool &)
static const int PsbSerLinkNumberChannels
number of channels per board
Definition: L1GtPsbConfig.h:67
static const int PsbNumberLvdsGroups
number of LVDS groups per board
Definition: L1GtPsbConfig.h:64
void setGtPsbEnableRecSerLink(const std::vector< bool > &)
void setGtBoardSlot(const int &)
void setGtPsbCh1SendLvds(const bool &)
unsigned numberFromString(const std::string &aString) const
void L1GtPsbSetupConfigOnlineProd::addPsbFromDb ( const std::string &  psbKey,
std::vector< L1GtPsbConfig > &  psbSetup 
) const
private

Creates a new PSB object from a GT_PSB_SETUP entry and adds.

Definition at line 115 of file L1GtPsbSetupConfigOnlineProd.cc.

References l1t::OMDSReader::basicQuery(), checkOneLineResult(), extractBoolVector(), getRequiredValue(), i, L1ConfigOnlineProdBase< L1GtPsbSetupRcd, L1GtPsbSetup >::m_omdsReader, numberedColumnName(), L1GtPsbConfig::PsbNumberLvdsGroups, L1GtPsbConfig::PsbSerLinkNumberChannels, L1GtPsbConfig::setGtBoardSlot(), L1GtPsbConfig::setGtPsbCh0SendLvds(), L1GtPsbConfig::setGtPsbCh1SendLvds(), L1GtPsbConfig::setGtPsbEnableRecLvds(), L1GtPsbConfig::setGtPsbEnableRecSerLink(), l1t::OMDSReader::singleAttribute(), AlCaHLTBitMon_QueryRunRegistry::string, and makeLayoutFileForGui::toAdd.

Referenced by newObject().

116  {
117 
118  // SQL> describe gt_psb_setup;
119  // (heavily pruned to just the stuff we need to set up a GtPsbConfig)
120  // Name Null? Type
121  // ----------------------------------------- -------- ----------------------------
122  // ID NOT NULL VARCHAR2(256)
123  // BOARD_SLOT NUMBER(3)
124  // CH0_SEND_LVDS_NOT_DS92LV16 NUMBER(1)
125  // CH1_SEND_LVDS_NOT_DS92LV16 NUMBER(1)
126  // ENABLE_TT_LVDS_0 NUMBER(1)
127  // ENABLE_TT_LVDS_1 NUMBER(1)
128  // ENABLE_TT_LVDS_2 NUMBER(1)
129  // ENABLE_TT_LVDS_3 NUMBER(1)
130  // ENABLE_TT_LVDS_4 NUMBER(1)
131  // ENABLE_TT_LVDS_5 NUMBER(1)
132  // ENABLE_TT_LVDS_6 NUMBER(1)
133  // ENABLE_TT_LVDS_7 NUMBER(1)
134  // ENABLE_TT_LVDS_8 NUMBER(1)
135  // ENABLE_TT_LVDS_9 NUMBER(1)
136  // ENABLE_TT_LVDS_10 NUMBER(1)
137  // ENABLE_TT_LVDS_11 NUMBER(1)
138  // ENABLE_TT_LVDS_12 NUMBER(1)
139  // ENABLE_TT_LVDS_13 NUMBER(1)
140  // ENABLE_TT_LVDS_14 NUMBER(1)
141  // ENABLE_TT_LVDS_15 NUMBER(1)
142  // SERLINK_CH0_REC_ENABLE NUMBER(1)
143  // SERLINK_CH1_REC_ENABLE NUMBER(1)
144  // SERLINK_CH2_REC_ENABLE NUMBER(1)
145  // SERLINK_CH3_REC_ENABLE NUMBER(1)
146  // SERLINK_CH4_REC_ENABLE NUMBER(1)
147  // SERLINK_CH5_REC_ENABLE NUMBER(1)
148  // SERLINK_CH6_REC_ENABLE NUMBER(1)
149  // SERLINK_CH7_REC_ENABLE NUMBER(1)
150 
151  const std::string gtSchema = "CMS_GT";
152 
153  // setup up columns to query
154  std::vector<std::string> columnNames;
155 
156  static const std::string lvdPrefix = "ENABLE_TT_LVDS_";
157  static const std::string lvdSuffix = "";
158  static const std::string serPrefix = "SERLINK_CH";
159  static const std::string serSuffix = "_REC_ENABLE";
160  static const std::string boardSlotColumn = "BOARD_SLOT";
161  static const std::string ch0FormatColumn = "CH0_SEND_LVDS_NOT_DS92LV16";
162  static const std::string ch1FormatColumn = "CH1_SEND_LVDS_NOT_DS92LV16";
163 
164  columnNames.push_back(boardSlotColumn);
165  columnNames.push_back(ch0FormatColumn);
166  columnNames.push_back(ch1FormatColumn);
167 
168  for (unsigned i = 0; i < (unsigned) L1GtPsbConfig::PsbNumberLvdsGroups; ++i) {
169  columnNames.push_back(numberedColumnName(lvdPrefix, i, lvdSuffix));
170  }
171 
172  for (unsigned i = 0; i < (unsigned) L1GtPsbConfig::PsbSerLinkNumberChannels; ++i) {
173  columnNames.push_back(numberedColumnName(serPrefix, i, serSuffix));
174  }
175 
176  // execute database query
178  columnNames, gtSchema, "GT_PSB_SETUP", "GT_PSB_SETUP.ID", m_omdsReader.singleAttribute(
179  psbKey));
180 
181  // check if query was successful and we get only one line
182  if (!checkOneLineResult(psbQuery, "GT_PSB_SETUP query for PSB keys with ID = " + psbKey)) {
183  edm::LogError("L1-O2O")
184  << "Problem to get setup for PSB keys with ID = " << psbKey;
185  return; // FIXME: change method to bool?
186  }
187 
188  // extract values
189  int16_t boardSlot;
190 
191  getRequiredValue(psbQuery, boardSlotColumn, boardSlot);
192 
193  bool sendLvds0, sendLvds1;
194 
195  getRequiredValue(psbQuery, ch0FormatColumn, sendLvds0);
196  getRequiredValue(psbQuery, ch1FormatColumn, sendLvds1);
197 
198  const std::vector<bool>& enableRecLvds = extractBoolVector(
199  psbQuery, lvdPrefix, lvdSuffix, L1GtPsbConfig::PsbNumberLvdsGroups);
200  const std::vector<bool>& serLinkRecEnable = extractBoolVector(
201  psbQuery, serPrefix, serSuffix, L1GtPsbConfig::PsbSerLinkNumberChannels);
202 
203  // create new PSB object with db values
205 
206  toAdd.setGtBoardSlot(boardSlot);
207  toAdd.setGtPsbCh0SendLvds(sendLvds0);
208  toAdd.setGtPsbCh1SendLvds(sendLvds1);
209  toAdd.setGtPsbEnableRecLvds(enableRecLvds);
210  toAdd.setGtPsbEnableRecSerLink(serLinkRecEnable);
211 
212  // add to vector
213  psbSetup.push_back(toAdd);
214 }
bool checkOneLineResult(const l1t::OMDSReader::QueryResults &result, const std::string &queryDescription) const
Ensures that result contains exactly one line, returning false otherwise.
int i
Definition: DBlmapReader.cc:9
std::string numberedColumnName(const std::string &prefix, unsigned number, const std::string &suffix) const
Concatenates prefix, number and suffix into a string.
const QueryResults singleAttribute(const T &data) const
Definition: OMDSReader.h:295
void getRequiredValue(const l1t::OMDSReader::QueryResults &result, const std::string &colName, T &value) const
void setGtPsbEnableRecLvds(const std::vector< bool > &)
void setGtPsbCh0SendLvds(const bool &)
static const int PsbSerLinkNumberChannels
number of channels per board
Definition: L1GtPsbConfig.h:67
static const int PsbNumberLvdsGroups
number of LVDS groups per board
Definition: L1GtPsbConfig.h:64
void setGtPsbEnableRecSerLink(const std::vector< bool > &)
const QueryResults basicQuery(const std::vector< std::string > &columnNames, const std::string &schemaName, const std::string &tableName, const std::string &conditionLHS="", const QueryResults conditionRHS=QueryResults(), const std::string &conditionRHSName="") const
Definition: OMDSReader.cc:87
std::vector< bool > extractBoolVector(const l1t::OMDSReader::QueryResults &query, const std::string &prefix, const std::string &suffix, unsigned nColumns) const
void setGtBoardSlot(const int &)
void setGtPsbCh1SendLvds(const bool &)
bool L1GtPsbSetupConfigOnlineProd::checkOneLineResult ( const l1t::OMDSReader::QueryResults result,
const std::string &  queryDescription 
) const
private

Ensures that result contains exactly one line, returning false otherwise.

Definition at line 251 of file L1GtPsbSetupConfigOnlineProd.cc.

References l1t::OMDSReader::QueryResults::numberRows(), and l1t::OMDSReader::QueryResults::queryFailed().

Referenced by addPsbFromDb(), and newObject().

252  {
253 
254  // check if query was successful
255  if (result.queryFailed()) {
256  edm::LogError("L1-O2O") << "\n " << queryDescription + " failed: no match found!";
257  return false;
258 
259  } else if (result.numberRows() != 1) {
260  edm::LogError("L1-O2O") << "\nProblem with " << queryDescription << ": "
261  << ( result.numberRows() ) << " rows were returned, expected 1.";
262  return false;
263  }
264 
265  return true;
266 }
std::vector< bool > L1GtPsbSetupConfigOnlineProd::extractBoolVector ( const l1t::OMDSReader::QueryResults query,
const std::string &  prefix,
const std::string &  suffix,
unsigned  nColumns 
) const
private

A function to extract a vector of booleans from the GT database format (NUMBER(1) columns labeled prefix<nn>suffix).

Definition at line 236 of file L1GtPsbSetupConfigOnlineProd.cc.

References getRequiredValue(), i, numberedColumnName(), and query::result.

Referenced by addPsbFromDb().

238  {
239 
240  std::vector<bool> result(nColumns);
241 
242  for (unsigned i = 0; i < nColumns; ++i) {
243  bool dbValue;
244  getRequiredValue(query, numberedColumnName(prefix, i, suffix), dbValue);
245  result[i] = dbValue;
246  }
247 
248  return result;
249 }
int i
Definition: DBlmapReader.cc:9
std::string numberedColumnName(const std::string &prefix, unsigned number, const std::string &suffix) const
Concatenates prefix, number and suffix into a string.
void getRequiredValue(const l1t::OMDSReader::QueryResults &result, const std::string &colName, T &value) const
tuple result
Definition: query.py:137
template<class T >
void L1GtPsbSetupConfigOnlineProd::getRequiredValue ( const l1t::OMDSReader::QueryResults result,
const std::string &  colName,
T value 
) const
inlineprivate

A wrapper for OMDSReader::QueryResults::fillVariable that throws an exception when the field it accesses was NULL.

Definition at line 68 of file L1GtPsbSetupConfigOnlineProd.h.

References edm::hlt::Exception, and l1t::OMDSReader::QueryResults::fillVariable().

Referenced by addPsbFromDb(), and extractBoolVector().

69  {
70  if (!result.fillVariable(colName, value)) {
71  throw cms::Exception("NullValue") << "Required field " << colName
72  << " is NULL in database!";
73  }
74  }
bool fillVariable(const std::string &columnName, T &outputVariable) const
Definition: OMDSReader.h:311
boost::shared_ptr< L1GtPsbSetup > L1GtPsbSetupConfigOnlineProd::newObject ( const std::string &  objectKey)
virtual

public methods

Implements L1ConfigOnlineProdBase< L1GtPsbSetupRcd, L1GtPsbSetup >.

Definition at line 43 of file L1GtPsbSetupConfigOnlineProd.cc.

References addDefaultPsb(), addPsbFromDb(), l1t::OMDSReader::basicQuery(), checkOneLineResult(), l1t::OMDSReader::columnNames(), l1t::OMDSReader::QueryResults::fillVariable(), edm::isDebugEnabled(), LogTrace, L1ConfigOnlineProdBase< L1GtPsbSetupRcd, L1GtPsbSetup >::m_omdsReader, notPsbColumnName(), l1t::OMDSReader::singleAttribute(), and AlCaHLTBitMon_QueryRunRegistry::string.

44  {
45 
46  // shared pointer for L1GtPsbSetup
47  boost::shared_ptr<L1GtPsbSetup> pL1GtPsbSetup = boost::shared_ptr<L1GtPsbSetup>(
48  new L1GtPsbSetup());
49 
50  const std::string gtSchema = "CMS_GT";
51 
52  // the setup's contents, to be filled from database
53  std::vector<L1GtPsbConfig> psbConfigurations;
54 
55  // SELECT PSB_SLOT_*_SETUP_FK FROM CMS_GT.GT_SETUP WHERE GT_SETUP.ID = MyKey
56  std::vector<std::string> psbColumns = m_omdsReader.columnNames(gtSchema, "GT_SETUP");
57 
58  std::vector<std::string>::iterator newEnd = std::remove_if(
59  psbColumns.begin(), psbColumns.end(), &notPsbColumnName);
60  psbColumns.erase(newEnd, psbColumns.end());
61 
62  // select * from CMS_GT.GT_SETUP where GT_SETUP.ID = objectKey
64  psbColumns, gtSchema, "GT_SETUP", "GT_SETUP.ID",
65  m_omdsReader.singleAttribute(objectKey));
66 
67  // check if query was successful and produced one line only
68  if (!checkOneLineResult(psbKeys, "GT_SETUP query for PSB keys with ID = " + objectKey)) {
69  edm::LogError("L1-O2O")
70  << "Problem to get content of CMS_GT.GT_SETUP for GT_SETUP.ID key: "
71  << objectKey;
72  return pL1GtPsbSetup;
73  }
74 
75  // fill the psbConfigurations vector
76  for (std::vector<std::string>::const_iterator it = psbColumns.begin(); it != psbColumns.end(); ++it) {
77 
78  std::string psbKey;
79  psbKeys.fillVariable(*it, psbKey);
80 
81  if (psbKey.empty()) {
82  addDefaultPsb(*it, psbConfigurations);
83  } else {
84  addPsbFromDb(psbKey, psbConfigurations);
85  }
86  }
87 
88  // assign to the result object
89  pL1GtPsbSetup->setGtPsbSetup(psbConfigurations);
90 
91  if (edm::isDebugEnabled()) {
92  LogTrace("L1-O2O") << (*pL1GtPsbSetup) << std::endl;
93  }
94 
95  return pL1GtPsbSetup;
96 }
bool checkOneLineResult(const l1t::OMDSReader::QueryResults &result, const std::string &queryDescription) const
Ensures that result contains exactly one line, returning false otherwise.
bool isDebugEnabled()
static bool notPsbColumnName(const std::string &columnName)
bool fillVariable(const std::string &columnName, T &outputVariable) const
Definition: OMDSReader.h:311
const QueryResults singleAttribute(const T &data) const
Definition: OMDSReader.h:295
void addDefaultPsb(const std::string &psbColumn, std::vector< L1GtPsbConfig > &psbSetup) const
Creates a default valued PSB from an empty foreign key in the GT_SETUP table.
const QueryResults basicQuery(const std::vector< std::string > &columnNames, const std::string &schemaName, const std::string &tableName, const std::string &conditionLHS="", const QueryResults conditionRHS=QueryResults(), const std::string &conditionRHSName="") const
Definition: OMDSReader.cc:87
#define LogTrace(id)
void addPsbFromDb(const std::string &psbKey, std::vector< L1GtPsbConfig > &psbSetup) const
Creates a new PSB object from a GT_PSB_SETUP entry and adds.
std::vector< std::string > columnNames(const std::string &schemaName, const std::string &tableName) const
Definition: OMDSReader.cc:165
bool L1GtPsbSetupConfigOnlineProd::notPsbColumnName ( const std::string &  columnName)
staticprivate

A predicate to filter the column names of GT_SETUP for those that contain foreign keys to GT_PSB_SETUP.

Definition at line 100 of file L1GtPsbSetupConfigOnlineProd.cc.

References AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by newObject().

100  {
101 
102  static std::string startMatch("PSB_SLOT_");
103  static std::string endMatch("_SETUP_FK");
104 
105  unsigned len = columnName.size();
106 
107  // it's not a PSB column name if it's too short
108  return len <= ( startMatch.size() + endMatch.size() ) ||
109  // or the start doesn't match
110  columnName.substr(0, startMatch.size()) != startMatch ||
111  // or the end doesn't match
112  columnName.substr(len - endMatch.size(), endMatch.size()) != endMatch;
113 }
std::string L1GtPsbSetupConfigOnlineProd::numberedColumnName ( const std::string &  prefix,
unsigned  number,
const std::string &  suffix 
) const
private

Concatenates prefix, number and suffix into a string.

Definition at line 276 of file L1GtPsbSetupConfigOnlineProd.cc.

References createPayload::suffix.

Referenced by addPsbFromDb(), extractBoolVector(), and numberedColumnName().

277  {
278 
279  std::ostringstream colName;
280  colName << prefix << number << suffix;
281 
282  return colName.str();
283 }
std::string L1GtPsbSetupConfigOnlineProd::numberedColumnName ( const std::string &  prefix,
unsigned  number 
) const
private

Special case for empty suffix.

Definition at line 269 of file L1GtPsbSetupConfigOnlineProd.cc.

References numberedColumnName().

270  {
271 
272  return numberedColumnName(prefix, number, "");
273 
274 }
std::string numberedColumnName(const std::string &prefix, unsigned number, const std::string &suffix) const
Concatenates prefix, number and suffix into a string.
unsigned L1GtPsbSetupConfigOnlineProd::numberFromString ( const std::string &  aString) const
private

Definition at line 285 of file L1GtPsbSetupConfigOnlineProd.cc.

References edm::hlt::Exception, i, and query::result.

Referenced by addDefaultPsb().

285  {
286 
287  std::istringstream stream(aString);
288  unsigned result;
289 
290  for (unsigned i = 0; i < aString.size(); ++i) {
291  if (stream >> result) {
292  // we got a value
293  return result;
294  } else {
295  // clear error flags from failed >>
296  stream.clear();
297  // skip another character
298  stream.seekg(i);
299  }
300  }
301 
302  // throw here
303  throw cms::Exception("NumberNotFound") << "Failed to extract numeric value from " << aString;
304 }
int i
Definition: DBlmapReader.cc:9
tuple result
Definition: query.py:137