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, const cond::Binary &data, const cond::Binary &streamerInfo, std::shared_ptr<void> payloadPtr ){
24 
25  bool match = false;
27  FETCH_PAYLOAD_CASE( std::vector<unsigned long long> )
245  //FETCH_PAYLOAD_CASE( PerformancePayload )
310 
311  //
312  if( payloadTypeName == "PhysicsTools::Calibration::Histogram3D<double,double,double,double>" ){
313  payloadPtr = deserialize<PhysicsTools::Calibration::Histogram3D<double,double,double,double> >(payloadTypeName, data, streamerInfo );
314  match = true;
315  }
316  if( payloadTypeName == "PhysicsTools::Calibration::Histogram2D<double,double,double>" ){
317  payloadPtr = deserialize<PhysicsTools::Calibration::Histogram2D<double,double,double> >(payloadTypeName, data, streamerInfo );
318  match = true;
319  }
320  if( payloadTypeName == "std::vector<unsignedlonglong,std::allocator<unsignedlonglong>>" ){
321  payloadPtr = deserialize<std::vector<unsigned long long> >( payloadTypeName, data, streamerInfo );
322  match = true;
323  }
324 
325  if( ! match ) throwException( "Payload type \""+payloadTypeName+"\" is unknown.","fetch" );
326  return std::make_pair( payloadTypeName, payloadPtr );
327  }
328 
329  std::pair<std::string,std::shared_ptr<void> > fetch( const cond::Hash& payloadId, Session& session ){
330  std::shared_ptr<void> payloadPtr;
332  cond::Binary streamerInfo;
333  std::string payloadTypeName;
334  bool found = session.fetchPayloadData( payloadId, payloadTypeName, data, streamerInfo );
335  if( !found ) throwException( "Payload with id "+boost::lexical_cast<std::string>(payloadId)+" has not been found in the database.","fetch" );
336  return fetchOne(payloadTypeName, data, streamerInfo, payloadPtr );
337  }
338 
339  }
340 }
341 
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:53
QGLikelihoodObject containing valid range and entries with category and histogram (mean is not used a...
Channel-mask mapping.
std::string Hash
Definition: Types.h:45
bool fetchPayloadData(const cond::Hash &payloadHash, std::string &payloadType, cond::Binary &payloadData, cond::Binary &streamerInfoData)
Definition: Session.cc:210
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:24
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
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:329
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:14
The mapping between FramePosition and ROCInfo.