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>)
251  //FETCH_PAYLOAD_CASE( PerformancePayload )
320 
321  //
322  if (payloadTypeName == "PhysicsTools::Calibration::Histogram3D<double,double,double,double>") {
323  payloadPtr = deserialize<PhysicsTools::Calibration::Histogram3D<double, double, double, double> >(
324  payloadTypeName, data, streamerInfo);
325  match = true;
326  }
327  if (payloadTypeName == "PhysicsTools::Calibration::Histogram2D<double,double,double>") {
328  payloadPtr = deserialize<PhysicsTools::Calibration::Histogram2D<double, double, double> >(
329  payloadTypeName, data, streamerInfo);
330  match = true;
331  }
332  if (payloadTypeName == "std::vector<unsignedlonglong,std::allocator<unsignedlonglong>>") {
333  payloadPtr = deserialize<std::vector<unsigned long long> >(payloadTypeName, data, streamerInfo);
334  match = true;
335  }
336 
337  if (!match)
338  throwException("Payload type \"" + payloadTypeName + "\" is unknown.", "fetch");
339  return std::make_pair(payloadTypeName, payloadPtr);
340  }
341 
342  std::pair<std::string, std::shared_ptr<void> > fetch(const cond::Hash &payloadId, Session &session) {
343  std::shared_ptr<void> payloadPtr;
345  cond::Binary streamerInfo;
346  std::string payloadTypeName;
347  bool found = session.fetchPayloadData(payloadId, payloadTypeName, data, streamerInfo);
348  if (!found)
349  throwException("Payload with id " + payloadId + " has not been found in the database.", "fetch");
350  return fetchOne(payloadTypeName, data, streamerInfo, payloadPtr);
351  }
352 
353  } // namespace persistency
354 } // namespace cond
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
#define FETCH_PAYLOAD_CASE(TYPENAME)
Definition: CondDBFetch.cc:3
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:185
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
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:342
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:12
The mapping between FramePosition and ROCInfo.