Skip to content

Commit

Permalink
Merge pull request #30043 from bsunanda/Run3-gem39
Browse files Browse the repository at this point in the history
Run3-gem39 Modify the ESProducer for GEM/ME0 to work better for ddd/dd4hep
  • Loading branch information
cmsbuild committed Jun 2, 2020
2 parents fb31b0a + cc925ad commit 0f1d234
Show file tree
Hide file tree
Showing 14 changed files with 164 additions and 197 deletions.
1 change: 1 addition & 0 deletions Geometry/CSCGeometry/test/testCSCGeometry_cfg.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

# Endcap Muon geometry
# ====================
process.load("Geometry.MuonNumbering.muonGeometryConstants_cff")
process.load("Geometry.MuonNumbering.muonNumberingInitialization_cfi")
process.load("Geometry.MuonCommonData.muonEndcapIdealGeometryXML_cfi")

Expand Down
31 changes: 18 additions & 13 deletions Geometry/GEMGeometryBuilder/plugins/GEMGeometryESModule.cc
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,17 @@
// Author: Sergio Lo Meo (sergio.lo.meo@cern.ch) following what Ianna Osburne made for DTs (DD4HEP migration)
// Created: 27 Jan 2020
*/
#include "Geometry/GEMGeometryBuilder/src/GEMGeometryBuilderFromDDD.h"
#include "Geometry/GEMGeometryBuilder/src/GEMGeometryBuilder.h"
#include "Geometry/GEMGeometryBuilder/src/GEMGeometryBuilderFromCondDB.h"
#include "Geometry/GEMGeometry/interface/GEMGeometry.h"

#include "Geometry/Records/interface/IdealGeometryRecord.h"
#include "Geometry/Records/interface/MuonGeometryRecord.h"
#include "Geometry/Records/interface/GEMRecoGeometryRcd.h"
#include "Geometry/MuonNumbering/interface/MuonGeometryConstants.h"
#include "DetectorDescription/Core/interface/DDCompactView.h"
#include "DetectorDescription/DDCMS/interface/DDCompactView.h"

#include "Geometry/Records/interface/GEMRecoGeometryRcd.h"
#include "CondFormats/GeometryObjects/interface/RecoIdealGeometry.h"

#include "FWCore/Framework/interface/EventSetup.h"
Expand All @@ -24,9 +26,7 @@
#include "FWCore/Framework/interface/ModuleFactory.h"
#include "FWCore/Framework/interface/ESProducer.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"

#include "Geometry/Records/interface/MuonGeometryRecord.h"
#include "Geometry/GEMGeometry/interface/GEMGeometry.h"
#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"

// Alignments
#include "CondFormats/Alignment/interface/DetectorGlobalPosition.h"
Expand All @@ -38,15 +38,13 @@

#include <memory>

using namespace edm;

class GEMGeometryESModule : public edm::ESProducer {
public:
/// Constructor
GEMGeometryESModule(const edm::ParameterSet& p);

/// Destructor
~GEMGeometryESModule() override;
/// Define the cfi file
static void fillDescriptions(edm::ConfigurationDescriptions&);

/// Produce GEMGeometry.
std::unique_ptr<GEMGeometry> produce(const MuonGeometryRecord& record);
Expand All @@ -68,7 +66,7 @@ class GEMGeometryESModule : public edm::ESProducer {

GEMGeometryESModule::GEMGeometryESModule(const edm::ParameterSet& p)
: useDDD_{p.getParameter<bool>("useDDD")},
useDD4hep_{p.getUntrackedParameter<bool>("useDD4hep", false)},
useDD4hep_{p.getParameter<bool>("useDD4Hep")},
applyAlignment_(p.getParameter<bool>("applyAlignment")),
alignmentsLabel_(p.getParameter<std::string>("alignmentsLabel")) {
auto cc = setWhatProduced(this);
Expand All @@ -86,20 +84,27 @@ GEMGeometryESModule::GEMGeometryESModule(const edm::ParameterSet& p)
}
}

GEMGeometryESModule::~GEMGeometryESModule() {}
void GEMGeometryESModule::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
edm::ParameterSetDescription desc;
desc.add<bool>("useDDD", true);
desc.add<bool>("useDD4Hep", false);
desc.add<bool>("applyAlignment", false);
desc.add<std::string>("alignmentsLabel", "");
descriptions.add("gemGeometry", desc);
}

std::unique_ptr<GEMGeometry> GEMGeometryESModule::produce(const MuonGeometryRecord& record) {
auto gemGeometry = std::make_unique<GEMGeometry>();

if (useDDD_) {
auto cpv = record.getTransientHandle(cpvToken_);
const auto& mdc = record.get(mdcToken_);
GEMGeometryBuilderFromDDD builder;
GEMGeometryBuilder builder;
builder.build(*gemGeometry, cpv.product(), mdc);
} else if (useDD4hep_) {
edm::ESTransientHandle<cms::DDCompactView> cpv = record.getTransientHandle(dd4hepcpvToken_);
const auto& mdc = record.get(mdcToken_);
GEMGeometryBuilderFromDDD builder;
GEMGeometryBuilder builder;
builder.build(*gemGeometry, cpv.product(), mdc);
} else {
const auto& riggem = record.get(riggemToken_);
Expand Down
17 changes: 12 additions & 5 deletions Geometry/GEMGeometryBuilder/plugins/ME0GeometryESModule.cc
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@

#include "Geometry/GEMGeometryBuilder/src/ME0GeometryBuilder.h"
#include "Geometry/GEMGeometryBuilder/src/ME0GeometryBuilderFromCondDB.h"
#include "Geometry/GEMGeometry/interface/ME0Geometry.h"

#include "Geometry/Records/interface/IdealGeometryRecord.h"
#include "Geometry/Records/interface/ME0RecoGeometryRcd.h"
#include "Geometry/Records/interface/MuonGeometryRecord.h"
#include "Geometry/MuonNumbering/interface/MuonGeometryConstants.h"
#include "DetectorDescription/Core/interface/DDCompactView.h"
#include "DetectorDescription/DDCMS/interface/DDCompactView.h"

#include "Geometry/Records/interface/ME0RecoGeometryRcd.h"
#include "Geometry/Records/interface/MuonGeometryRecord.h"
#include "Geometry/GEMGeometry/interface/ME0Geometry.h"
#include "CondFormats/GeometryObjects/interface/RecoIdealGeometry.h"

#include "FWCore/Framework/interface/EventSetup.h"
Expand All @@ -27,13 +27,15 @@
#include "FWCore/Framework/interface/ModuleFactory.h"
#include "FWCore/Framework/interface/ESProducer.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"

#include <memory>

class ME0GeometryESModule : public edm::ESProducer {
public:
ME0GeometryESModule(const edm::ParameterSet& p);
~ME0GeometryESModule() override;

static void fillDescriptions(edm::ConfigurationDescriptions&);

std::unique_ptr<ME0Geometry> produce(const MuonGeometryRecord& record);

Expand All @@ -60,7 +62,12 @@ ME0GeometryESModule::ME0GeometryESModule(const edm::ParameterSet& p) {
}
}

ME0GeometryESModule::~ME0GeometryESModule() {}
void ME0GeometryESModule::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
edm::ParameterSetDescription desc;
desc.add<bool>("useDDD", true);
desc.add<bool>("useDD4Hep", false);
descriptions.add("me0Geometry", desc);
}

std::unique_ptr<ME0Geometry> ME0GeometryESModule::produce(const MuonGeometryRecord& record) {
edm::LogVerbatim("ME0GeometryESModule") << "ME0GeometryESModule::produce with useDDD = " << useDDD_;
Expand Down
5 changes: 5 additions & 0 deletions Geometry/GEMGeometryBuilder/python/gemGeometry_cff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from Geometry.GEMGeometryBuilder.gemGeometry_cfi import gemGeometry

from Configuration.ProcessModifiers.dd4hep_cff import dd4hep

dd4hep.toModify(gemGeometry, fromDDD = False, fromDD4hep = True)
10 changes: 0 additions & 10 deletions Geometry/GEMGeometryBuilder/python/gemGeometry_cfi.py

This file was deleted.

5 changes: 5 additions & 0 deletions Geometry/GEMGeometryBuilder/python/me0Geometry_cff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from Geometry.GEMGeometryBuilder.me0Geometry_cfi import me0Geometry

from Configuration.ProcessModifiers.dd4hep_cff import dd4hep

dd4hep.toModify(me0Geometry, fromDDD = False, fromDD4hep = True)
9 changes: 0 additions & 9 deletions Geometry/GEMGeometryBuilder/python/me0Geometry_cfi.py

This file was deleted.

Loading

0 comments on commit 0f1d234

Please sign in to comment.