From 294f1626fd607b54d4f9f5ec69510de758694ae1 Mon Sep 17 00:00:00 2001 From: Ianna Osborne Date: Fri, 19 Jun 2015 17:12:55 +0200 Subject: [PATCH 1/2] Add Hcal parameters ES Producer --- .../plugins/HcalParametersESModule.cc | 45 +++++++++++++++++++ .../plugins/HcalParametersESModule.h | 28 ++++++++++++ .../runHcalParametersFromDDAnalyzer_cfg.py | 17 +++++++ 3 files changed, 90 insertions(+) create mode 100644 Geometry/HcalTowerAlgo/plugins/HcalParametersESModule.cc create mode 100644 Geometry/HcalTowerAlgo/plugins/HcalParametersESModule.h create mode 100644 Geometry/HcalTowerAlgo/test/runHcalParametersFromDDAnalyzer_cfg.py diff --git a/Geometry/HcalTowerAlgo/plugins/HcalParametersESModule.cc b/Geometry/HcalTowerAlgo/plugins/HcalParametersESModule.cc new file mode 100644 index 0000000000000..9981aa6ec3156 --- /dev/null +++ b/Geometry/HcalTowerAlgo/plugins/HcalParametersESModule.cc @@ -0,0 +1,45 @@ +#include "HcalParametersESModule.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Framework/interface/ModuleFactory.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/ESTransientHandle.h" +#include "DetectorDescription/Core/interface/DDCompactView.h" +#include "Geometry/Records/interface/IdealGeometryRecord.h" +#include "Geometry/Records/interface/PHcalParametersRcd.h" +#include "Geometry/HcalTowerAlgo/interface/HcalParametersFromDD.h" +#include "CondFormats/GeometryObjects/interface/PHcalParameters.h" + +HcalParametersESModule::HcalParametersESModule( const edm::ParameterSet& ) +{ + edm::LogInfo("HCAL") << "HcalParametersESModule::HcalParametersESModule"; + + setWhatProduced(this); +} + +HcalParametersESModule::~HcalParametersESModule() +{} + +void +HcalParametersESModule::fillDescriptions( edm::ConfigurationDescriptions & descriptions ) +{ + edm::ParameterSetDescription desc; + descriptions.add( "hcalParameters", desc ); +} + +HcalParametersESModule::ReturnType +HcalParametersESModule::produce( const PHcalParametersRcd& iRecord ) +{ + //edm::LogInfo("HcalParametersESModule") + std::cout << "HcalParametersESModule::produce(const PHcalParametersRcd& iRecord)" << std::endl; + edm::ESTransientHandle cpv; + iRecord.getRecord().get( cpv ); + + PHcalParameters* ptp = new PHcalParameters(); + HcalParametersFromDD builder; + builder.build( &(*cpv), *ptp ); + + return ReturnType( ptp ) ; +} + +DEFINE_FWK_EVENTSETUP_MODULE( HcalParametersESModule); diff --git a/Geometry/HcalTowerAlgo/plugins/HcalParametersESModule.h b/Geometry/HcalTowerAlgo/plugins/HcalParametersESModule.h new file mode 100644 index 0000000000000..943fc1b7ff871 --- /dev/null +++ b/Geometry/HcalTowerAlgo/plugins/HcalParametersESModule.h @@ -0,0 +1,28 @@ +#ifndef Geometry_HcalTowerAlgo_HcalParametersESModule_H +#define Geometry_HcalTowerAlgo_HcalParametersESModule_H + +#include "FWCore/Framework/interface/ESProducer.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "Geometry/Records/interface/IdealGeometryRecord.h" +#include + +namespace edm { + class ConfigurationDescriptions; +} +class PHcalParameters; +class PHcalParametersRcd; + +class HcalParametersESModule : public edm::ESProducer +{ + public: + HcalParametersESModule( const edm::ParameterSet & ); + ~HcalParametersESModule( void ); + + typedef boost::shared_ptr ReturnType; + + static void fillDescriptions( edm::ConfigurationDescriptions & ); + + ReturnType produce( const PHcalParametersRcd & ); +}; + +#endif diff --git a/Geometry/HcalTowerAlgo/test/runHcalParametersFromDDAnalyzer_cfg.py b/Geometry/HcalTowerAlgo/test/runHcalParametersFromDDAnalyzer_cfg.py new file mode 100644 index 0000000000000..38fb98c3652d6 --- /dev/null +++ b/Geometry/HcalTowerAlgo/test/runHcalParametersFromDDAnalyzer_cfg.py @@ -0,0 +1,17 @@ +import FWCore.ParameterSet.Config as cms +process = cms.Process("HcalParametersTest") + +process.load('Configuration.Geometry.GeometryExtended2015_cff') +process.load('Geometry.HcalTowerAlgo.hcalParameters_cfi') + +process.source = cms.Source("EmptySource") +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) + ) + +process.hpa = cms.EDAnalyzer("HcalParametersAnalyzer") + +process.Timing = cms.Service("Timing") +process.SimpleMemoryCheck = cms.Service("SimpleMemoryCheck") + +process.p1 = cms.Path(process.hpa) From 1423bbffce1061528c09f174fb5f40fadd7a1c66 Mon Sep 17 00:00:00 2001 From: Ianna Osborne Date: Fri, 19 Jun 2015 17:13:41 +0200 Subject: [PATCH 2/2] Introduce record dependency --- Geometry/HcalTowerAlgo/plugins/BuildFile.xml | 1 + Geometry/Records/interface/PHcalParametersRcd.h | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Geometry/HcalTowerAlgo/plugins/BuildFile.xml b/Geometry/HcalTowerAlgo/plugins/BuildFile.xml index 4a970ba3506ce..3f453f37bec48 100644 --- a/Geometry/HcalTowerAlgo/plugins/BuildFile.xml +++ b/Geometry/HcalTowerAlgo/plugins/BuildFile.xml @@ -3,6 +3,7 @@ + diff --git a/Geometry/Records/interface/PHcalParametersRcd.h b/Geometry/Records/interface/PHcalParametersRcd.h index d6c7a97eb7fbd..51fff817372e6 100644 --- a/Geometry/Records/interface/PHcalParametersRcd.h +++ b/Geometry/Records/interface/PHcalParametersRcd.h @@ -1,8 +1,11 @@ #ifndef Geometry_Records_PHcalParametersRcd_H #define Geometry_Records_PHcalParametersRcd_H -#include "FWCore/Framework/interface/EventSetupRecordImplementation.h" +#include "FWCore/Framework/interface/DependentRecordImplementation.h" +#include "Geometry/Records/interface/IdealGeometryRecord.h" +#include "boost/mpl/vector.hpp" -class PHcalParametersRcd : public edm::eventsetup::EventSetupRecordImplementation {}; +class PHcalParametersRcd : public edm::eventsetup::DependentRecordImplementation > {}; #endif // Geometry_Records_PHcalParameters_H