Go to the documentation of this file.00001 #ifndef GEOMETRY_CALOEVENTSETUP_CALOGEOMETRYDBWRITER_H
00002 #define GEOMETRY_CALOEVENTSETUP_CALOGEOMETRYDBWRITER_H 1
00003
00004 #include "FWCore/ServiceRegistry/interface/Service.h"
00005 #include "CondCore/DBOutputService/interface/PoolDBOutputService.h"
00006 #include "CondFormats/GeometryObjects/interface/PCaloGeometry.h"
00007
00008 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00009
00010 class CaloGeometryDBWriter
00011 {
00012 public:
00013
00014 typedef CaloSubdetectorGeometry::TrVec TrVec ;
00015 typedef CaloSubdetectorGeometry::DimVec DimVec ;
00016 typedef CaloSubdetectorGeometry::IVec IVec ;
00017
00018 static bool writeFlag() { return true ; }
00019
00020 static void write( const TrVec& tvec,
00021 const DimVec& dvec,
00022 const IVec& ivec,
00023 std::string tag )
00024 {
00025 PCaloGeometry* peg = new PCaloGeometry( tvec , dvec, ivec );
00026
00027 edm::Service<cond::service::PoolDBOutputService> mydbservice;
00028 if( !mydbservice.isAvailable() )
00029 {
00030 edm::LogError("PCaloDBGeometryBuilder")<<"PoolDBOutputService unavailable";
00031 }
00032 else
00033 {
00034 if ( mydbservice->isNewTagRequest( tag ) )
00035 {
00036 mydbservice->createNewIOV<PCaloGeometry>(
00037 peg,
00038 mydbservice->beginOfTime(),
00039 mydbservice->endOfTime(),
00040 tag ) ;
00041 }
00042 else
00043 {
00044 mydbservice->appendSinceTime<PCaloGeometry>(
00045 peg,
00046 mydbservice->currentTime(),
00047 tag ) ;
00048 }
00049 }
00050 }
00051
00052 CaloGeometryDBWriter() {}
00053 virtual ~CaloGeometryDBWriter() {}
00054 };
00055
00056 #endif