CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes
DTUserKeyedConfigHandler Class Reference

#include <DTUserKeyedConfigHandler.h>

Inheritance diagram for DTUserKeyedConfigHandler:
popcon::PopConSourceHandler< DTCCBConfig >

Public Member Functions

 DTUserKeyedConfigHandler (const edm::ParameterSet &ps)
 
void getNewObjects () override
 
std::string id () const override
 
void setList (const cond::persistency::KeyList *list)
 
 ~DTUserKeyedConfigHandler () override
 
- Public Member Functions inherited from popcon::PopConSourceHandler< DTCCBConfig >
void convertFromOld ()
 
SummarydummySummary (typename OldContainer::value_type const &) const
 
void initialize (const cond::persistency::Session &dbSession, cond::TagInfo_t const &tagInfo, cond::LogDBEntry_t const &logDBEntry)
 
Ref lastPayload () const
 
cond::LogDBEntry_t const & logDBEntry () const
 
std::pair< Container const *, std::string const > operator() (const cond::persistency::Session &session, cond::TagInfo_t const &tagInfo, cond::LogDBEntry_t const &logDBEntry) const
 
 PopConSourceHandler ()
 
Container const & returnData ()
 
void sort ()
 
cond::TagInfo_t const & tagInfo () const
 
std::string const & userTextLog () const
 
virtual ~PopConSourceHandler ()
 

Private Member Functions

void chkConfigList (const std::map< int, bool > &userBricks)
 
bool userDiscardedKey (int key)
 

Static Private Member Functions

static bool sameConfigList (const std::vector< DTConfigKey > &cfgl, const std::vector< DTConfigKey > &cfgr)
 

Private Attributes

std::string brickContainer
 
DTCCBConfigccbConfig
 
cond::persistency::ConnectionPool connection
 
int dataRun
 
std::string dataTag
 
std::shared_ptr< coral::ISessionProxy > isession
 
const cond::persistency::KeyListkeyList = 0
 
std::string onlineAuthentication
 
int onlineAuthSys
 
std::string onlineConnect
 
std::vector< DTConfigKeyuserConf
 
bool writeData
 
bool writeKeys
 

Additional Inherited Members

- Public Types inherited from popcon::PopConSourceHandler< DTCCBConfig >
typedef std::vector< Triplet > Container
 
typedef std::vector< std::pair< DTCCBConfig *, cond::Time_t > > OldContainer
 
typedef PopConSourceHandler< DTCCBConfigself
 
typedef cond::Summary Summary
 
typedef cond::Time_t Time_t
 
typedef DTCCBConfig value_type
 
- Protected Member Functions inherited from popcon::PopConSourceHandler< DTCCBConfig >
int add (value_type *payload, Summary *summary, Time_t time)
 
cond::persistency::SessiondbSession () const
 
- Protected Attributes inherited from popcon::PopConSourceHandler< DTCCBConfig >
OldContainer m_to_transfer
 
std::string m_userTextLog
 

Detailed Description

Description:

Date
2010/07/21 17:13:43
Revision
1.3
Author
Paolo Ronchese INFN Padova

Definition at line 46 of file DTUserKeyedConfigHandler.h.

Constructor & Destructor Documentation

DTUserKeyedConfigHandler::DTUserKeyedConfigHandler ( const edm::ParameterSet ps)

Constructor

Definition at line 48 of file DTUserKeyedConfigHandler.cc.

References DTConfigKey::confKey, DTConfigKey::confType, gather_cfg::cout, SimDataFormats::CaloAnalysis::cp, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), onlineAuthentication, and userConf.

49  : dataRun(ps.getParameter<int>("run")),
50  dataTag(ps.getParameter<std::string>("tag")),
51  onlineConnect(ps.getParameter<std::string>("onlineDB")),
52  onlineAuthentication(ps.getParameter<std::string>("onlineAuthentication")),
53  onlineAuthSys(ps.getUntrackedParameter<int>("onlineAuthSys", 1)),
54  brickContainer(ps.getParameter<std::string>("container")),
55  writeKeys(ps.getParameter<bool>("writeKeys")),
56  writeData(ps.getParameter<bool>("writeData")),
57  connection(),
58  isession() {
59  std::cout << " PopCon application for DT configuration export " << onlineAuthentication << std::endl;
60 
61  std::vector<edm::ParameterSet> dtConfigKeys(ps.getParameter<std::vector<edm::ParameterSet> >("DTConfigKeys"));
62  std::vector<edm::ParameterSet>::const_iterator iter = dtConfigKeys.begin();
63  std::vector<edm::ParameterSet>::const_iterator iend = dtConfigKeys.end();
64  while (iter != iend) {
65  const edm::ParameterSet& cp = *iter++;
66  int configType = cp.getUntrackedParameter<int>("configType");
67  int configKey = cp.getUntrackedParameter<int>("configKey");
68  std::cout << "config: " << configType << " -> " << configKey << std::endl;
69  DTConfigKey userKey;
70  userKey.confType = configType;
71  userKey.confKey = configKey;
72  userConf.push_back(userKey);
73  }
74 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
std::vector< DTConfigKey > userConf
std::shared_ptr< coral::ISessionProxy > isession
cond::persistency::ConnectionPool connection
DTUserKeyedConfigHandler::~DTUserKeyedConfigHandler ( )
override

Destructor

Definition at line 79 of file DTUserKeyedConfigHandler.cc.

79 {}

Member Function Documentation

void DTUserKeyedConfigHandler::chkConfigList ( const std::map< int, bool > &  userBricks)
private

Definition at line 309 of file DTUserKeyedConfigHandler.cc.

References DTKeyedConfig::add(), brickContainer, gather_cfg::cout, cppFunctionSkipper::exception, cond::persistency::KeyList::getUsingKey(), isession, dqmdumpme::k, keyList, cond::KeyedElement::m_key, cond::KeyedElement::m_obj, DTKeyedConfig::setId(), AlCaHLTBitMon_QueryRunRegistry::string, and cond::service::PoolDBOutputService::writeOne().

Referenced by getNewObjects().

309  {
310  std::cout << "open POOL out db " << std::endl;
312 
313  std::map<int, bool>::const_iterator uBrkIter = userBricks.begin();
314  std::map<int, bool>::const_iterator uBrkIend = userBricks.end();
315 
316  coral::ITable& brickConfigTable = isession->nominalSchema().tableHandle("CFGBRICKS");
317  std::unique_ptr<coral::IQuery> brickConfigQuery(brickConfigTable.newQuery());
318  brickConfigQuery->addToOutputList("BRKID");
319  brickConfigQuery->addToOutputList("BRKNAME");
320  coral::ICursor& brickConfigCursor = brickConfigQuery->execute();
321  DTKeyedConfig* brickData = nullptr;
322  std::vector<int> missingList;
323  std::vector<unsigned long long> checkedKeys;
324  while (brickConfigCursor.next()) {
325  const coral::AttributeList& row = brickConfigCursor.currentRow();
326  int brickConfigId = row["BRKID"].data<int>();
327  uBrkIter = userBricks.find(brickConfigId);
328  if (uBrkIter == uBrkIend)
329  continue;
330  if (!(uBrkIter->second))
331  continue;
332  std::string brickConfigName = row["BRKNAME"].data<std::string>();
333  std::cout << "brick " << brickConfigId << " : " << brickConfigName << std::endl;
334  bool brickFound = false;
335  try {
336  std::cout << "load brick " << brickConfigId << std::endl;
337  std::cout << "key list " << keyList << std::endl;
338  std::cout << "get brick..." << std::endl;
339  std::shared_ptr<DTKeyedConfig> brickCheck = keyList->getUsingKey<DTKeyedConfig>(brickConfigId);
340  if (brickCheck.get()) {
341  brickFound = (brickCheck->getId() == brickConfigId);
342  }
343  } catch (std::exception const&) {
344  }
345  if (!brickFound) {
346  std::cout << "brick " << brickConfigId << " missing, copy request" << std::endl;
347  missingList.push_back(brickConfigId);
348  }
349  }
350 
351  std::vector<int>::const_iterator brickIter = missingList.begin();
352  std::vector<int>::const_iterator brickIend = missingList.end();
353  while (brickIter != brickIend) {
354  int brickConfigId = *brickIter++;
355  coral::AttributeList bindVariableList;
356  bindVariableList.extend("brickId", typeid(int));
357  bindVariableList["brickId"].data<int>() = brickConfigId;
358  std::unique_ptr<coral::IQuery> brickDataQuery(isession->nominalSchema().newQuery());
359  brickDataQuery->addToTableList("CFGRELATIONS");
360  brickDataQuery->addToTableList("CONFIGCMDS");
361  std::string brickCondition = "CONFIGCMDS.CMDID=CFGRELATIONS.CMDID";
362  brickCondition += " and CFGRELATIONS.BRKID=:brickId";
363  brickDataQuery->addToOutputList("CFGRELATIONS.BRKID");
364  brickDataQuery->addToOutputList("CONFIGCMDS.CONFDATA");
365  brickDataQuery->setCondition(brickCondition, bindVariableList);
366  coral::ICursor& brickDataCursor = brickDataQuery->execute();
367  brickData = new DTKeyedConfig();
368  brickData->setId(brickConfigId);
369  while (brickDataCursor.next()) {
370  const coral::AttributeList& row = brickDataCursor.currentRow();
371  brickData->add(row["CONFIGCMDS.CONFDATA"].data<std::string>());
372  }
373  cond::KeyedElement k(brickData, brickConfigId);
374  std::cout << "now writing brick: " << brickConfigId << std::endl;
375  outdb->writeOne(k.m_obj, k.m_key, brickContainer);
376  }
377 
378  return;
379 }
void add(const std::string &data)
const cond::persistency::KeyList * keyList
void writeOne(T *payload, Time_t time, const std::string &recordName, bool withlogging=false)
void setId(int id)
std::shared_ptr< coral::ISessionProxy > isession
std::shared_ptr< T > getUsingKey(unsigned long long key) const
Definition: KeyList.h:57
void DTUserKeyedConfigHandler::getNewObjects ( )
overridevirtual

Operations

Implements popcon::PopConSourceHandler< DTCCBConfig >.

Definition at line 84 of file DTUserKeyedConfigHandler.cc.

References DTCCBConfig::appendConfigKey(), DTCCBConfig::begin(), looper::cfg, chkConfigList(), cond::persistency::ConnectionPool::configure(), DTConfigKey::confKey, DTConfigKey::confType, connection, gather_cfg::cout, cond::persistency::ConnectionPool::createCoralSession(), dataRun, dataTag, DTCCBConfig::end(), isession, crabWrapper::key, keyList, dqmdumpme::last, cond::TagInfo_t::lastInterval, popcon::PopConSourceHandler< DTCCBConfig >::lastPayload(), popcon::PopConSourceHandler< DTCCBConfig >::m_to_transfer, onlineAuthentication, onlineAuthSys, onlineConnect, jets_cff::payload, DTCCBId::sectorId, cond::persistency::ConnectionPool::setAuthenticationPath(), cond::persistency::ConnectionPool::setAuthenticationSystem(), DTCCBConfig::setFullKey(), DTCCBConfig::setStamp(), relativeConstraints::station, DTCCBId::stationId, AlCaHLTBitMon_QueryRunRegistry::string, popcon::PopConSourceHandler< DTCCBConfig >::tagInfo(), userConf, userDiscardedKey(), makeMuonMisalignmentScenario::wheel, DTCCBId::wheelId, writeData, and writeKeys.

84  {
85  //to access the information on the tag inside the offline database:
86  cond::TagInfo const& ti = tagInfo();
87  unsigned int last = ti.lastInterval.first;
88  std::cout << "last configuration key already copied for run: " << last << std::endl;
89 
90  std::vector<DTConfigKey> lastKey;
91  // std::cout << "check for last " << std::endl;
92  if (last == 0) {
93  DTCCBConfig* dummyConf = new DTCCBConfig(dataTag);
94  dummyConf->setStamp(0);
95  dummyConf->setFullKey(lastKey);
96  cond::Time_t snc = 1;
97  if (writeKeys && (dataRun > 1))
98  m_to_transfer.push_back(std::make_pair(dummyConf, snc));
99  } else {
100  std::cout << "get last payload" << std::endl;
101  Ref payload = lastPayload();
102  std::cout << "get last full key" << std::endl;
103  lastKey = payload->fullKey();
104  std::cout << "last key: " << std::endl;
105  std::vector<DTConfigKey>::const_iterator keyIter = lastKey.begin();
106  std::vector<DTConfigKey>::const_iterator keyIend = lastKey.end();
107  while (keyIter != keyIend) {
108  const DTConfigKey& keyList = *keyIter++;
109  std::cout << keyList.confType << " : " << keyList.confKey << std::endl;
110  }
111  }
112 
113  std::cout << "configure DbConnection" << std::endl;
114  // conn->configure( cond::CmsDefaults );
118  std::cout << "create/open DbSession" << std::endl;
120  std::cout << "start transaction" << std::endl;
121  isession->transaction().start(true);
122 
123  // get ccb identifiers map
124  std::cout << "retrieve CCB map" << std::endl;
125  std::map<int, DTCCBId> ccbMap;
126  coral::ITable& ccbMapTable = isession->nominalSchema().tableHandle("CCBMAP");
127  std::unique_ptr<coral::IQuery> ccbMapQuery(ccbMapTable.newQuery());
128  ccbMapQuery->addToOutputList("CCBID");
129  ccbMapQuery->addToOutputList("WHEEL");
130  ccbMapQuery->addToOutputList("SECTOR");
131  ccbMapQuery->addToOutputList("STATION");
132  coral::ICursor& ccbMapCursor = ccbMapQuery->execute();
133  while (ccbMapCursor.next()) {
134  const coral::AttributeList& row = ccbMapCursor.currentRow();
135  int ccb = row["CCBID"].data<int>();
136  int wheel = row["WHEEL"].data<int>();
137  int sector = row["SECTOR"].data<int>();
138  int station = row["STATION"].data<int>();
139  DTCCBId ccbId;
140  ccbId.wheelId = wheel;
141  ccbId.stationId = station;
142  ccbId.sectorId = sector;
143  ccbMap.insert(std::pair<int, DTCCBId>(ccb, ccbId));
144  }
145 
146  // get brick types
147  std::cout << "retrieve brick types" << std::endl;
148  std::map<int, int> bktMap;
149  coral::AttributeList emptyBindVariableList;
150  std::unique_ptr<coral::IQuery> brickTypeQuery(isession->nominalSchema().newQuery());
151  brickTypeQuery->addToTableList("CFGBRICKS");
152  brickTypeQuery->addToTableList("BRKT2CSETT");
153  std::string bTypeCondition = "CFGBRICKS.BRKTYPE=BRKT2CSETT.BRKTYPE";
154  brickTypeQuery->addToOutputList("CFGBRICKS.BRKID");
155  brickTypeQuery->addToOutputList("BRKT2CSETT.CSETTYPE");
156  brickTypeQuery->setCondition(bTypeCondition, emptyBindVariableList);
157  coral::ICursor& brickTypeCursor = brickTypeQuery->execute();
158  while (brickTypeCursor.next()) {
159  const coral::AttributeList& row = brickTypeCursor.currentRow();
160  int id = row["CFGBRICKS.BRKID"].data<int>();
161  int bt = row["BRKT2CSETT.CSETTYPE"].data<short>();
162  // std::cout << "brick " << id << " type " << bt << std::endl;
163  // @@FIX - TEMPORARY PATCH
164  // if ( bt > 3 ) bt = 3;
165  bktMap.insert(std::pair<int, int>(id, bt));
166  }
167 
168  // get ccb config keys
169  std::cout << "retrieve CCB configuration keys" << std::endl;
170  std::map<int, std::map<int, int>*> keyMap;
171  std::map<int, int> cckMap;
172  coral::ITable& ccbRelTable = isession->nominalSchema().tableHandle("CCBRELATIONS");
173  std::unique_ptr<coral::IQuery> ccbRelQuery(ccbRelTable.newQuery());
174  ccbRelQuery->addToOutputList("CONFKEY");
175  ccbRelQuery->addToOutputList("CCBID");
176  ccbRelQuery->addToOutputList("CONFCCBKEY");
177  coral::ICursor& ccbRelCursor = ccbRelQuery->execute();
178  // loop over all full configurations
179  while (ccbRelCursor.next()) {
180  const coral::AttributeList& row = ccbRelCursor.currentRow();
181  int cfg = row["CONFKEY"].data<int>();
182  int ccb = row["CCBID"].data<int>();
183  int key = row["CONFCCBKEY"].data<int>();
184  // check for used configurations
185  // if ( cfgMap.find( cfg ) == cfgMap.end() ) continue;
186  if (userDiscardedKey(cfg))
187  continue;
188  std::map<int, std::map<int, int>*>::const_iterator keyIter = keyMap.find(cfg);
189  std::map<int, std::map<int, int>*>::const_iterator keyIend = keyMap.end();
190  std::map<int, int>* mapPtr = nullptr;
191  // check for new full configuration
192  if (keyIter != keyIend)
193  mapPtr = keyIter->second;
194  else
195  keyMap.insert(std::pair<int, std::map<int, int>*>(cfg, mapPtr = new std::map<int, int>));
196  // store ccb config key
197  std::map<int, int>& mapRef(*mapPtr);
198  mapRef.insert(std::pair<int, int>(ccb, key));
199  // check for new ccb config key
200  if (cckMap.find(key) == cckMap.end())
201  cckMap.insert(std::pair<int, int>(key, ccb));
202  }
203 
204  // get brick keys
205  std::cout << "retrieve CCB configuration bricks" << std::endl;
206  std::map<int, std::vector<int>*> brkMap;
207  coral::ITable& confBrickTable = isession->nominalSchema().tableHandle("CFG2BRKREL");
208  std::unique_ptr<coral::IQuery> confBrickQuery(confBrickTable.newQuery());
209  confBrickQuery->addToOutputList("CONFID");
210  confBrickQuery->addToOutputList("BRKID");
211  coral::ICursor& confBrickCursor = confBrickQuery->execute();
212  // loop over all brick keys
213  while (confBrickCursor.next()) {
214  const coral::AttributeList& row = confBrickCursor.currentRow();
215  int key = row["CONFID"].data<int>();
216  int brk = row["BRKID"].data<int>();
217  // check for used ccb config key
218  if (cckMap.find(key) == cckMap.end())
219  continue;
220  std::map<int, std::vector<int>*>::const_iterator brkIter = brkMap.find(key);
221  std::map<int, std::vector<int>*>::const_iterator brkIend = brkMap.end();
222  // check for new ccb config key
223  std::vector<int>* brkPtr = nullptr;
224  if (brkIter != brkIend)
225  brkPtr = brkIter->second;
226  else
227  brkMap.insert(std::pair<int, std::vector<int>*>(key, brkPtr = new std::vector<int>));
228  // store brick key
229  brkPtr->push_back(brk);
230  }
231 
232  // set run and full configuration in payload
233  DTCCBConfig* fullConf = new DTCCBConfig(dataTag);
234  fullConf->setStamp(1);
235  fullConf->setFullKey(userConf);
236  std::map<int, bool> userBricks;
237  std::map<int, bool>::const_iterator uBrkIter = userBricks.begin();
238  std::map<int, bool>::const_iterator uBrkIend = userBricks.end();
239  std::vector<DTConfigKey>::const_iterator cfgIter = userConf.begin();
240  std::vector<DTConfigKey>::const_iterator cfgIend = userConf.end();
241  while (cfgIter != cfgIend) {
242  const DTConfigKey& cfgEntry = *cfgIter++;
243  int cft = cfgEntry.confType;
244  int cfg = cfgEntry.confKey;
245  // retrieve ccb config map
246  std::map<int, std::map<int, int>*>::const_iterator keyIter = keyMap.find(cfg);
247  std::map<int, std::map<int, int>*>::const_iterator keyIend = keyMap.end();
248  std::map<int, int>* mapPtr = nullptr;
249  if (keyIter != keyIend)
250  mapPtr = keyIter->second;
251  if (mapPtr == nullptr)
252  continue;
253  std::map<int, int>::const_iterator ccbIter = mapPtr->begin();
254  std::map<int, int>::const_iterator ccbIend = mapPtr->end();
255  while (ccbIter != ccbIend) {
256  const std::pair<int, int>& ccbEntry = *ccbIter++;
257  // get ccb config key
258  int ccb = ccbEntry.first;
259  int key = ccbEntry.second;
260  // retrieve chamber id
261  std::map<int, DTCCBId>::const_iterator ccbIter = ccbMap.find(ccb);
262  std::map<int, DTCCBId>::const_iterator ccbIend = ccbMap.end();
263  if (ccbIter == ccbIend)
264  continue;
265  const DTCCBId& chaId = ccbIter->second;
266  // retrieve brick id list
267  std::map<int, std::vector<int>*>::const_iterator brkIter = brkMap.find(key);
268  std::map<int, std::vector<int>*>::const_iterator brkIend = brkMap.end();
269  if (brkIter == brkIend)
270  continue;
271  std::vector<int>* brkPtr = brkIter->second;
272  if (brkPtr == nullptr)
273  continue;
274  // brick id lists in payload
275  std::vector<int> bkList;
276  bkList.reserve(20);
277  std::map<int, int>::const_iterator bktIter = bktMap.begin();
278  std::map<int, int>::const_iterator bktIend = bktMap.end();
279  std::vector<int>::const_iterator bkiIter = brkPtr->begin();
280  std::vector<int>::const_iterator bkiIend = brkPtr->end();
281  while (bkiIter != bkiIend) {
282  int brickId = *bkiIter++;
283  bktIter = bktMap.find(brickId);
284  if (bktIter == bktIend)
285  continue;
286  if (bktIter->second == cft) {
287  bkList.push_back(brickId);
288  uBrkIter = userBricks.find(brickId);
289  if (uBrkIter == uBrkIend)
290  userBricks.insert(std::pair<int, bool>(brickId, true));
291  }
292  }
293  fullConf->appendConfigKey(chaId.wheelId, chaId.stationId, chaId.sectorId, bkList);
294  }
295  }
296  cond::Time_t snc = dataRun;
297  if (writeKeys)
298  m_to_transfer.push_back(std::make_pair(fullConf, snc));
299  std::cout << "writing payload : " << sizeof(*fullConf) << " ( " << (fullConf->end() - fullConf->begin()) << " ) "
300  << std::endl;
301  if (writeData)
302  chkConfigList(userBricks);
303 
304  isession->transaction().commit();
305 
306  return;
307 }
int wheelId
Definition: DTCCBConfig.h:42
void setStamp(int s)
Definition: DTCCBConfig.cc:119
const cond::persistency::KeyList * keyList
std::vector< DTConfigKey > userConf
const_iterator end() const
Definition: DTCCBConfig.cc:205
int sectorId
Definition: DTCCBConfig.h:44
cond::ValidityInterval lastInterval
Definition: Types.h:74
unsigned long long Time_t
Definition: Time.h:14
int stationId
Definition: DTCCBConfig.h:43
void setAuthenticationSystem(int authSysCode)
void chkConfigList(const std::map< int, bool > &userBricks)
std::shared_ptr< coral::ISessionProxy > isession
void setFullKey(const std::vector< DTConfigKey > &)
Definition: DTCCBConfig.cc:117
cond::persistency::ConnectionPool connection
const_iterator begin() const
Definition: DTCCBConfig.cc:203
void setAuthenticationPath(const std::string &p)
std::shared_ptr< coral::ISessionProxy > createCoralSession(const std::string &connectionString, bool writeCapable=false)
int appendConfigKey(int wheelId, int stationId, int sectorId, const std::vector< int > &confKey)
Definition: DTCCBConfig.cc:166
cond::TagInfo_t const & tagInfo() const
std::string DTUserKeyedConfigHandler::id ( ) const
overridevirtual

Implements popcon::PopConSourceHandler< DTCCBConfig >.

Definition at line 381 of file DTUserKeyedConfigHandler.cc.

References dataTag.

381 { return dataTag; }
bool DTUserKeyedConfigHandler::sameConfigList ( const std::vector< DTConfigKey > &  cfgl,
const std::vector< DTConfigKey > &  cfgr 
)
staticprivate

Definition at line 383 of file DTUserKeyedConfigHandler.cc.

References DTConfigKey::confKey, DTConfigKey::confType, and mps_splice::entry.

384  {
385  if (cfgl.size() != cfgr.size())
386  return false;
387  std::map<int, int> lmap;
388  std::vector<DTConfigKey>::const_iterator lIter = cfgl.begin();
389  std::vector<DTConfigKey>::const_iterator lIend = cfgl.end();
390  while (lIter != lIend) {
391  const DTConfigKey& entry = *lIter++;
392  lmap.insert(std::pair<int, int>(entry.confType, entry.confKey));
393  }
394  std::map<int, int> rmap;
395  std::vector<DTConfigKey>::const_iterator rIter = cfgr.begin();
396  std::vector<DTConfigKey>::const_iterator rIend = cfgr.end();
397  while (rIter != rIend) {
398  const DTConfigKey& entry = *rIter++;
399  rmap.insert(std::pair<int, int>(entry.confType, entry.confKey));
400  }
401  std::map<int, int>::const_iterator lmIter = lmap.begin();
402  std::map<int, int>::const_iterator lmIend = lmap.end();
403  std::map<int, int>::const_iterator rmIter = rmap.begin();
404  std::map<int, int>::const_iterator rmIend = rmap.end();
405  while ((lmIter != lmIend) && (rmIter != rmIend)) {
406  const std::pair<int, int>& lEntry = *lmIter++;
407  const std::pair<int, int>& rEntry = *rmIter++;
408  if (lEntry.first != rEntry.first)
409  return false;
410  if (lEntry.second != rEntry.second)
411  return false;
412  }
413  return true;
414 }
void DTUserKeyedConfigHandler::setList ( const cond::persistency::KeyList list)

Definition at line 427 of file DTUserKeyedConfigHandler.cc.

References keyList, and list().

Referenced by DTUserKeyedConfigPopConAnalyzer::analyze().

427 { keyList = list; }
const cond::persistency::KeyList * keyList
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run
bool DTUserKeyedConfigHandler::userDiscardedKey ( int  key)
private

Definition at line 416 of file DTUserKeyedConfigHandler.cc.

References DTConfigKey::confKey, mps_splice::entry, and userConf.

Referenced by getNewObjects().

416  {
417  std::vector<DTConfigKey>::const_iterator iter = userConf.begin();
418  std::vector<DTConfigKey>::const_iterator iend = userConf.end();
419  while (iter != iend) {
420  const DTConfigKey& entry = *iter++;
421  if (entry.confKey == key)
422  return false;
423  }
424  return true;
425 }
std::vector< DTConfigKey > userConf

Member Data Documentation

std::string DTUserKeyedConfigHandler::brickContainer
private

Definition at line 70 of file DTUserKeyedConfigHandler.h.

Referenced by chkConfigList().

DTCCBConfig* DTUserKeyedConfigHandler::ccbConfig
private

Definition at line 74 of file DTUserKeyedConfigHandler.h.

cond::persistency::ConnectionPool DTUserKeyedConfigHandler::connection
private

Definition at line 76 of file DTUserKeyedConfigHandler.h.

Referenced by getNewObjects().

int DTUserKeyedConfigHandler::dataRun
private

Definition at line 65 of file DTUserKeyedConfigHandler.h.

Referenced by getNewObjects().

std::string DTUserKeyedConfigHandler::dataTag
private

Definition at line 66 of file DTUserKeyedConfigHandler.h.

Referenced by getNewObjects(), and id().

std::shared_ptr<coral::ISessionProxy> DTUserKeyedConfigHandler::isession
private

Definition at line 77 of file DTUserKeyedConfigHandler.h.

Referenced by chkConfigList(), and getNewObjects().

const cond::persistency::KeyList* DTUserKeyedConfigHandler::keyList = 0
private

Definition at line 82 of file DTUserKeyedConfigHandler.h.

Referenced by chkConfigList(), getNewObjects(), and setList().

std::string DTUserKeyedConfigHandler::onlineAuthentication
private

Definition at line 68 of file DTUserKeyedConfigHandler.h.

Referenced by DTUserKeyedConfigHandler(), and getNewObjects().

int DTUserKeyedConfigHandler::onlineAuthSys
private

Definition at line 69 of file DTUserKeyedConfigHandler.h.

Referenced by getNewObjects().

std::string DTUserKeyedConfigHandler::onlineConnect
private

Definition at line 67 of file DTUserKeyedConfigHandler.h.

Referenced by getNewObjects().

std::vector<DTConfigKey> DTUserKeyedConfigHandler::userConf
private
bool DTUserKeyedConfigHandler::writeData
private

Definition at line 73 of file DTUserKeyedConfigHandler.h.

Referenced by getNewObjects().

bool DTUserKeyedConfigHandler::writeKeys
private

Definition at line 72 of file DTUserKeyedConfigHandler.h.

Referenced by getNewObjects().