Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ETL Geometry V8 #43407

Merged
merged 3 commits into from
Dec 12, 2023
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion Configuration/Geometry/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ Fast Timing system:
* I14: Same as I13, updated sensor structure, disc z location and passive materials
* I15: Same as I14, addition of notch and revision of envelope
* I16: Starting from I15, revised BTL with complete passive material description, it needs Tracker T31 or newer
* I17: Same as I16, ETL v8 added, BTL with one crystal thickness (type) only

The script also handles the common and forward elements of the geometry:
* O4: detailed cavern description, changes for modified CALO region for endcap part, no overlaps inside the Muon System
Expand Down Expand Up @@ -145,4 +146,4 @@ Several detector combinations have been generated:
* D102 = T35+C17+M11+I16+O9+F8
* D103 = T34+C21+M11+I16+O9+F8
* D104 = T35+C22+M11+I16+O9+F8

* D105 = T32+C18+M10+I17+O9+F8
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
import FWCore.ParameterSet.Config as cms

# This config was generated automatically using generate2026Geometry.py
# If you notice a mistake, please update the generating script, not just this config

from Configuration.Geometry.GeometryDD4hepExtended2026D105_cff import *

# tracker
from Geometry.CommonTopologies.globalTrackingGeometry_cfi import *
from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import *
from Geometry.TrackerGeometryBuilder.trackerParameters_cff import *
from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import *
from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import *
trackerGeometry.applyAlignment = True

# calo
from Geometry.CaloEventSetup.HGCalTopology_cfi import *
from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import *
from Geometry.CaloEventSetup.CaloTopology_cfi import *
from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import *
CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder",
SelectedCalos = cms.vstring("HCAL",
"ZDC",
"EcalBarrel",
"TOWER",
"HGCalEESensitive",
"HGCalHESiliconSensitive",
"HGCalHEScintillatorSensitive"
)
)
from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import *
from Geometry.HcalEventSetup.HcalGeometry_cfi import *
from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import *
from Geometry.HcalEventSetup.CaloTowerTopology_cfi import *
from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import *
from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import *
from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import *
from Geometry.EcalMapping.EcalMapping_cfi import *
from Geometry.EcalMapping.EcalMappingRecord_cfi import *

# muon
from Geometry.MuonNumbering.muonNumberingInitialization_cfi import *
from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import *
from Geometry.GEMGeometryBuilder.gemGeometry_cff import *
from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import *
from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import *

# forward
from Geometry.ForwardGeometry.ZdcGeometry_cfi import *

# timing
from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import *
from Geometry.MTDGeometryBuilder.mtdParameters_cff import *
from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *
from Geometry.MTDNumberingBuilder.mtdTopology_cfi import *
from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import *
from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import *
mtdGeometry.applyAlignment = False

Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import FWCore.ParameterSet.Config as cms

# This config was generated automatically using generate2026Geometry.py
# If you notice a mistake, please update the generating script, not just this config

from Configuration.Geometry.GeometryDD4hep_cff import *
DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D105.xml")

from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import *
from SLHCUpgradeSimulations.Geometry.fakePhase2OuterTrackerConditions_cff import *
from Geometry.EcalCommonData.ecalSimulationParameters_cff import *
from Geometry.HcalCommonData.hcalDDDSimConstants_cff import *
from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import *
from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import *
from Geometry.MuonNumbering.muonGeometryConstants_cff import *
from Geometry.MuonNumbering.muonOffsetESProducer_cff import *
from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *
59 changes: 59 additions & 0 deletions Configuration/Geometry/python/GeometryExtended2026D105Reco_cff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
import FWCore.ParameterSet.Config as cms

# This config was generated automatically using generate2026Geometry.py
# If you notice a mistake, please update the generating script, not just this config

from Configuration.Geometry.GeometryExtended2026D105_cff import *

# tracker
from Geometry.CommonTopologies.globalTrackingGeometry_cfi import *
from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import *
from Geometry.TrackerGeometryBuilder.trackerParameters_cff import *
from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import *
from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import *
trackerGeometry.applyAlignment = True

# calo
from Geometry.CaloEventSetup.HGCalTopology_cfi import *
from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import *
from Geometry.CaloEventSetup.CaloTopology_cfi import *
from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import *
CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder",
SelectedCalos = cms.vstring("HCAL",
"ZDC",
"EcalBarrel",
"TOWER",
"HGCalEESensitive",
"HGCalHESiliconSensitive",
"HGCalHEScintillatorSensitive"
)
)
from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import *
from Geometry.HcalEventSetup.HcalGeometry_cfi import *
from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import *
from Geometry.HcalEventSetup.CaloTowerTopology_cfi import *
from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import *
from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import *
from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import *
from Geometry.EcalMapping.EcalMapping_cfi import *
from Geometry.EcalMapping.EcalMappingRecord_cfi import *

# muon
from Geometry.MuonNumbering.muonNumberingInitialization_cfi import *
from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import *
from Geometry.GEMGeometryBuilder.gemGeometry_cff import *
from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import *
from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import *

# forward
from Geometry.ForwardGeometry.ZdcGeometry_cfi import *

# timing
from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import *
from Geometry.MTDGeometryBuilder.mtdParameters_cff import *
from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *
from Geometry.MTDNumberingBuilder.mtdTopology_cfi import *
from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import *
from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import *
mtdGeometry.applyAlignment = False

15 changes: 15 additions & 0 deletions Configuration/Geometry/python/GeometryExtended2026D105_cff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import FWCore.ParameterSet.Config as cms

# This config was generated automatically using generate2026Geometry.py
# If you notice a mistake, please update the generating script, not just this config

from Geometry.CMSCommonData.cmsExtendedGeometry2026D105XML_cfi import *
from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import *
from SLHCUpgradeSimulations.Geometry.fakePhase2OuterTrackerConditions_cff import *
from Geometry.EcalCommonData.ecalSimulationParameters_cff import *
from Geometry.HcalCommonData.hcalDDDSimConstants_cff import *
from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import *
from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import *
from Geometry.MuonNumbering.muonGeometryConstants_cff import *
from Geometry.MuonNumbering.muonOffsetESProducer_cff import *
from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *
29 changes: 29 additions & 0 deletions Configuration/Geometry/python/dict2026Geometry.py
Original file line number Diff line number Diff line change
Expand Up @@ -1030,6 +1030,34 @@
],
"era" : "phase2_timing, phase2_timing_layer, phase2_etlV4",
},
"I17" : {
1 : [
'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml',
'Geometry/MTDCommonData/data/btl/v2/btl.xml',
'Geometry/MTDCommonData/data/etl/v8/etl.xml',
'Geometry/MTDCommonData/data/mtdParameters/v5/mtdStructureTopology.xml',
'Geometry/MTDCommonData/data/mtdParameters/v5/mtdParameters.xml',
],
3 : [
'Geometry/MTDSimData/data/v5/mtdsens.xml'
],
4 : [
'Geometry/MTDSimData/data/v5/mtdProdCuts.xml'
],
"sim" : [
'from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *',
],
"reco" :[
'from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import *',
'from Geometry.MTDGeometryBuilder.mtdParameters_cff import *',
'from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *',
'from Geometry.MTDNumberingBuilder.mtdTopology_cfi import *',
'from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import *',
'from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import *',
'mtdGeometry.applyAlignment = False'
],
"era" : "phase2_timing, phase2_timing_layer, phase2_etlV4",
},
}

allDicts = [ commonDict, trackerDict, caloDict, muonDict, forwardDict, timingDict ]
Expand All @@ -1051,6 +1079,7 @@
("O9","T35","C17","M11","F8","I16") : "D102",
("O9","T34","C21","M11","F8","I16") : "D103",
("O9","T35","C22","M11","F8","I16") : "D104",
("O9","T32","C18","M10","F8","I17") : "D105",
}

deprecatedDets = set([ "D1", "D2", "D3", "D5", "D6" , "D7", "D4", "D8" , "D9", "D12", "D13", "D15", "D10", "D11", "D14", "D16", "D17", "D18", "D19", "D20", "D21", "D22", "D23", "D24", "D25", "D26", "D27", "D28", "D29", "D30", "D31", "D32", "D33", "D34", "D36", "D37", "D38", "D39", "D40", "D42", "D35", "D41", "D43", "D44", "D45", "D46", "D48", "D47", "D50", "D51", "D52", "D53", "D54", "D55", "D56", "D57", "D58", "D59", "D61", "D62", "D63", "D64", "D65", "D66", "D67", "D69", "D71", "D72", "D73", "D74", "D75", "D78", "D79", "D87", "D89", "D90", "D49", "D60", "D68", "D70", "D76", "D77", "D80", "D81", "D82", "D83", "D84", "D85"])
Expand Down
1 change: 1 addition & 0 deletions Configuration/PyReleaseValidation/python/relval_2026.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
numWFIB.extend([26434.0]) #2026D102
numWFIB.extend([26834.0]) #2026D103
numWFIB.extend([27234.0]) #2026D104
numWFIB.extend([27634.0]) #2026D105

#Additional sample for short matrix and IB
#CloseByPGun for HGCAL
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@
'2026D103PU',
'2026D104',
'2026D104PU',
'2026D105',
'2026D105PU',
]

# pre-generation of WF numbers
Expand Down Expand Up @@ -2823,6 +2825,13 @@ def condition(self, fragment, stepList, key, hasHarvest):
'Era' : 'Phase2C17I13M9',
'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal', 'ALCAPhase2'],
},
'2026D105' : {
'Geom' : 'Extended2026D104',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@24LopezR this needs to be updated, thanks to @srimanob for catching it

'HLTmenu': '@relval2026',
'GT' : 'auto:phase2_realistic_T25',
'Era' : 'Phase2C17I13M9',
'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal', 'ALCAPhase2'],
},
}

# standard PU sequences
Expand Down
2 changes: 2 additions & 0 deletions Configuration/StandardSequences/python/GeometryConf.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,4 +93,6 @@
'DD4hepExtended2026D103' : 'DD4hepExtended2026D103,DD4hepExtended2026D103Reco',
'Extended2026D104' : 'Extended2026D104,Extended2026D104Reco',
'DD4hepExtended2026D104' : 'DD4hepExtended2026D104,DD4hepExtended2026D104Reco',
'Extended2026D105' : 'Extended2026D105,Extended2026D105Reco',
'DD4hepExtended2026D105' : 'DD4hepExtended2026D105,DD4hepExtended2026D105Reco',
}
33 changes: 32 additions & 1 deletion DataFormats/ForwardDetId/interface/ETLDetId.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

bit 15-5 : module sequential number
bit 4-3 : module type (unused so far)
bit 2-1 : sensor
*/

class ETLDetId : public MTDDetId {
Expand All @@ -24,6 +25,8 @@ class ETLDetId : public MTDDetId {
static constexpr uint32_t kETLmoduleMask = 0x7FF;
static constexpr uint32_t kETLmodTypeOffset = 3;
static constexpr uint32_t kETLmodTypeMask = 0x3;
static constexpr uint32_t kETLsensorOffset = 1;
static constexpr uint32_t kETLsensorMask = 0x3;

static constexpr int kETLv1maxRing = 11;
static constexpr int kETLv1maxModule = 176;
Expand All @@ -48,7 +51,7 @@ class ETLDetId : public MTDDetId {

static constexpr uint32_t kSoff = 4;

enum class EtlLayout { tp = 1, v4 = 2, v5 = 3 };
enum class EtlLayout { tp = 1, v4 = 2, v5 = 3, v8 = 4 };

// ---------- Constructors, enumerated types ----------

Expand Down Expand Up @@ -77,27 +80,52 @@ class ETLDetId : public MTDDetId {
}

/** Construct and fill only the det and sub-det fields. */
// pre v8
ETLDetId(uint32_t zside, uint32_t ring, uint32_t module, uint32_t modtyp)
: MTDDetId(DetId::Forward, ForwardSubdetector::FastTime) {
id_ |= (MTDType::ETL & kMTDsubdMask) << kMTDsubdOffset | (zside & kZsideMask) << kZsideOffset |
(ring & kRodRingMask) << kRodRingOffset | (module & kETLmoduleMask) << kETLmoduleOffset |
(modtyp & kETLmodTypeMask) << kETLmodTypeOffset;
id_ |= kETLformatV2;
}
// v8
ETLDetId(uint32_t zside, uint32_t ring, uint32_t module, uint32_t modtyp, uint32_t sensor)
: MTDDetId(DetId::Forward, ForwardSubdetector::FastTime) {
id_ |= (MTDType::ETL & kMTDsubdMask) << kMTDsubdOffset | (zside & kZsideMask) << kZsideOffset |
(ring & kRodRingMask) << kRodRingOffset | (module & kETLmoduleMask) << kETLmoduleOffset |
(modtyp & kETLmodTypeMask) << kETLmodTypeOffset | (sensor & kETLsensorMask) << kETLsensorOffset;
id_ |= kETLformatV2;
}

/** ETL TDR Construct and fill only the det and sub-det fields. */

inline uint32_t encodeSector(uint32_t& disc, uint32_t& discside, uint32_t& sector) const {
return (sector + discside * kSoff + 2 * kSoff * disc);
}

// pre v8
ETLDetId(uint32_t zside, uint32_t disc, uint32_t discside, uint32_t sector, uint32_t module, uint32_t modtyp)
: MTDDetId(DetId::Forward, ForwardSubdetector::FastTime) {
id_ |= (MTDType::ETL & kMTDsubdMask) << kMTDsubdOffset | (zside & kZsideMask) << kZsideOffset |
(encodeSector(disc, discside, sector) & kRodRingMask) << kRodRingOffset |
(module & kETLmoduleMask) << kETLmoduleOffset | (modtyp & kETLmodTypeMask) << kETLmodTypeOffset;
id_ |= kETLformatV2;
}
// v8
ETLDetId(uint32_t zside,
uint32_t disc,
uint32_t discside,
uint32_t sector,
uint32_t module,
uint32_t modtyp,
uint32_t sensor)
: MTDDetId(DetId::Forward, ForwardSubdetector::FastTime) {
id_ |= (MTDType::ETL & kMTDsubdMask) << kMTDsubdOffset | (zside & kZsideMask) << kZsideOffset |
(encodeSector(disc, discside, sector) & kRodRingMask) << kRodRingOffset |
(module & kETLmoduleMask) << kETLmoduleOffset | (modtyp & kETLmodTypeMask) << kETLmodTypeOffset |
(sensor & kETLsensorMask) << kETLsensorOffset;
id_ |= kETLformatV2;
}

// ---------- Common methods ----------

Expand All @@ -107,6 +135,9 @@ class ETLDetId : public MTDDetId {
/** Returns ETL module type number. */
inline int modType() const { return (id_ >> kETLmodTypeOffset) & kETLmodTypeMask; }

/** Returns ETL module sensor number. */
inline int sensor() const { return (id_ >> kETLsensorOffset) & kETLsensorMask; }

ETLDetId geographicalId() const { return id_; }

// --------- Methods for the TDR ETL model only -----------
Expand Down
3 changes: 2 additions & 1 deletion DataFormats/ForwardDetId/src/ETLDetId.cc
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ std::ostream& operator<<(std::ostream& os, const ETLDetId& id) {
<< " Ring : " << id.mtdRR() << " "
<< " Disc/Side/Sector = " << id.nDisc() << " " << id.discSide() << " " << id.sector() << std::endl
<< " Module : " << id.module() << std::endl
<< " Module type : " << id.modType() << std::endl;
<< " Module type : " << id.modType() << std::endl
<< " Sensor : " << id.sensor() << std::endl;
return os;
}
Loading