CMS 3D CMS Logo

CondDBImport.cc
Go to the documentation of this file.
1 //
2 
3 //TO DO: add the comparison between stored object and input object - bool cond::serialization::equal( obj,read_back_copy )
4 #define IMPORT_PAYLOAD_CASE( TYPENAME ) \
5  if( inputTypeName == #TYPENAME ){ \
6  match = true; \
7  const TYPENAME& obj = *static_cast<const TYPENAME*>( inputPtr ); \
8  payloadId = destination.storePayload( obj, boost::posix_time::microsec_clock::universal_time() ); \
9  }
10 
12 
15 #include "CondFormats.h"
16 
17 //
18 #include <memory>
19 #include <sstream>
20 
21 namespace cond {
22 
23  namespace persistency {
24 
25  std::pair<std::string,std::shared_ptr<void> > fetchIfExists( const cond::Hash& payloadId, Session& session, bool& exists ){
26  std::shared_ptr<void> payloadPtr;
28  cond::Binary streamerInfo;
29  std::string payloadTypeName;
30  exists = session.fetchPayloadData( payloadId, payloadTypeName, data, streamerInfo );
31  if( exists ) {
32  return fetchOne(payloadTypeName, data, streamerInfo, payloadPtr );
33  } else return std::make_pair( std::string(""), std::shared_ptr<void>() );
34  }
35 
36  cond::Hash import( Session& source, const cond::Hash& sourcePayloadId, const std::string& inputTypeName, const void* inputPtr, Session& destination ){
37  cond::Hash payloadId("");
38  bool newInsert = false;
39  bool match = false;
40  if( inputPtr ){
42  IMPORT_PAYLOAD_CASE( std::vector<unsigned long long> )
244  if( inputTypeName == "L1TriggerKeyList" ){
245  match = true;
246  throwException( "Import of \"L1TriggerKeyList\" type payloads is not supported.","import" );
247  }
248  //IMPORT_PAYLOAD_CASE( L1TriggerKeyList )
263  //IMPORT_PAYLOAD_CASE( PerformancePayload )
330  if( inputTypeName == "PhysicsTools::Calibration::Histogram3D<double,double,double,double>" ){
331  match = true;
333  payloadId = destination.storePayload( obj, boost::posix_time::microsec_clock::universal_time() );
334  }
335  if( inputTypeName == "PhysicsTools::Calibration::Histogram2D<double,double,double>" ){
336  match = true;
338  payloadId = destination.storePayload( obj, boost::posix_time::microsec_clock::universal_time() );
339  }
340  if( inputTypeName == "std::vector<unsignedlonglong,std::allocator<unsignedlonglong>>" ){
341  match = true;
342  const std::vector<unsigned long long>& obj = *static_cast<const std::vector<unsigned long long>*>( inputPtr );
343  payloadId = destination.storePayload( obj, boost::posix_time::microsec_clock::universal_time() );
344  }
345 
346  if( ! match ) throwException( "Payload type \""+inputTypeName+"\" is unknown.","import" );
347  }
348  return payloadId;
349  }
350 
351  }
352 }
353 
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
std::pair< std::string, std::shared_ptr< void > > fetchIfExists(const cond::Hash &payloadId, Session &session, bool &exists)
Definition: CondDBImport.cc:25
Definition: DTT0.h:53
QGLikelihoodObject containing valid range and entries with category and histogram (mean is not used a...
#define IMPORT_PAYLOAD_CASE(TYPENAME)
Definition: CondDBImport.cc:4
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...
static std::string const source
Definition: EdmProvDump.cc:47
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:14
The mapping between FramePosition and ROCInfo.