Skip to content

Commit 1f02a0d

Browse files
authored
Merge pull request #48029 from bsunanda/Phase2-hgx363AB
Phase2-hgx363AB Correct the dd4hep version for V19 geometry definition of HGCal
2 parents 8b5e975 + abecdf7 commit 1f02a0d

File tree

7 files changed

+250
-22
lines changed

7 files changed

+250
-22
lines changed

Geometry/HGCalCommonData/plugins/DDHGCalMixRotatedFineCassette.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ class DDHGCalMixRotatedFineCassette : public DDAlgorithm {
127127
std::vector<int> tileCoarseIndex_; // Index of tile (layer/start|end coarse ring)
128128
std::vector<int> tileCoarsePhis_; // Tile phi range for each index in coarse ring
129129
std::vector<int> tileCoarseLayerStart_; // Start index of tiles in each coarse layer
130-
std::vector<double> retract_; // Radial retraction of he tiles
130+
std::vector<double> retract_; // Radial retraction of the tiles
131131
std::vector<double> cassetteShiftScnt_; // Shifts of the cassetes for scintillators
132132
std::string nameSpace_; // Namespace of this and ALL sub-parts
133133
std::unordered_set<int> copies_; // List of copy #'s
@@ -657,7 +657,7 @@ void DDHGCalMixRotatedFineCassette::positionMix(const DDLogicalPart& glog,
657657
r1 += shiftCassetteIR_;
658658
}
659659
#ifdef EDM_ML_DEBUG
660-
double phi = phi1 + 0.5 * phi2;
660+
double phi = phi1 + 0.5 * dphi;
661661
edm::LogVerbatim("HGCalGeom") << "1Layer " << ly << ":" << ii << ":" << copy << ":" << layer0 << " phi " << phi
662662
<< " shift " << retract_[layer0 - 1];
663663
int cassette0 = HGCalCassette::cassetteType(2, 1, cassette); //
@@ -767,7 +767,7 @@ void DDHGCalMixRotatedFineCassette::positionMix(const DDLogicalPart& glog,
767767
r1 += shiftCassetteIR_;
768768
}
769769
#ifdef EDM_ML_DEBUG
770-
double phi = phi1 + 0.5 * phi2;
770+
double phi = phi1 + 0.5 * dphi;
771771
edm::LogVerbatim("HGCalGeom") << "2Layer " << ii << ":" << copy << ":" << layer << ":" << layer0 << " phi " << phi
772772
<< " shift " << retract_[layer0 - 1];
773773
int cassette0 = HGCalCassette::cassetteType(2, 1, cassette); //

Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalMixRotatedFineCassette.cc

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ struct HGCalMixRotatedFineCassette {
3939
#ifdef EDM_ML_DEBUG
4040
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: Creating an instance";
4141
#endif
42-
static constexpr double tol1 = 0.01 * dd4hep::mm;
4342

4443
dd4hep::Volume mother = ns.volume(args.parentName());
4544

@@ -302,10 +301,12 @@ struct HGCalMixRotatedFineCassette {
302301
#endif
303302
retract_ = args.value<std::vector<double>>("ScintRetract");
304303
double dphi = M_PI / cassettes_;
305-
for (int k = 0; k < cassettes_; ++k) {
306-
double phi = (2 * k + 1) * dphi;
307-
cassetteShiftScnt_.emplace_back(retract_[k] * cos(phi));
308-
cassetteShiftScnt_.emplace_back(retract_[k] * sin(phi));
304+
for (unsigned int k = 0; k < layers_.size(); ++k) {
305+
for (int j = 0; j < cassettes_; ++j) {
306+
double phi = (2 * j + 1) * dphi;
307+
cassetteShiftScnt_.emplace_back(retract_[k] * cos(phi));
308+
cassetteShiftScnt_.emplace_back(retract_[k] * sin(phi));
309+
}
309310
}
310311
#ifdef EDM_ML_DEBUG
311312
unsigned int j2max = cassetteShiftScnt_.size();
@@ -314,13 +315,14 @@ struct HGCalMixRotatedFineCassette {
314315
unsigned int j2 = std::min((j1 + 6), j2max);
315316
for (unsigned int j = j1; j < j2; ++j)
316317
st1 << " [" << j << "] " << std::setw(9) << cassetteShiftScnt_[j];
317-
edm::LogVerbatim("HGCalGeom") << st1.str();
318+
edm::LogVerbatim("HGCalGeom") << "Scintillator Cassette shiftt " << convertRadToDeg(dphi) << " " << st1.str();
318319
}
319320
#endif
320321
cassette_.setParameter(cassettes_, cassetteShift_, false);
321322
cassette_.setParameterScint(cassetteShiftScnt_);
322323
cassette_.setParameterRetract(retract_);
323324

325+
forFireworks_ = args.value<int>("ForFireWorks");
324326
int testCassette = args.value<int>("TestCassetteShift");
325327
if (testCassette != 0)
326328
testCassetteShift();
@@ -364,7 +366,7 @@ struct HGCalMixRotatedFineCassette {
364366
if (layerSense_[ly] <= 0) {
365367
std::vector<double> pgonZ, pgonRin, pgonRout;
366368
double rmax =
367-
(std::min(routF, HGCalGeomTools::radius(zz + hthick, zFrontT_, rMaxFront_, slopeT_)) * cosAlpha_) - tol1;
369+
(std::min(routF, HGCalGeomTools::radius(zz + hthick, zFrontT_, rMaxFront_, slopeT_)) * cosAlpha_) - tol1_;
368370
HGCalGeomTools::radius(zz - hthick,
369371
zz + hthick,
370372
zFrontB_,
@@ -382,7 +384,7 @@ struct HGCalMixRotatedFineCassette {
382384
if (layerSense_[ly] == 0 || absorbMode_ == 0)
383385
pgonRout[isec] = rmax;
384386
else
385-
pgonRout[isec] = pgonRout[isec] * cosAlpha_ - tol1;
387+
pgonRout[isec] = pgonRout[isec] * cosAlpha_ - tol1_;
386388
}
387389
dd4hep::Solid solid = dd4hep::Polyhedra(sectors_, -alpha_, 2._pi, pgonZ, pgonRin, pgonRout);
388390
ns.addSolidNS(ns.prepend(name), solid);
@@ -395,6 +397,7 @@ struct HGCalMixRotatedFineCassette {
395397
for (unsigned int k = 0; k < pgonZ.size(); ++k)
396398
edm::LogVerbatim("HGCalGeom") << "[" << k << "] z " << cms::convert2mm(pgonZ[k]) << " R "
397399
<< cms::convert2mm(pgonRin[k]) << ":" << cms::convert2mm(pgonRout[k]);
400+
edm::LogVerbatim("HGCalGeom") << "LayeerSense " << layerSense_[ly];
398401
#endif
399402
if (layerSense_[ly] < 0) {
400403
int absType = -layerSense_[ly];
@@ -538,7 +541,7 @@ struct HGCalMixRotatedFineCassette {
538541
<< fimin << ":" << fimax;
539542
#endif
540543
double phi1 = dphi * (fimin - 1);
541-
double phi2 = dphi * (fimax - fimin + 1);
544+
double phi2 = (forFireworks_ == 1) ? (dphi * (fimax - fimin + 1)) : (dphi * fimax);
542545
r1 += retract_[layer0 - 1];
543546
r2 += retract_[layer0 - 1];
544547
#ifdef EDM_ML_DEBUG
@@ -551,7 +554,7 @@ struct HGCalMixRotatedFineCassette {
551554
r1 += shiftCassetteIR_;
552555
}
553556
#ifdef EDM_ML_DEBUG
554-
double phi = phi1 + 0.5 * phi2;
557+
double phi = phi1 + 0.5 * dphi;
555558
edm::LogVerbatim("HGCalGeom") << "1Layer " << ly << ":" << ii << ":" << copy << ":" << layer0 << " phi "
556559
<< phi << " shift " << retract_[layer0 - 1];
557560
int cassette0 = HGCalCassette::cassetteType(2, 1, cassette); //
@@ -654,7 +657,7 @@ struct HGCalMixRotatedFineCassette {
654657
<< fimin << ":" << fimax;
655658
#endif
656659
double phi1 = dphi * (fimin - 1);
657-
double phi2 = dphi * (fimax - fimin + 1);
660+
double phi2 = (forFireworks_ == 1) ? (dphi * (fimax - fimin + 1)) : (dphi * fimax);
658661
r1 += retract_[layer0 - 1];
659662
r2 += retract_[layer0 - 1];
660663
#ifdef EDM_ML_DEBUG
@@ -667,7 +670,7 @@ struct HGCalMixRotatedFineCassette {
667670
r1 += shiftCassetteIR_;
668671
}
669672
#ifdef EDM_ML_DEBUG
670-
double phi = phi1 + 0.5 * phi2;
673+
double phi = phi1 + 0.5 * dphi;
671674
edm::LogVerbatim("HGCalGeom") << "2Layer " << ii << ":" << copy << ":" << layer << ":" << layer0 << " phi "
672675
<< phi << " shift " << retract_[layer0 - 1];
673676
int cassette0 = HGCalCassette::cassetteType(2, 1, cassette); //
@@ -719,7 +722,7 @@ struct HGCalMixRotatedFineCassette {
719722
#endif
720723
for (int k = 0; k < cassettes_; ++k) {
721724
int cassette = k + 1;
722-
auto cshift = cassette_.getShift(layer0, -1, cassette);
725+
auto cshift = cassette_.getShift(layer0, -1, cassette, false);
723726
#ifdef EDM_ML_DEBUG
724727
edm::LogVerbatim("HGCalGeom") << "3Layer " << layer << ":" << layer0 << " Cassette " << cassette << " shift "
725728
<< cms::convert2mm(cshift.first) << ":" << cms::convert2mm(cshift.second);
@@ -790,18 +793,22 @@ struct HGCalMixRotatedFineCassette {
790793
#ifdef EDM_ML_DEBUG
791794
edm::LogVerbatim("HGCalGeom")
792795
<< "DDHGCalMixRotatedFineCassette::index:Property:layertype:type:part:orien:cassette:place:offsets:ind "
793-
<< k << waferProperty_[k] << ":" << layertype << ":" << type << ":" << part << ":" << orien << ":"
796+
<< k << ":" << waferProperty_[k] << ":" << layertype << ":" << type << ":" << part << ":" << orien << ":"
794797
<< cassette << ":" << place;
795798
#endif
796799
auto cshift = cassette_.getShift(layer0, -1, cassette, false);
800+
#ifdef EDM_ML_DEBUG
801+
edm::LogVerbatim("HGCalGeom") << "Layer " << (layer + 1) << ":" << layer0 << " Cassette " << cassette
802+
<< " shift " << cshift.first << ":" << cshift.second;
803+
#endif
797804
double xpos = xyoff.first - cshift.first + nc * delx;
798805
double ypos = xyoff.second + cshift.second + nr * dy;
799806
#ifdef EDM_ML_DEBUG
800807
double xorig = xyoff.first + nc * delx;
801808
double yorig = xyoff.second + nr * dy;
802809
double angle = std::atan2(yorig, xorig);
803-
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette::Wafer: layer " << layer + 1 << " cassette "
804-
<< cassette << " Shift " << cms::convert2mm(cshift.first) << ":"
810+
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette::Wafer: layer " << layer + 1 << ":" << layer0
811+
<< " cassette " << cassette << " Shift " << cms::convert2mm(cshift.first) << ":"
805812
<< cms::convert2mm(cshift.second) << " Original " << cms::convert2mm(xorig) << ":"
806813
<< cms::convert2mm(yorig) << ":" << convertRadToDeg(angle) << " Final "
807814
<< cms::convert2mm(xpos) << ":" << cms::convert2mm(ypos);
@@ -942,11 +949,14 @@ struct HGCalMixRotatedFineCassette {
942949
std::vector<int> tileCoarseIndex_; // Index of tile (layer/start|end coarse ring)
943950
std::vector<int> tileCoarsePhis_; // Tile phi range for each index in coarse ring
944951
std::vector<int> tileCoarseLayerStart_; // Start index of tiles in each coarse layer
945-
std::vector<double> retract_; // Radial retraction of he tiles
952+
std::vector<double> retract_; // Radial retraction of the tiles
946953
std::vector<double> cassetteShiftScnt_; // Shifts of the cassetes for scintillators
947954
std::string nameSpace_; // Namespace of this and ALL sub-parts
948955
std::unordered_set<int> copies_; // List of copy #'s
956+
int forFireworks_; // 0 for standard run 1 for fireworks
949957
double alpha_, cosAlpha_;
958+
static constexpr double tol0_ = 0.0001 * dd4hep::mm;
959+
static constexpr double tol1_ = 0.01 * dd4hep::mm;
950960
static constexpr double tol2_ = 0.00001 * dd4hep::mm;
951961
};
952962

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import FWCore.ParameterSet.Config as cms
2+
3+
from Configuration.Geometry.GeometryDD4hep_cff import *
4+
DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/HGCalCommonData/data/dd4hep/testHGCalV17.xml")
5+
from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import *
6+
from SLHCUpgradeSimulations.Geometry.fakePhase2OuterTrackerConditions_cff import *
7+
from Geometry.EcalCommonData.ecalSimulationParameters_cff import *
8+
from Geometry.HcalCommonData.hcalDDDSimConstants_cff import *
9+
from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import *
10+
from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import *
11+
from Geometry.MuonNumbering.muonGeometryConstants_cff import *
12+
from Geometry.MuonNumbering.muonOffsetESProducer_cff import *
13+
from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *
14+
15+
# tracker
16+
from Geometry.CommonTopologies.globalTrackingGeometry_cfi import *
17+
from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import *
18+
from Geometry.TrackerGeometryBuilder.trackerParameters_cff import *
19+
from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import *
20+
from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import *
21+
trackerGeometry.applyAlignment = False
22+
23+
# calo
24+
from Geometry.CaloEventSetup.HGCalTopology_cfi import *
25+
from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import *
26+
from Geometry.CaloEventSetup.CaloTopology_cfi import *
27+
from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import *
28+
CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder",
29+
SelectedCalos = cms.vstring("HCAL",
30+
"ZDC",
31+
"EcalBarrel",
32+
"TOWER",
33+
"HGCalEESensitive",
34+
"HGCalHESiliconSensitive",
35+
"HGCalHEScintillatorSensitive"
36+
)
37+
)
38+
from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import *
39+
from Geometry.HcalEventSetup.HcalGeometry_cfi import *
40+
from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import *
41+
from Geometry.HcalEventSetup.CaloTowerTopology_cfi import *
42+
from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import *
43+
from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import *
44+
from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import *
45+
from Geometry.EcalMapping.EcalMapping_cfi import *
46+
from Geometry.EcalMapping.EcalMappingRecord_cfi import *
47+
48+
# muon
49+
from Geometry.MuonNumbering.muonNumberingInitialization_cfi import *
50+
from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import *
51+
from Geometry.GEMGeometryBuilder.gemGeometry_cff import *
52+
from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import *
53+
from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import *
54+
55+
# forward
56+
from Geometry.ForwardGeometry.ForwardGeometry_cfi import *
57+
58+
# timing
59+
from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import *
60+
from Geometry.MTDGeometryBuilder.mtdParameters_cff import *
61+
from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *
62+
from Geometry.MTDNumberingBuilder.mtdTopology_cfi import *
63+
from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import *
64+
from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import *
65+
mtdGeometry.applyAlignment = False
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import FWCore.ParameterSet.Config as cms
2+
3+
from Configuration.Geometry.GeometryDD4hep_cff import *
4+
DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/HGCalCommonData/data/dd4hep/testHGCalV19.xml")
5+
from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import *
6+
from SLHCUpgradeSimulations.Geometry.fakePhase2OuterTrackerConditions_cff import *
7+
from Geometry.EcalCommonData.ecalSimulationParameters_cff import *
8+
from Geometry.HcalCommonData.hcalDDDSimConstants_cff import *
9+
from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import *
10+
from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import *
11+
from Geometry.MuonNumbering.muonGeometryConstants_cff import *
12+
from Geometry.MuonNumbering.muonOffsetESProducer_cff import *
13+
from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *
14+
15+
# tracker
16+
from Geometry.CommonTopologies.globalTrackingGeometry_cfi import *
17+
from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import *
18+
from Geometry.TrackerGeometryBuilder.trackerParameters_cff import *
19+
from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import *
20+
from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import *
21+
trackerGeometry.applyAlignment = False
22+
23+
# calo
24+
from Geometry.CaloEventSetup.HGCalTopology_cfi import *
25+
from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import *
26+
from Geometry.CaloEventSetup.CaloTopology_cfi import *
27+
from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import *
28+
CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder",
29+
SelectedCalos = cms.vstring("HCAL",
30+
"ZDC",
31+
"EcalBarrel",
32+
"TOWER",
33+
"HGCalEESensitive",
34+
"HGCalHESiliconSensitive",
35+
"HGCalHEScintillatorSensitive"
36+
)
37+
)
38+
from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import *
39+
from Geometry.HcalEventSetup.HcalGeometry_cfi import *
40+
from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import *
41+
from Geometry.HcalEventSetup.CaloTowerTopology_cfi import *
42+
from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import *
43+
from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import *
44+
from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import *
45+
from Geometry.EcalMapping.EcalMapping_cfi import *
46+
from Geometry.EcalMapping.EcalMappingRecord_cfi import *
47+
48+
# muon
49+
from Geometry.MuonNumbering.muonNumberingInitialization_cfi import *
50+
from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import *
51+
from Geometry.GEMGeometryBuilder.gemGeometry_cff import *
52+
from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import *
53+
from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import *
54+
55+
# forward
56+
from Geometry.ForwardGeometry.ForwardGeometry_cfi import *
57+
58+
# timing
59+
from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import *
60+
from Geometry.MTDGeometryBuilder.mtdParameters_cff import *
61+
from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *
62+
from Geometry.MTDNumberingBuilder.mtdTopology_cfi import *
63+
from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import *
64+
from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import *
65+
mtdGeometry.applyAlignment = False

Geometry/HGCalCommonData/test/python/dumpHGCalDD4hep_cfg.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#
77
###############################################################################
88
import FWCore.ParameterSet.Config as cms
9-
import os, sys, imp, re
9+
import os, sys, importlib, re
1010
import FWCore.ParameterSet.VarParsing as VarParsing
1111

1212
####################################################################

Geometry/HGCalCommonData/test/python/dumpHGCalDDD_cfg.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#
77
###############################################################################
88
import FWCore.ParameterSet.Config as cms
9-
import os, sys, imp, re
9+
import os, sys, importlib, re
1010
import FWCore.ParameterSet.VarParsing as VarParsing
1111

1212
####################################################################

0 commit comments

Comments
 (0)