Skip to content

Commit

Permalink
Merge pull request #29813 from slomeo/ME0migrationToDD4HEP
Browse files Browse the repository at this point in the history
ME0 migration to DD4HEP
  • Loading branch information
cmsbuild committed May 13, 2020
2 parents 97e7a39 + 1936f02 commit 9fd0d32
Show file tree
Hide file tree
Showing 18 changed files with 1,244 additions and 421 deletions.
21 changes: 21 additions & 0 deletions Configuration/Geometry/python/GeometryDD4hepExtended2026D41_cff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import FWCore.ParameterSet.Config as cms

#
# Geometry master configuration
#
# Ideal geometry, needed for simulation
DDDetectorESProducer = cms.ESSource("DDDetectorESProducer",
confGeomXMLFiles = cms.FileInPath('Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D41.xml'),
appendToDataLabel = cms.string('')
)

DDSpecParRegistryESProducer = cms.ESProducer("DDSpecParRegistryESProducer",
appendToDataLabel = cms.string('')
)

DDVectorRegistryESProducer = cms.ESProducer("DDVectorRegistryESProducer",
appendToDataLabel = cms.string(''))

DDCompactViewESProducer = cms.ESProducer("DDCompactViewESProducer",
appendToDataLabel = cms.string('')
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import FWCore.ParameterSet.Config as cms

from Configuration.Geometry.GeometryDD4hepExtended2026D41_cff import *
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,8 @@
<Include ref="Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml"/>
<Include ref="Geometry/CSCGeometryBuilder/data/cscSpecs.xml"/>
<Include ref="Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml"/>
<Include ref="Geometry/GEMGeometryBuilder/data/v7/GEMSpecsFilter.xml"/>
<Include ref="Geometry/GEMGeometryBuilder/data/v7/GEMSpecs.xml"/>
<Include ref="Geometry/GEMGeometryBuilder/data/v10/GEMSpecsFilter.xml"/>
<Include ref="Geometry/GEMGeometryBuilder/data/v10/GEMSpecs.xml"/>
<Include ref="Geometry/ForwardCommonData/data/brmsens.xml"/>
<Include ref="Geometry/ForwardSimData/data/zdcsens.xml"/>
<Include ref="Geometry/MTDSimData/data/CrystalBarPhiFlat/mtdsens.xml"/>
Expand Down
4 changes: 2 additions & 2 deletions Geometry/GEMGeometry/test/testME0Geometry_cfg.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
###############################################################
process.load("FWCore.MessageLogger.MessageLogger_cfi")
# process.MessageLogger.categories.append("ME0GeometryESModule")
# process.MessageLogger.categories.append("ME0GeometryBuilderFromDDD")
# process.MessageLogger.categories.append("ME0GeometryBuilder")
# process.MessageLogger.categories.append("ME0NumberingScheme")
process.MessageLogger.debugModules = cms.untracked.vstring("*")
process.MessageLogger.destinations = cms.untracked.vstring("cout","junk")
Expand All @@ -23,7 +23,7 @@
default = cms.untracked.PSet( limit = cms.untracked.int32(0) ),
FwkReport = cms.untracked.PSet( limit = cms.untracked.int32(-1) ),
# ME0GeometryESModule = cms.untracked.PSet( limit = cms.untracked.int32(-1) ),
# ME0GeometryBuilderFromDDD = cms.untracked.PSet( limit = cms.untracked.int32(-1) ),
# ME0GeometryBuilder = cms.untracked.PSet( limit = cms.untracked.int32(-1) ),
# ME0NumberingScheme = cms.untracked.PSet( limit = cms.untracked.int32(-1) ),
)

Expand Down
29 changes: 29 additions & 0 deletions Geometry/GEMGeometryBuilder/data/v10/GEMSpecs.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?xml version="1.0"?>
<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd">
<SpecParSection label="GEMSpecs.xml">
<SpecPar name="nStripsME0" eval="true">
<PartSelector path="//ME0Box/ME0L/GHA0.."/>
<Parameter name="nStrips" value="384"/>
</SpecPar>
<SpecPar name="nStripsGE11" eval="true">
<PartSelector path="//GHA1.."/>
<Parameter name="nStrips" value="384"/>
</SpecPar>
<SpecPar name="nStripsGE21" eval="true">
<PartSelector path="//GHA2.."/>
<Parameter name="nStrips" value="768"/>
</SpecPar>
<SpecPar name="nPadsME0" eval="true">
<PartSelector path="//ME0Box/ME0L/GHA0.."/>
<Parameter name="nPads" value="192"/>
</SpecPar>
<SpecPar name="nPadsGE11" eval="true">
<PartSelector path="//GHA1.."/>
<Parameter name="nPads" value="192"/>
</SpecPar>
<SpecPar name="nPadsGE21" eval="true">
<PartSelector path="//GHA2.."/>
<Parameter name="nPads" value="384"/>
</SpecPar>
</SpecParSection>
</DDDefinition>
22 changes: 22 additions & 0 deletions Geometry/GEMGeometryBuilder/data/v10/GEMSpecsFilter.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<DDDefinition xmlns="http://www.cern.ch/cms/DDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cern.ch/cms/DDL ../../../DetectorDescription/Schema/DDLSchema.xsd">
<SpecParSection label="GEMSpecsFilter.xml">
<SpecPar name="MuonME0Tree">
<PartSelector path="//ME0Box"/>
<PartSelector path="//ME0Box/ME0L"/>
<PartSelector path="//ME0Box/ME0L/GHA0..*"/>
<Parameter name="MuStructure" value="MuonEndCapME0"/>
</SpecPar>
<SpecPar name="MuonGEMTree">
<PartSelector path="//GEMBox11L"/>
<PartSelector path="//GSAX11L"/>
<PartSelector path="//GEMBox11S"/>
<PartSelector path="//GSAX11S"/>
<PartSelector path="//GHA1..*"/>
<PartSelector path="//GEMBox21.*"/>
<PartSelector path="//GSAX21.*"/>
<PartSelector path="//GHA2..*"/>
<Parameter name="MuStructure" value="MuonEndCapGEM"/>
</SpecPar>
</SpecParSection>
</DDDefinition>
7 changes: 7 additions & 0 deletions Geometry/GEMGeometryBuilder/plugins/BuildFile.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,10 @@
<use name="Geometry/GEMGeometryBuilder"/>
<flags EDM_PLUGIN="1"/>
</library>

<library name="ME0GeometryValidationPlugins" file="ME0GeometryValidate.cc">
<use name="Fireworks/Core"/>
<use name="Geometry/GEMGeometry"/>
<use name="rootgeom"/>
<flags EDM_PLUGIN="1"/>
</library>
41 changes: 28 additions & 13 deletions Geometry/GEMGeometryBuilder/plugins/ME0GeometryESModule.cc
Original file line number Diff line number Diff line change
@@ -1,15 +1,23 @@
/** \file
*
* \author M. Maggi - INFN Bari
*/
/*
//\class ME0GeometryESModule
#include "Geometry/GEMGeometryBuilder/src/ME0GeometryBuilderFromDDD.h"
Description: ME0 GeometryESModule from DD & DD4hep
DD4hep part added to the original old file (DD version) made by M. Maggi (INFN Bari)
//
// Author: Sergio Lo Meo (sergio.lo.meo@cern.ch) following what Ianna Osborne made for DTs (DD4HEP migration)
// Created: 29 Apr 2020
*/

#include "Geometry/GEMGeometryBuilder/src/ME0GeometryBuilder.h"
#include "Geometry/GEMGeometryBuilder/src/ME0GeometryBuilderFromCondDB.h"

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

#include "Geometry/MuonNumbering/interface/DD4hep_MuonNumbering.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"
Expand All @@ -28,28 +36,30 @@ using namespace edm;

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

/// Destructor
~ME0GeometryESModule() override;

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

private:
edm::ESGetToken<DDCompactView, IdealGeometryRecord> cpvToken_;
edm::ESGetToken<MuonGeometryConstants, IdealGeometryRecord> mdcToken_;
edm::ESGetToken<cms::DDCompactView, IdealGeometryRecord> dd4hepcpvToken_;
edm::ESGetToken<cms::MuonNumbering, MuonNumberingRecord> dd4hepmdcToken_;
edm::ESGetToken<RecoIdealGeometry, ME0RecoGeometryRcd> rigme0Token_;
// use the DDD as Geometry source
// use the DDD or DD4hep as Geometry source
bool useDDD_;
bool useDD4hep_;
};

ME0GeometryESModule::ME0GeometryESModule(const edm::ParameterSet& p) {
useDDD_ = p.getParameter<bool>("useDDD");
useDD4hep_ = p.getUntrackedParameter<bool>("useDD4hep", false);
auto cc = setWhatProduced(this);
if (useDDD_) {
cc.setConsumes(cpvToken_).setConsumes(mdcToken_);
} else if (useDD4hep_) {
cc.setConsumes(dd4hepcpvToken_).setConsumes(dd4hepmdcToken_);
} else {
cc.setConsumes(rigme0Token_);
}
Expand All @@ -59,12 +69,17 @@ ME0GeometryESModule::~ME0GeometryESModule() {}

std::unique_ptr<ME0Geometry> ME0GeometryESModule::produce(const MuonGeometryRecord& record) {
LogTrace("ME0GeometryESModule") << "ME0GeometryESModule::produce with useDDD = " << useDDD_;

if (useDDD_) {
LogTrace("ME0GeometryESModule") << "ME0GeometryESModule::produce :: ME0GeometryBuilderFromDDD builder";
LogTrace("ME0GeometryESModule") << "ME0GeometryESModule::produce :: ME0GeometryBuilder builder";
auto cpv = record.getTransientHandle(cpvToken_);
const auto& mdc = record.get(mdcToken_);
ME0GeometryBuilderFromDDD builder;
ME0GeometryBuilder builder;
return std::unique_ptr<ME0Geometry>(builder.build(cpv.product(), mdc));
} else if (useDD4hep_) {
LogTrace("ME0GeometryESModule") << "ME0GeometryESModule::produce :: ME0GeometryBuilder builder DD4hep";
auto cpv = record.getTransientHandle(dd4hepcpvToken_);
const auto& mdc = record.get(dd4hepmdcToken_);
ME0GeometryBuilder builder;
return std::unique_ptr<ME0Geometry>(builder.build(cpv.product(), mdc));
} else {
LogTrace("ME0GeometryESModule") << "ME0GeometryESModule::produce :: ME0GeometryBuilderFromCondDB builder";
Expand Down

0 comments on commit 9fd0d32

Please sign in to comment.