Skip to content

Commit

Permalink
Merge pull request #29411 from bsunanda/Run3-hcx252
Browse files Browse the repository at this point in the history
Run3 hcx252 Add provision of having dd4hep in saving geometry to DB
  • Loading branch information
cmsbuild authored Apr 16, 2020
2 parents 19b71b7 + 99aba1a commit dfa195c
Show file tree
Hide file tree
Showing 16 changed files with 139 additions and 34 deletions.
48 changes: 43 additions & 5 deletions CondTools/Geometry/plugins/HcalParametersDBBuilder.cc
Original file line number Diff line number Diff line change
@@ -1,34 +1,72 @@
#include "FWCore/Framework/interface/one/EDAnalyzer.h"
#include "FWCore/Framework/interface/ESTransientHandle.h"
#include "FWCore/ServiceRegistry/interface/Service.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
#include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
#include "FWCore/ServiceRegistry/interface/Service.h"
#include "CondCore/DBOutputService/interface/PoolDBOutputService.h"
#include "CondFormats/GeometryObjects/interface/HcalParameters.h"
#include "DetectorDescription/Core/interface/DDCompactView.h"
#include "DetectorDescription/DDCMS/interface/DDCompactView.h"
#include "Geometry/Records/interface/IdealGeometryRecord.h"
#include "Geometry/HcalCommonData/interface/HcalParametersFromDD.h"

//#define EDM_ML_DEBUG

class HcalParametersDBBuilder : public edm::one::EDAnalyzer<edm::one::WatchRuns> {
public:
HcalParametersDBBuilder(const edm::ParameterSet&) {}
HcalParametersDBBuilder(const edm::ParameterSet&);

static void fillDescriptions(edm::ConfigurationDescriptions&);

void beginRun(edm::Run const& iEvent, edm::EventSetup const&) override;
void analyze(edm::Event const& iEvent, edm::EventSetup const&) override {}
void endRun(edm::Run const& iEvent, edm::EventSetup const&) override {}

private:
bool fromDD4Hep_;
};

HcalParametersDBBuilder::HcalParametersDBBuilder(const edm::ParameterSet& ps)
: fromDD4Hep_(ps.getParameter<bool>("fromDD4Hep")) {
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HCalGeom") << "HcalParametersDBBuilder::HcalParametersDBBuilder called with dd4hep: "
<< fromDD4Hep_;
#endif
}

void HcalParametersDBBuilder::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
edm::ParameterSetDescription desc;
desc.add<bool>("fromDD4Hep", false);
descriptions.add("HcalParametersWriter", desc);
}

void HcalParametersDBBuilder::beginRun(const edm::Run&, edm::EventSetup const& es) {
HcalParameters* php = new HcalParameters;
edm::Service<cond::service::PoolDBOutputService> mydbservice;
if (!mydbservice.isAvailable()) {
edm::LogError("HcalParametersDBBuilder") << "PoolDBOutputService unavailable";
return;
}
edm::ESTransientHandle<DDCompactView> cpv;
es.get<IdealGeometryRecord>().get(cpv);

HcalParametersFromDD builder;
builder.build(&(*cpv), *php);

if (fromDD4Hep_) {
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HCalGeom") << "HcalParametersDBBuilder::Try to access cms::DDCompactView";
#endif
edm::ESTransientHandle<cms::DDCompactView> cpv;
es.get<IdealGeometryRecord>().get(cpv);
builder.build((*cpv), *php);
} else {
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HCalGeom") << "HcalParametersDBBuilder::Try to access DDCompactView";
#endif
edm::ESTransientHandle<DDCompactView> cpv;
es.get<IdealGeometryRecord>().get(cpv);
builder.build(&(*cpv), *php);
}

if (mydbservice->isNewTagRequest("HcalParametersRcd")) {
mydbservice->createNewIOV<HcalParameters>(
Expand Down
66 changes: 51 additions & 15 deletions CondTools/Geometry/plugins/PHGCalParametersDBBuilder.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,25 @@
#include "FWCore/Framework/interface/ESTransientHandle.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
#include "FWCore/ServiceRegistry/interface/Service.h"
#include "CondCore/DBOutputService/interface/PoolDBOutputService.h"
#include "CondFormats/GeometryObjects/interface/PHGCalParameters.h"
#include "DetectorDescription/Core/interface/DDCompactView.h"
#include "DetectorDescription/DDCMS/interface/DDCompactView.h"
#include "Geometry/Records/interface/IdealGeometryRecord.h"
#include "Geometry/HGCalCommonData/interface/HGCalParameters.h"
#include "Geometry/HGCalCommonData/interface/HGCalParametersFromDD.h"

//#define EDM_ML_DEBUG

class PHGCalParametersDBBuilder : public edm::one::EDAnalyzer<edm::one::WatchRuns> {
public:
PHGCalParametersDBBuilder(const edm::ParameterSet& iConfig) {
m_name = iConfig.getUntrackedParameter<std::string>("Name");
m_namew = iConfig.getUntrackedParameter<std::string>("NameW");
m_namec = iConfig.getUntrackedParameter<std::string>("NameC");
m_namet = iConfig.getUntrackedParameter<std::string>("NameT");
}
PHGCalParametersDBBuilder(const edm::ParameterSet&);

static void fillDescriptions(edm::ConfigurationDescriptions&);

void beginRun(edm::Run const& iEvent, edm::EventSetup const&) override;
void analyze(edm::Event const& iEvent, edm::EventSetup const&) override {}
Expand All @@ -26,27 +29,60 @@ class PHGCalParametersDBBuilder : public edm::one::EDAnalyzer<edm::one::WatchRun
private:
void swapParameters(HGCalParameters*, PHGCalParameters*);

std::string m_name;
std::string m_namew;
std::string m_namec;
std::string m_namet;
std::string name_, name2_, namew_, namec_, namet_;
bool fromDD4Hep_;
};

PHGCalParametersDBBuilder::PHGCalParametersDBBuilder(const edm::ParameterSet& iC) {
name_ = iC.getParameter<std::string>("name");
name2_ = iC.getParameter<std::string>("name2");
namew_ = iC.getParameter<std::string>("nameW");
namec_ = iC.getParameter<std::string>("nameC");
namet_ = iC.getParameter<std::string>("nameT");
fromDD4Hep_ = iC.getParameter<bool>("fromDD4Hep");
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HGCalGeom") << "HGCalParametersESModule for " << name_ << ":" << name2_ << ":" << namew_ << ":"
<< namec_ << ":" << namet_ << " and fromDD4Hep flag " << fromDD4Hep_;
#endif
}

void PHGCalParametersDBBuilder::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
edm::ParameterSetDescription desc;
desc.add<std::string>("name", "HGCalEESensitive");
desc.add<std::string>("name2", "HGCalEE");
desc.add<std::string>("nameW", "HGCalEEWafer");
desc.add<std::string>("nameC", "HGCalEECell");
desc.add<std::string>("nameT", "HGCal");
desc.add<bool>("fromDD4Hep", false);
descriptions.add("HGCalEEParametersWriter", desc);
}

void PHGCalParametersDBBuilder::beginRun(const edm::Run&, edm::EventSetup const& es) {
PHGCalParameters* phgp = new PHGCalParameters;
edm::Service<cond::service::PoolDBOutputService> mydbservice;
if (!mydbservice.isAvailable()) {
edm::LogError("PHGCalParametersDBBuilder") << "PoolDBOutputService unavailable";
return;
}
edm::ESTransientHandle<DDCompactView> cpv;
es.get<IdealGeometryRecord>().get(cpv);

HGCalParameters* ptp = new HGCalParameters(m_name);
HGCalParameters* ptp = new HGCalParameters(name_);
HGCalParametersFromDD builder;
builder.build(&(*cpv), *ptp, m_name, m_namew, m_namec, m_namet);
if (fromDD4Hep_) {
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HGCalGeom") << "PHGCalParametersDBBuilder::Try to access cm::DDCompactView";
#endif
edm::ESTransientHandle<cms::DDCompactView> cpv;
es.get<IdealGeometryRecord>().get(cpv);
builder.build(cpv.product(), *ptp, name_, namew_, namec_, namet_, name2_);
} else {
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HGCalGeom") << "PHGCalParametersDBBuilder::Try to access DDCompactView";
#endif
edm::ESTransientHandle<DDCompactView> cpv;
es.get<IdealGeometryRecord>().get(cpv);
builder.build(cpv.product(), *ptp, name_, namew_, namec_, namet_);
}
swapParameters(ptp, phgp);

delete ptp;

if (mydbservice->isNewTagRequest("PHGCalParametersRcd")) {
Expand Down
21 changes: 21 additions & 0 deletions CondTools/Geometry/python/HGCalParametersWriter_cff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import FWCore.ParameterSet.Config as cms

from CondTools.Geometry.HGCalEEParametersWriter_cfi import *

from Configuration.ProcessModifiers.dd4hep_cff import dd4hep

dd4hep.toModify(HGCalEEParametersWriter,
fromDD4Hep = cms.bool(True)
)

HGCalHESiParametersWriter = HGCalEEParametersWriter.clone(
name = cms.string("HGCalHESiliconSensitive"),
nameW = cms.string("HGCalHEWafer"),
nameC = cms.string("HGCalHECell"),
)

HGCalHEScParametersWriter = HGCalEEParametersWriter.clone(
name = cms.string("HGCalHEScintillatorSensitive"),
nameW = cms.string("HGCalWafer"),
nameC = cms.string("HGCalCell"),
)
9 changes: 9 additions & 0 deletions CondTools/Geometry/python/HcalParametersWriter_cff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import FWCore.ParameterSet.Config as cms

from CondTools.Geometry.HcalParametersWriter_cfi import *

from Configuration.ProcessModifiers.dd4hep_cff import dd4hep

dd4hep.toModify(HcalParametersWriter,
fromDD4Hep = cms.bool(True)
)
5 changes: 3 additions & 2 deletions CondTools/Geometry/test/calogeometry2026writer.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
process.load('CondCore.CondDB.CondDB_cfi')
process.load('Configuration.Geometry.GeometryExtended2026D41_cff')
process.load('Geometry.CaloEventSetup.CaloGeometry2026DBWriter_cfi')
process.load('CondTools.Geometry.HcalParametersWriter_cff')

process.source = cms.Source("EmptyIOVSource",
lastValue = cms.uint64(1),
timetype = cms.string('runnumber'),
Expand All @@ -16,8 +18,7 @@
EcalP = cms.untracked.bool(False),
HGCal = cms.untracked.bool(True))

process.HcalParametersWriter = cms.EDAnalyzer("HcalParametersDBBuilder")

process.HcalParametersWriter.fromDD4Hep = cms.bool(False)
process.CondDB.timetype = cms.untracked.string('runnumber')
process.CondDB.connect = cms.string('sqlite_file:myfile.db')
process.PoolDBOutputService = cms.Service("PoolDBOutputService",
Expand Down
3 changes: 2 additions & 1 deletion CondTools/Geometry/test/calogeometrywriter.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
process.load('CondCore.CondDB.CondDB_cfi')
process.load('Configuration.StandardSequences.GeometryExtended_cff')
process.load('Geometry.CaloEventSetup.CaloGeometryDBWriter_cfi')
process.load('CondTools.Geometry.HcalParametersWriter_cff')
process.source = cms.Source("EmptyIOVSource",
lastValue = cms.uint64(1),
timetype = cms.string('runnumber'),
Expand All @@ -12,8 +13,8 @@
)

process.CaloGeometryWriter = cms.EDAnalyzer("PCaloGeometryBuilder")
process.HcalParametersWriter = cms.EDAnalyzer("HcalParametersDBBuilder")

process.HcalParametersWriter.fromDD4Hep = cms.bool(False)
process.CondDB.timetype = cms.untracked.string('runnumber')
process.CondDB.connect = cms.string('sqlite_file:myfile.db')
process.PoolDBOutputService = cms.Service("PoolDBOutputService",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
process.load('Configuration.Geometry.GeometryExtended2016_cff')
process.load('Geometry.MuonNumbering.muonNumberingInitialization_cfi')
process.load('Geometry.CaloEventSetup.CaloGeometryDBWriter_cfi')
process.load('CondTools.Geometry.HcalParametersWriter_cff')

process.source = cms.Source("EmptyIOVSource",
lastValue = cms.uint64(1),
Expand All @@ -35,7 +36,6 @@
process.TrackerParametersWriter = cms.EDAnalyzer("PTrackerParametersDBBuilder")

process.CaloGeometryWriter = cms.EDAnalyzer("PCaloGeometryBuilder")
process.HcalParametersWriter = cms.EDAnalyzer("HcalParametersDBBuilder")

process.CSCGeometryWriter = cms.EDAnalyzer("CSCRecoIdealDBLoader")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
process.load('Configuration.Geometry.GeometryExtended2017Plan1_cff')
process.load('Geometry.MuonNumbering.muonNumberingInitialization_cfi')
process.load('Geometry.CaloEventSetup.CaloGeometryDBWriter_cfi')
process.load('CondTools.Geometry.HcalParametersWriter_cff')

process.source = cms.Source("EmptyIOVSource",
lastValue = cms.uint64(1),
Expand All @@ -36,7 +37,6 @@
process.TrackerParametersWriter = cms.EDAnalyzer("PTrackerParametersDBBuilder")

process.CaloGeometryWriter = cms.EDAnalyzer("PCaloGeometryBuilder")
process.HcalParametersWriter = cms.EDAnalyzer("HcalParametersDBBuilder")

process.CSCGeometryWriter = cms.EDAnalyzer("CSCRecoIdealDBLoader")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
process.load('Configuration.Geometry.GeometryExtended2017_cff')
process.load('Geometry.MuonNumbering.muonNumberingInitialization_cfi')
process.load('Geometry.CaloEventSetup.CaloGeometryDBWriter_cfi')
process.load('CondTools.Geometry.HcalParametersWriter_cff')

process.source = cms.Source("EmptyIOVSource",
lastValue = cms.uint64(1),
Expand All @@ -36,7 +37,6 @@
process.TrackerParametersWriter = cms.EDAnalyzer("PTrackerParametersDBBuilder")

process.CaloGeometryWriter = cms.EDAnalyzer("PCaloGeometryBuilder")
process.HcalParametersWriter = cms.EDAnalyzer("HcalParametersDBBuilder")

process.CSCGeometryWriter = cms.EDAnalyzer("CSCRecoIdealDBLoader")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
process.load('Configuration.Geometry.GeometryExtended2018_cff')
process.load('Geometry.MuonNumbering.muonNumberingInitialization_cfi')
process.load('Geometry.CaloEventSetup.CaloGeometryDBWriter_cfi')
process.load('CondTools.Geometry.HcalParametersWriter_cff')

process.source = cms.Source("EmptyIOVSource",
lastValue = cms.uint64(1),
Expand All @@ -36,7 +37,6 @@
process.TrackerParametersWriter = cms.EDAnalyzer("PTrackerParametersDBBuilder")

process.CaloGeometryWriter = cms.EDAnalyzer("PCaloGeometryBuilder")
process.HcalParametersWriter = cms.EDAnalyzer("HcalParametersDBBuilder")

process.CSCGeometryWriter = cms.EDAnalyzer("CSCRecoIdealDBLoader")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
process.load('Configuration.Geometry.GeometryExtended2019_cff')
process.load('Geometry.MuonNumbering.muonNumberingInitialization_cfi')
process.load('Geometry.CaloEventSetup.CaloGeometryDBWriter_cfi')
process.load('CondTools.Geometry.HcalParametersWriter_cff')

process.source = cms.Source("EmptyIOVSource",
lastValue = cms.uint64(1),
Expand All @@ -36,7 +37,6 @@
process.TrackerParametersWriter = cms.EDAnalyzer("PTrackerParametersDBBuilder")

process.CaloGeometryWriter = cms.EDAnalyzer("PCaloGeometryBuilder")
process.HcalParametersWriter = cms.EDAnalyzer("HcalParametersDBBuilder")

process.CSCGeometryWriter = cms.EDAnalyzer("CSCRecoIdealDBLoader")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
process.load('Configuration.Geometry.GeometryExtended2021_cff')
process.load('Geometry.MuonNumbering.muonNumberingInitialization_cfi')
process.load('Geometry.CaloEventSetup.CaloGeometryDBWriter_cfi')
process.load('CondTools.Geometry.HcalParametersWriter_cff')

process.source = cms.Source("EmptyIOVSource",
lastValue = cms.uint64(1),
Expand All @@ -36,7 +37,6 @@
process.TrackerParametersWriter = cms.EDAnalyzer("PTrackerParametersDBBuilder")

process.CaloGeometryWriter = cms.EDAnalyzer("PCaloGeometryBuilder")
process.HcalParametersWriter = cms.EDAnalyzer("HcalParametersDBBuilder")

process.CSCGeometryWriter = cms.EDAnalyzer("CSCRecoIdealDBLoader")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
process.load('Configuration.Geometry.GeometryExtended2026D41_cff')
process.load('Geometry.MuonNumbering.muonNumberingInitialization_cfi')
process.load('Geometry.CaloEventSetup.CaloGeometry2026DBWriter_cfi')
process.load('CondTools.Geometry.HcalParametersWriter_cff')

process.source = cms.Source("EmptyIOVSource",
lastValue = cms.uint64(1),
Expand Down Expand Up @@ -40,8 +41,6 @@
EcalP = cms.untracked.bool(False),
HGCal = cms.untracked.bool(False))

process.HcalParametersWriter = cms.EDAnalyzer("HcalParametersDBBuilder")

process.CSCGeometryWriter = cms.EDAnalyzer("CSCRecoIdealDBLoader")

process.DTGeometryWriter = cms.EDAnalyzer("DTRecoIdealDBLoader")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
process.load('Configuration.Geometry.GeometryExtended2015dev_cff')
process.load('Geometry.MuonNumbering.muonNumberingInitialization_cfi')
process.load('Geometry.CaloEventSetup.CaloGeometryDBWriter_cfi')
process.load('CondTools.Geometry.HcalParametersWriter_cff')

process.source = cms.Source("EmptyIOVSource",
lastValue = cms.uint64(1),
Expand All @@ -36,7 +37,6 @@
process.TrackerParametersWriter = cms.EDAnalyzer("PTrackerParametersDBBuilder")

process.CaloGeometryWriter = cms.EDAnalyzer("PCaloGeometryBuilder")
process.HcalParametersWriter = cms.EDAnalyzer("HcalParametersDBBuilder")

process.CSCGeometryWriter = cms.EDAnalyzer("CSCRecoIdealDBLoader")

Expand Down
2 changes: 1 addition & 1 deletion CondTools/Geometry/test/writehelpers/geometryrun2writer.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
process.load('Configuration.Geometry.GeometryExtended2015_cff')
process.load('Geometry.MuonNumbering.muonNumberingInitialization_cfi')
process.load('Geometry.CaloEventSetup.CaloGeometryDBWriter_cfi')
process.load('CondTools.Geometry.HcalParametersWriter_cff')

process.source = cms.Source("EmptyIOVSource",
lastValue = cms.uint64(1),
Expand All @@ -36,7 +37,6 @@
process.TrackerParametersWriter = cms.EDAnalyzer("PTrackerParametersDBBuilder")

process.CaloGeometryWriter = cms.EDAnalyzer("PCaloGeometryBuilder")
process.HcalParametersWriter = cms.EDAnalyzer("HcalParametersDBBuilder")

process.CSCGeometryWriter = cms.EDAnalyzer("CSCRecoIdealDBLoader")

Expand Down
Loading

0 comments on commit dfa195c

Please sign in to comment.