CMS 3D CMS Logo

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