Skip to content

Commit e152e7e

Browse files
authored
Merge pull request #48551 from bsunanda/Phase2-hgx364X
Phase2-hgx364X Equip RecHitTools with a few more utilities to find # of wafer types and the thicknesses in the current geometries
2 parents ead8c95 + 1cfc778 commit e152e7e

File tree

5 files changed

+72
-3
lines changed

5 files changed

+72
-3
lines changed

Geometry/HGCalCommonData/interface/HGCalDDDConstants.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,10 @@ class HGCalDDDConstants {
267267
}
268268
int waferType(DetId const& id, bool fromFile) const;
269269
int waferType(int layer, int waferU, int waferV, bool fromFile) const;
270+
inline int waferTypes() const {
271+
return ((waferHexagon8()) ? (hgpar_->cellThickness_.size()) : ((waferHexagon6()) ? 3 : 0));
272+
;
273+
}
270274
std::tuple<int, int, int> waferType(HGCSiliconDetId const& id, bool fromFile) const;
271275
std::pair<int, int> waferTypeRotation(int layer, int waferU, int waferV, bool fromFile, bool debug) const;
272276
inline int waferUVMax() const { return hgpar_->waferUVMax_; }

RecoLocalCalo/HGCalRecAlgos/interface/RecHitTools.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ namespace hgcal {
107107
// Informaion of the wafer/tile
108108
siliconWaferInfo getWaferInfo(const DetId& id) const;
109109
scintillatorTileInfo getTileInfo(const DetId& id) const;
110+
int getWaferTypes(DetId::Detector det, int subdet = ForwardSubdetector::ForwardEmpty) const;
111+
std::vector<double> getSiThickness(DetId::Detector det, int subdet = ForwardSubdetector::ForwardEmpty) const;
110112

111113
private:
112114
const CaloGeometry* geom_;

RecoLocalCalo/HGCalRecAlgos/src/RecHitTools.cc

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,15 @@ namespace {
7171
return ddd;
7272
}
7373

74+
inline const HGCalDDDConstants* get_ddd(const CaloGeometry* geom,
75+
DetId::Detector det,
76+
int subdet = ForwardSubdetector::ForwardEmpty) {
77+
const HGCalGeometry* hg = static_cast<const HGCalGeometry*>(geom->getSubdetectorGeometry(det, subdet));
78+
const HGCalDDDConstants* ddd = &(hg->topology().dddConstants());
79+
check_ddd(ddd);
80+
return ddd;
81+
}
82+
7483
enum CellType {
7584
CE_E_120 = 0,
7685
CE_E_200 = 1,
@@ -612,3 +621,13 @@ RecHitTools::scintillatorTileInfo RecHitTools::getTileInfo(const DetId& id) cons
612621
}
613622
return info;
614623
}
624+
625+
int RecHitTools::getWaferTypes(DetId::Detector det, int subdet) const {
626+
auto ddd = get_ddd(geom_, det, subdet);
627+
return ddd->waferTypes();
628+
}
629+
630+
std::vector<double> RecHitTools::getSiThickness(DetId::Detector det, int subdet) const {
631+
auto ddd = get_ddd(geom_, det, subdet);
632+
return ddd->cellThickness();
633+
}

RecoLocalCalo/HGCalRecAlgos/test/HGCalTestRecHitTools.cc

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@
66
#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
77
#include "Geometry/CaloGeometry/interface/CaloGeometry.h"
88
#include "Geometry/Records/interface/CaloGeometryRecord.h"
9+
#include "DataFormats/DetId/interface/DetId.h"
910
#include "DataFormats/ForwardDetId/interface/HGCScintillatorDetId.h"
1011
#include "DataFormats/ForwardDetId/interface/HGCSiliconDetId.h"
1112
#include "RecoLocalCalo/HGCalRecAlgos/interface/RecHitTools.h"
1213

1314
#include <vector>
15+
#include <sstream>
1416

1517
class HGCalTestRecHitTools : public edm::one::EDAnalyzer<> {
1618
public:
@@ -46,7 +48,12 @@ void HGCalTestRecHitTools::analyze(const edm::Event& /*iEvent*/, const edm::Even
4648
for (const auto& det : dets) {
4749
auto layer = tool_.firstAndLastLayer(det, 0);
4850
edm::LogVerbatim("HGCalGeom") << "First & Last Layer for Det " << det << " are " << layer.first << ":"
49-
<< layer.second;
51+
<< layer.second << " # of wafer types: " << tool_.getWaferTypes(det);
52+
std::vector<double> thick = tool_.getSiThickness(det);
53+
std::ostringstream st1;
54+
for (unsigned int k = 0; k < thick.size(); ++k)
55+
st1 << " : " << thick[k];
56+
edm::LogVerbatim("HGCalGeom") << "Thickness of the wafers" << st1.str();
5057
}
5158

5259
edm::LogVerbatim("HGCalGeom") << "Maximum # of wafers per layer " << tool_.maxNumberOfWafersPerLayer();

RecoLocalCalo/HGCalRecAlgos/test/testHGCalRecHitTools_cfg.py

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,47 @@
1+
###############################################################################
2+
# Way to use this:
3+
# cmsRun testHGCalRecHitTools_cfg.py geometry=D110
4+
#
5+
# Options for geometry D95, D96, D98, D99, D100, D101, D102, D103, D104,
6+
# D105, D106, D107, D108, D109, D110, D111, D112, D113,
7+
# D114, D115, D116, D120
8+
#
9+
###############################################################################
110
import FWCore.ParameterSet.Config as cms
11+
import os, sys, importlib, re
12+
import FWCore.ParameterSet.VarParsing as VarParsing
13+
14+
###############################################################################
15+
### SETUP OPTIONS
16+
options = VarParsing.VarParsing('standard')
17+
options.register('geometry',
18+
"D110",
19+
VarParsing.VarParsing.multiplicity.singleton,
20+
VarParsing.VarParsing.varType.string,
21+
"geometry of operations: D95, D96, D98, D99, D100, D101, D102, D103, D104, D105, D106, D107, D108, D109, D110, D111, D112, D113, D114, D115, D116, D120")
22+
23+
### get and parse the command line arguments
24+
options.parseArguments()
25+
26+
print(options)
27+
28+
####################################################################
29+
# Use the options
30+
geomName = "Run4" + options.geometry
31+
geomFile = "Configuration.Geometry.GeometryExtended" + geomName + "Reco_cff"
32+
import Configuration.Geometry.defaultPhase2ConditionsEra_cff as _settings
33+
GLOBAL_TAG, ERA = _settings.get_era_and_conditions(geomName)
34+
35+
print("Geometry Name: ", geomName)
36+
print("Geom file Name: ", geomFile)
37+
print("Global Tag Name: ", GLOBAL_TAG)
38+
print("Era Name: ", ERA)
239

340
from Configuration.Eras.Era_Phase2C11_cff import Phase2C11
4-
process = cms.Process('PROD',Phase2C11)
41+
process = cms.Process('PROD',ERA)
542

643
process.load("SimGeneral.HepPDTESSource.pdt_cfi")
7-
process.load('Configuration.Geometry.GeometryExtendedRun4D86Reco_cff')
44+
process.load(geomFile)
845
process.load('FWCore.MessageService.MessageLogger_cfi')
946
process.load("RecoLocalCalo.HGCalRecAlgos.hgcalRecHitTools_cfi")
1047

0 commit comments

Comments
 (0)