CMS 3D CMS Logo

CondDBFetch.cc
Go to the documentation of this file.
1 //
2 
3 #define FETCH_PAYLOAD_CASE(TYPENAME) \
4  if (payloadTypeName == #TYPENAME) { \
5  payloadPtr = deserialize<TYPENAME>(payloadTypeName, data, streamerInfo); \
6  match = true; \
7  }
8 
10 
13 #include "CondFormats.h"
14 
15 //
16 #include <memory>
17 #include <sstream>
18 
19 namespace cond {
20 
21  namespace persistency {
22 
23  std::pair<std::string, std::shared_ptr<void> > fetchOne(const std::string &payloadTypeName,
24  const cond::Binary &data,
25  const cond::Binary &streamerInfo,
26  std::shared_ptr<void> payloadPtr) {
27  bool match = false;
29  FETCH_PAYLOAD_CASE(std::vector<unsigned long long>)
247  //FETCH_PAYLOAD_CASE( PerformancePayload )
313 
314  //
315  if (payloadTypeName == "PhysicsTools::Calibration::Histogram3D<double,double,double,double>") {
316  payloadPtr = deserialize<PhysicsTools::Calibration::Histogram3D<double, double, double, double> >(
317  payloadTypeName, data, streamerInfo);
318  match = true;
319  }
320  if (payloadTypeName == "PhysicsTools::Calibration::Histogram2D<double,double,double>") {
321  payloadPtr = deserialize<PhysicsTools::Calibration::Histogram2D<double, double, double> >(
322  payloadTypeName, data, streamerInfo);
323  match = true;
324  }
325  if (payloadTypeName == "std::vector<unsignedlonglong,std::allocator<unsignedlonglong>>") {
326  payloadPtr = deserialize<std::vector<unsigned long long> >(payloadTypeName, data, streamerInfo);
327  match = true;
328  }
329 
330  if (!match)
331  throwException("Payload type \"" + payloadTypeName + "\" is unknown.", "fetch");
332  return std::make_pair(payloadTypeName, payloadPtr);
333  }
334 
335  std::pair<std::string, std::shared_ptr<void> > fetch(const cond::Hash &payloadId, Session &session) {
336  std::shared_ptr<void> payloadPtr;
338  cond::Binary streamerInfo;
339  std::string payloadTypeName;
340  bool found = session.fetchPayloadData(payloadId, payloadTypeName, data, streamerInfo);
341  if (!found)
343  "Payload with id " + boost::lexical_cast<std::string>(payloadId) + " has not been found in the database.",
344  "fetch");
345  return fetchOne(payloadTypeName, data, streamerInfo, payloadPtr);
346  }
347 
348  } // namespace persistency
349 } // namespace cond
#define FETCH_PAYLOAD_CASE(TYPENAME)
Definition: CondDBFetch.cc:3
std::pair< std::string, std::shared_ptr< void > > fetchOne(const std::string &payloadTypeName, const cond::Binary &data, const cond::Binary &streamerInfo, std::shared_ptr< void > payloadPtr)
Definition: CondDBFetch.cc:23
Definition: ESGain.h:7
Definition: DTT0.h:48
QGLikelihoodObject containing valid range and entries with category and histogram (mean is not used a...
Channel-mask mapping.
std::string Hash
Definition: Types.h:43
bool fetchPayloadData(const cond::Hash &payloadHash, std::string &payloadType, cond::Binary &payloadData, cond::Binary &streamerInfoData)
Definition: Session.cc:194
Category structure: ranges associated with QGLikelihood histograms.
Contains cabling info at the device level, including DetId, APV pair numbers, hardware addresses...
Container for CTPPS RP alignment corrections. The corrections are stored on two levels - RP and senso...
Definition: plugin.cc:23
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
QGLikelihoodSystematicsObject containing the parameters for the systematic smearing.
Collection of optical functions for two crossing angle values and various scoring planes...
std::pair< std::string, std::shared_ptr< void > > fetch(const cond::Hash &payloadId, Session &session)
Definition: CondDBFetch.cc:335
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:12
The mapping between FramePosition and ROCInfo.