#include <EcalTPGDBCopy.h>
Public Member Functions | |
virtual void | analyze (const edm::Event &evt, const edm::EventSetup &evtSetup) |
EcalTPGDBCopy (const edm::ParameterSet &iConfig) | |
~EcalTPGDBCopy () | |
Private Member Functions | |
void | copyToDB (const edm::EventSetup &evtSetup, std::string container) |
bool | shouldCopy (const edm::EventSetup &evtSetup, std::string container) |
Private Attributes | |
std::map< std::string, unsigned long long > | m_cacheIDs |
std::map< std::string, std::string > | m_records |
std::string | m_timetype |
Definition at line 18 of file EcalTPGDBCopy.h.
EcalTPGDBCopy::EcalTPGDBCopy | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 51 of file EcalTPGDBCopy.cc.
References edm::ParameterSet::getParameter(), i, m_cacheIDs, m_records, record, GlobalPosition_Frontier_DevDB_cff::tag, and copyFileAlignEB_cfg::toCopy.
: m_timetype(iConfig.getParameter<std::string>("timetype")), m_cacheIDs(), m_records() { std::string container; std::string tag; std::string record; typedef std::vector< edm::ParameterSet > Parameters; Parameters toCopy = iConfig.getParameter<Parameters>("toCopy"); for(Parameters::iterator i = toCopy.begin(); i != toCopy.end(); ++i) { container = i->getParameter<std::string>("container"); record = i->getParameter<std::string>("record"); m_cacheIDs.insert( std::make_pair(container, 0) ); m_records.insert( std::make_pair(container, record) ); } }
EcalTPGDBCopy::~EcalTPGDBCopy | ( | ) |
Definition at line 72 of file EcalTPGDBCopy.cc.
{ }
void EcalTPGDBCopy::analyze | ( | const edm::Event & | evt, |
const edm::EventSetup & | evtSetup | ||
) | [virtual] |
Implements edm::EDAnalyzer.
Definition at line 77 of file EcalTPGDBCopy.cc.
References copyToDB(), i, m_records, record, and shouldCopy().
{ std::string container; std::string record; typedef std::map<std::string, std::string>::const_iterator recordIter; for (recordIter i = m_records.begin(); i != m_records.end(); ++i) { container = (*i).first; record = (*i).second; if ( shouldCopy(evtSetup, container) ) { copyToDB(evtSetup, container); } } }
void EcalTPGDBCopy::copyToDB | ( | const edm::EventSetup & | evtSetup, |
std::string | container | ||
) | [private] |
Definition at line 147 of file EcalTPGDBCopy.cc.
References gather_cfg::cout, Exception, edm::EventSetup::get(), patZpeak::handle, edm::Service< T >::isAvailable(), m_records, VarParsing::obj, edm::ESHandle< T >::product(), and ecalTPGAnalyzer_cfg::recordName.
Referenced by analyze().
{ edm::Service<cond::service::PoolDBOutputService> dbOutput; if ( !dbOutput.isAvailable() ) { throw cms::Exception("PoolDBOutputService is not available"); } std::string recordName = m_records[container]; if (container == "EcalTPGPedestals") { edm::ESHandle<EcalTPGPedestals> handle; evtSetup.get<EcalTPGPedestalsRcd>().get(handle); const EcalTPGPedestals* obj = handle.product(); dbOutput->createNewIOV<const EcalTPGPedestals>( new EcalTPGPedestals(*obj), dbOutput->beginOfTime(),dbOutput->endOfTime(),recordName); } else if (container == "EcalTPGLinearizationConst") { edm::ESHandle<EcalTPGLinearizationConst> handle; evtSetup.get<EcalTPGLinearizationConstRcd>().get(handle); const EcalTPGLinearizationConst* obj = handle.product(); dbOutput->createNewIOV<const EcalTPGLinearizationConst>( new EcalTPGLinearizationConst(*obj),dbOutput->beginOfTime(), dbOutput->endOfTime(),recordName); } else if (container == "EcalTPGSlidingWindow") { edm::ESHandle<EcalTPGSlidingWindow> handle; evtSetup.get<EcalTPGSlidingWindowRcd>().get(handle); const EcalTPGSlidingWindow* obj = handle.product(); dbOutput->createNewIOV<const EcalTPGSlidingWindow>( new EcalTPGSlidingWindow(*obj),dbOutput->beginOfTime(), dbOutput->endOfTime(),recordName); } else if (container == "EcalTPGFineGrainEBIdMap") { edm::ESHandle<EcalTPGFineGrainEBIdMap> handle; evtSetup.get<EcalTPGFineGrainEBIdMapRcd>().get(handle); const EcalTPGFineGrainEBIdMap* obj = handle.product(); dbOutput->createNewIOV<const EcalTPGFineGrainEBIdMap>( new EcalTPGFineGrainEBIdMap(*obj),dbOutput->beginOfTime(), dbOutput->endOfTime(),recordName); } else if (container == "EcalTPGFineGrainStripEE") { edm::ESHandle<EcalTPGFineGrainStripEE> handle; evtSetup.get<EcalTPGFineGrainStripEERcd>().get(handle); const EcalTPGFineGrainStripEE* obj = handle.product(); dbOutput->createNewIOV<const EcalTPGFineGrainStripEE>( new EcalTPGFineGrainStripEE(*obj),dbOutput->beginOfTime(), dbOutput->endOfTime(),recordName); } else if (container == "EcalTPGFineGrainTowerEE") { edm::ESHandle<EcalTPGFineGrainTowerEE> handle; evtSetup.get<EcalTPGFineGrainTowerEERcd>().get(handle); const EcalTPGFineGrainTowerEE* obj = handle.product(); dbOutput->createNewIOV<const EcalTPGFineGrainTowerEE>( new EcalTPGFineGrainTowerEE(*obj),dbOutput->beginOfTime(), dbOutput->endOfTime(),recordName); } else if (container == "EcalTPGLutIdMap") { edm::ESHandle<EcalTPGLutIdMap> handle; evtSetup.get<EcalTPGLutIdMapRcd>().get(handle); const EcalTPGLutIdMap* obj = handle.product(); dbOutput->createNewIOV<const EcalTPGLutIdMap>( new EcalTPGLutIdMap(*obj),dbOutput->beginOfTime(), dbOutput->endOfTime(),recordName); } else if (container == "EcalTPGWeightIdMap") { edm::ESHandle<EcalTPGWeightIdMap> handle; evtSetup.get<EcalTPGWeightIdMapRcd>().get(handle); const EcalTPGWeightIdMap* obj = handle.product(); dbOutput->createNewIOV<const EcalTPGWeightIdMap>( new EcalTPGWeightIdMap(*obj), dbOutput->beginOfTime(),dbOutput->endOfTime(),recordName); } else if (container == "EcalTPGWeightGroup") { edm::ESHandle<EcalTPGWeightGroup> handle; evtSetup.get<EcalTPGWeightGroupRcd>().get(handle); const EcalTPGWeightGroup* obj = handle.product(); dbOutput->createNewIOV<const EcalTPGWeightGroup>( new EcalTPGWeightGroup(*obj),dbOutput->beginOfTime(), dbOutput->endOfTime(),recordName); } else if (container == "EcalTPGLutGroup") { edm::ESHandle<EcalTPGLutGroup> handle; evtSetup.get<EcalTPGLutGroupRcd>().get(handle); const EcalTPGLutGroup* obj = handle.product(); dbOutput->createNewIOV<const EcalTPGLutGroup>( new EcalTPGLutGroup(*obj),dbOutput->beginOfTime(), dbOutput->endOfTime(),recordName); } else if (container == "EcalTPGFineGrainEBGroup") { edm::ESHandle<EcalTPGFineGrainEBGroup> handle; evtSetup.get<EcalTPGFineGrainEBGroupRcd>().get(handle); const EcalTPGFineGrainEBGroup* obj = handle.product(); dbOutput->createNewIOV<const EcalTPGFineGrainEBGroup>( new EcalTPGFineGrainEBGroup(*obj),dbOutput->beginOfTime(), dbOutput->endOfTime(),recordName); } else if (container == "EcalTPGPhysicsConst") { edm::ESHandle<EcalTPGPhysicsConst> handle; evtSetup.get<EcalTPGPhysicsConstRcd>().get(handle); const EcalTPGPhysicsConst* obj = handle.product(); dbOutput->createNewIOV<const EcalTPGPhysicsConst>( new EcalTPGPhysicsConst(*obj),dbOutput->beginOfTime(), dbOutput->endOfTime(),recordName); } else if (container == "EcalTPGCrystalStatus") { edm::ESHandle<EcalTPGCrystalStatus> handle; evtSetup.get<EcalTPGCrystalStatusRcd>().get(handle); const EcalTPGCrystalStatus* obj = handle.product(); dbOutput->createNewIOV<const EcalTPGCrystalStatus>( new EcalTPGCrystalStatus(*obj),dbOutput->beginOfTime(), dbOutput->endOfTime(),recordName); } else if (container == "EcalTPGTowerStatus") { edm::ESHandle<EcalTPGTowerStatus> handle; evtSetup.get<EcalTPGTowerStatusRcd>().get(handle); const EcalTPGTowerStatus* obj = handle.product(); dbOutput->createNewIOV<const EcalTPGTowerStatus>( new EcalTPGTowerStatus(*obj),dbOutput->beginOfTime(), dbOutput->endOfTime(),recordName); } else if (container == "EcalTPGSpike") { edm::ESHandle<EcalTPGSpike> handle; evtSetup.get<EcalTPGSpikeRcd>().get(handle); const EcalTPGSpike* obj = handle.product(); dbOutput->createNewIOV<const EcalTPGSpike>( new EcalTPGSpike(*obj),dbOutput->beginOfTime(), dbOutput->endOfTime(),recordName); } else if (container == "EcalTPGStripStatus") { edm::ESHandle<EcalTPGStripStatus> handle; evtSetup.get<EcalTPGStripStatusRcd>().get(handle); const EcalTPGStripStatus* obj = handle.product(); dbOutput->createNewIOV<const EcalTPGStripStatus>( new EcalTPGStripStatus(*obj),dbOutput->beginOfTime(), dbOutput->endOfTime(),recordName); } else { throw cms::Exception("Unknown container"); } std::cout<< "EcalTPGDBCopy wrote " << recordName << std::endl; }
bool EcalTPGDBCopy::shouldCopy | ( | const edm::EventSetup & | evtSetup, |
std::string | container | ||
) | [private] |
Definition at line 94 of file EcalTPGDBCopy.cc.
References Exception, edm::EventSetup::get(), and m_cacheIDs.
Referenced by analyze().
{ unsigned long long cacheID = 0; if (container == "EcalTPGPedestals") { cacheID = evtSetup.get<EcalTPGPedestalsRcd>().cacheIdentifier(); } else if (container == "EcalTPGLinearizationConst") { cacheID = evtSetup.get<EcalTPGLinearizationConstRcd>().cacheIdentifier(); } else if (container == "EcalTPGSlidingWindow") { cacheID = evtSetup.get<EcalTPGSlidingWindowRcd>().cacheIdentifier(); } else if (container == "EcalTPGFineGrainEBIdMap") { cacheID = evtSetup.get<EcalTPGFineGrainEBIdMapRcd>().cacheIdentifier(); } else if (container == "EcalTPGFineGrainStripEE") { cacheID = evtSetup.get<EcalTPGFineGrainStripEERcd>().cacheIdentifier(); } else if (container == "EcalTPGFineGrainTowerEE") { cacheID = evtSetup.get<EcalTPGFineGrainTowerEERcd>().cacheIdentifier(); } else if (container == "EcalTPGLutIdMap") { cacheID = evtSetup.get<EcalTPGLutIdMapRcd>().cacheIdentifier(); } else if (container == "EcalTPGWeightIdMap") { cacheID = evtSetup.get<EcalTPGWeightIdMapRcd>().cacheIdentifier(); } else if (container == "EcalTPGWeightGroup") { cacheID = evtSetup.get<EcalTPGWeightGroupRcd>().cacheIdentifier(); } else if (container == "EcalTPGLutGroup") { cacheID = evtSetup.get<EcalTPGLutGroupRcd>().cacheIdentifier(); } else if (container == "EcalTPGFineGrainEBGroup") { cacheID = evtSetup.get<EcalTPGFineGrainEBGroupRcd>().cacheIdentifier(); } else if (container == "EcalTPGPhysicsConst") { cacheID = evtSetup.get<EcalTPGPhysicsConstRcd>().cacheIdentifier(); } else if (container == "EcalTPGCrystalStatus") { cacheID = evtSetup.get<EcalTPGCrystalStatusRcd>().cacheIdentifier(); } else if (container == "EcalTPGTowerStatus") { cacheID = evtSetup.get<EcalTPGTowerStatusRcd>().cacheIdentifier(); } else if (container == "EcalTPGSpike") { cacheID = evtSetup.get<EcalTPGSpikeRcd>().cacheIdentifier(); } else if (container == "EcalTPGStripStatus") { cacheID = evtSetup.get<EcalTPGStripStatusRcd>().cacheIdentifier(); } else { throw cms::Exception("Unknown container"); } if (m_cacheIDs[container] == cacheID) { return 0; } else { m_cacheIDs[container] = cacheID; return 1; } }
std::map<std::string, unsigned long long> EcalTPGDBCopy::m_cacheIDs [private] |
Definition at line 30 of file EcalTPGDBCopy.h.
Referenced by EcalTPGDBCopy(), and shouldCopy().
std::map<std::string, std::string> EcalTPGDBCopy::m_records [private] |
Definition at line 31 of file EcalTPGDBCopy.h.
Referenced by analyze(), copyToDB(), and EcalTPGDBCopy().
std::string EcalTPGDBCopy::m_timetype [private] |
Definition at line 29 of file EcalTPGDBCopy.h.