CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/Geometry/CaloEventSetup/interface/CaloGeometryDBWriter.h

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