Skip to content

Commit

Permalink
Merge pull request #46011 from bsunanda/Run3-hcx361
Browse files Browse the repository at this point in the history
Run3-hcx361 Make Era dependent ZDC geometry - backport #45511
  • Loading branch information
cmsbuild authored Sep 19, 2024
2 parents f120b86 + e55972f commit 3b9cfa6
Show file tree
Hide file tree
Showing 32 changed files with 920 additions and 225 deletions.
454 changes: 313 additions & 141 deletions CalibCalorimetry/HcalPlugins/src/HcalHardcodeCalibrations.cc

Large diffs are not rendered by default.

8 changes: 7 additions & 1 deletion CalibCalorimetry/HcalPlugins/src/HcalHardcodeCalibrations.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
#include "Geometry/CaloTopology/interface/HcalTopology.h"
#include "Geometry/ForwardGeometry/interface/ZdcTopology.h"
#include "CondFormats/HcalObjects/interface/AllObjects.h"
#include "CalibCalorimetry/HcalAlgos/interface/HBHERecalibration.h"
#include "CondFormats/DataRecord/interface/HcalTPParametersRcd.h"
Expand Down Expand Up @@ -68,9 +69,13 @@ class HcalHardcodeCalibrations : public edm::ESProducer, public edm::EventSetupR

std::unique_ptr<HcalPedestals> producePedestals_(const HcalPedestalsRcd& rcd,
const edm::ESGetToken<HcalTopology, HcalRecNumberingRecord>&,
const edm::ESGetToken<ZdcTopology, HcalRecNumberingRecord>&,
bool eff);
std::unique_ptr<HcalPedestalWidths> producePedestalWidths_(
const HcalPedestalWidthsRcd& rcd, const edm::ESGetToken<HcalTopology, HcalRecNumberingRecord>&, bool eff);
const HcalPedestalWidthsRcd& rcd,
const edm::ESGetToken<HcalTopology, HcalRecNumberingRecord>&,
const edm::ESGetToken<ZdcTopology, HcalRecNumberingRecord>&,
bool eff);
std::unique_ptr<HcalPedestals> producePedestals(const HcalPedestalsRcd& rcd);
std::unique_ptr<HcalPedestalWidths> producePedestalWidths(const HcalPedestalWidthsRcd& rcd);
std::unique_ptr<HcalPedestals> produceEffectivePedestals(const HcalPedestalsRcd& rcd);
Expand Down Expand Up @@ -147,6 +152,7 @@ class HcalHardcodeCalibrations : public edm::ESProducer, public edm::EventSetupR
std::unique_ptr<HBHERecalibration> he_recalibration;
std::unique_ptr<HFRecalibration> hf_recalibration;
std::unordered_map<int, edm::ESGetToken<HcalTopology, HcalRecNumberingRecord>> topoTokens_;
std::unordered_map<int, edm::ESGetToken<ZdcTopology, HcalRecNumberingRecord>> zdcTopoTokens_;
edm::ESGetToken<HBHEDarkening, HBHEDarkeningRecord> heDarkeningToken_;
edm::ESGetToken<HBHEDarkening, HBHEDarkeningRecord> hbDarkeningToken_;
bool switchGainWidthsForTrigPrims;
Expand Down
2 changes: 2 additions & 0 deletions CondFormats/HcalObjects/interface/HcalCondObjectContainer.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ class HcalCondObjectContainerBase {
HcalCondObjectContainerBase& operator=(HcalCondObjectContainerBase const& o) {
topo_ = o.topo();
packedIndexVersion_ = o.packedIndexVersion_;
kSizeForDenseIndexing_ = o.kSizeForDenseIndexing_;
return *this;
}
#ifndef __GCCXML__
Expand All @@ -47,6 +48,7 @@ class HcalCondObjectContainerBase {

private:
const HcalTopology* topo_ COND_TRANSIENT;
uint32_t kSizeForDenseIndexing_ COND_TRANSIENT;

COND_SERIALIZABLE;
};
Expand Down
15 changes: 12 additions & 3 deletions CondFormats/HcalObjects/src/HcalCondObjectContainerBase.cc
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#include "Geometry/CaloTopology/interface/HcalTopology.h"
#include "Geometry/HcalCommonData/interface/HcalTopologyMode.h"
#include "CondFormats/HcalObjects/interface/HcalCondObjectContainer.h"
#include "DataFormats/HcalDetId/interface/HcalCastorDetId.h"
#include "DataFormats/HcalDetId/interface/HcalCalibDetId.h"
Expand All @@ -9,16 +10,24 @@
#include "FWCore/Utilities/interface/Exception.h"

HcalCondObjectContainerBase::HcalCondObjectContainerBase(const HcalTopology* topo)
: packedIndexVersion_(0), topo_(topo) {
if (topo)
: packedIndexVersion_(0), topo_(topo), kSizeForDenseIndexing_(HcalZDCDetId::kSizeForDenseIndexingRun1) {
if (topo) {
packedIndexVersion_ = topo->topoVersion();
HcalTopologyMode::Mode mode = topo->mode();
kSizeForDenseIndexing_ = (((mode == HcalTopologyMode::Run3) || (mode == HcalTopologyMode::Run4))
? HcalZDCDetId::kSizeForDenseIndexingRun3
: HcalZDCDetId::kSizeForDenseIndexingRun1);
}
}

void HcalCondObjectContainerBase::setTopo(const HcalTopology* topo) {
if ((topo) && (packedIndexVersion_ != 0) && (!topo->denseIdConsistent(packedIndexVersion_)))
edm::LogError("HCAL") << std::string("Inconsistent dense packing between current topology (") << topo->topoVersion()
<< ") and calibration object (" << packedIndexVersion_ << ")";
topo_ = topo;
packedIndexVersion_ = topo_->topoVersion();
kSizeForDenseIndexing_ =
((packedIndexVersion_ >= 10) ? HcalZDCDetId::kSizeForDenseIndexingRun3 : HcalZDCDetId::kSizeForDenseIndexingRun1);
}

unsigned int HcalCondObjectContainerBase::indexFor(DetId fId) const {
Expand Down Expand Up @@ -114,7 +123,7 @@ unsigned int HcalCondObjectContainerBase::sizeFor(DetId fId) const {
if (fId.subdetId() == HcalCastorDetId::SubdetectorId) {
retval = HcalCastorDetId::kSizeForDenseIndexing;
} else if (fId.subdetId() == HcalZDCDetId::SubdetectorId) {
retval = HcalZDCDetId::kSizeForDenseIndexing;
retval = kSizeForDenseIndexing_;
}
}
return retval;
Expand Down
110 changes: 110 additions & 0 deletions CondTools/Geometry/plugins/calowriters.cc
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
#include "Geometry/HcalTowerAlgo/interface/CaloGeometryDBHcal.h"
#include "Geometry/HcalTowerAlgo/interface/CaloGeometryDBCaloTower.h"
#include "Geometry/ForwardGeometry/interface/ZdcGeometry.h"
#include "Geometry/ForwardGeometry/interface/ZdcTopology.h"
#include "Geometry/ForwardGeometry/interface/CaloGeometryDBZdc.h"
#include "Geometry/ForwardGeometry/interface/CastorGeometry.h"
#include "Geometry/Records/interface/HcalRecNumberingRecord.h"
#include "Geometry/HGCalGeometry/interface/HGCalGeometry.h"
Expand Down Expand Up @@ -322,6 +324,114 @@ CaloGeometryDBEP<HGCalGeometry, CaloGeometryDBWriter>::produceAligned(
return ptr;
}

template <>
CaloGeometryDBEP<ZdcGeometry, CaloGeometryDBWriter>::PtrType
CaloGeometryDBEP<ZdcGeometry, CaloGeometryDBWriter>::produceAligned(const typename ZdcGeometry::AlignedRecord& iRecord) {
const auto [alignPtr, globalPtr] = getAlignGlobal(iRecord);

TrVec tvec;
DimVec dvec;
IVec ivec;
IVec dins;

const auto& pG = iRecord.get(geometryToken_);

pG.getSummary(tvec, ivec, dvec, dins);

CaloGeometryDBWriter::writeIndexed(tvec, dvec, ivec, dins, ZdcGeometry::dbString());
//*********************************************************************************************

const auto& zdcTopology = iRecord.get(additionalTokens_.topology);

// We know that the numer of shapes chanes with changing depth
// so, this check is temporary disabled. We need to implement
// a way either to store or calculate the number of shapes or be able
// to deal with only max numer of shapes.
assert(dvec.size() <= ZdcGeometry::k_NumberOfShapes * ZdcGeometry::k_NumberOfParametersPerShape);
ZdcGeometry* zdcGeometry = new ZdcGeometry(&zdcTopology);
PtrType ptr(zdcGeometry);

const unsigned int nTrParm(tvec.size() / zdcTopology.kSizeForDenseIndexing());

ptr->fillDefaultNamedParameters();
ptr->allocateCorners(zdcTopology.kSizeForDenseIndexing());
ptr->allocatePar(zdcGeometry->numberOfShapes(), ZdcGeometry::k_NumberOfParametersPerShape);

for (unsigned int i(0); i < dins.size(); ++i) {
const unsigned int nPerShape(ZdcGeometry::k_NumberOfParametersPerShape);
DimVec dims;
dims.reserve(nPerShape);

const unsigned int indx(ivec.size() == 1 ? 0 : i);

DimVec::const_iterator dsrc(dvec.begin() + ivec[indx] * nPerShape);

for (unsigned int j(0); j != nPerShape; ++j) {
dims.push_back(*dsrc);
++dsrc;
}

const CCGFloat* myParm(CaloCellGeometry::getParmPtr(dims, ptr->parMgr(), ptr->parVecVec()));

const DetId id(zdcTopology.denseId2detId(dins[i]));

const unsigned int iGlob(nullptr == globalPtr ? 0 : ZdcGeometry::alignmentTransformIndexGlobal(id));

assert(nullptr == globalPtr || iGlob < globalPtr->m_align.size());

const AlignTransform* gt(nullptr == globalPtr ? nullptr : &globalPtr->m_align[iGlob]);

assert(nullptr == gt || iGlob == ZdcGeometry::alignmentTransformIndexGlobal(DetId(gt->rawId())));

const unsigned int iLoc(nullptr == alignPtr ? 0 : ZdcGeometry::alignmentTransformIndexLocal(id));

assert(nullptr == alignPtr || iLoc < alignPtr->m_align.size());

const AlignTransform* at(nullptr == alignPtr ? nullptr : &alignPtr->m_align[iLoc]);

assert(nullptr == at || (ZdcGeometry::alignmentTransformIndexLocal(DetId(at->rawId())) == iLoc));

Pt3D lRef;
Pt3DVec lc(8, Pt3D(0, 0, 0));
zdcGeometry->localCorners(lc, &dims.front(), dins[i], lRef);

const Pt3D lBck(0.25 * (lc[4] + lc[5] + lc[6] + lc[7])); // ctr rear face in local
const Pt3D lCor(lc[0]);

//----------------------------------- create transform from 6 numbers ---
const unsigned int jj(i * nTrParm);
Tr3D tr;
const ROOT::Math::Translation3D tl(tvec[jj], tvec[jj + 1], tvec[jj + 2]);
const ROOT::Math::EulerAngles ea(6 == nTrParm ? ROOT::Math::EulerAngles(tvec[jj + 3], tvec[jj + 4], tvec[jj + 5])
: ROOT::Math::EulerAngles());
const ROOT::Math::Transform3D rt(ea, tl);
double xx, xy, xz, dx;
double yx, yy, yz, dy;
double zx, zy, zz, dz;
rt.GetComponents(xx, xy, xz, dx, yx, yy, yz, dy, zx, zy, zz, dz);
tr = Tr3D(CLHEP::HepRep3x3(xx, xy, xz, yx, yy, yz, zx, zy, zz), CLHEP::Hep3Vector(dx, dy, dz));

// now prepend alignment(s) for final transform
const Tr3D atr(nullptr == at ? tr
: (nullptr == gt ? at->transform() * tr : at->transform() * gt->transform() * tr));
//--------------------------------- done making transform ---------------

const Pt3D gRef(atr * lRef);
const GlobalPoint fCtr(gRef.x(), gRef.y(), gRef.z());
const Pt3D gBck(atr * lBck);
const GlobalPoint fBck(gBck.x(), gBck.y(), gBck.z());
const Pt3D gCor(atr * lCor);
const GlobalPoint fCor(gCor.x(), gCor.y(), gCor.z());

assert(zdcTopology.detId2denseId(id) == dins[i]);
ptr->newCell(fCtr, fBck, fCor, myParm, id);
}

ptr->initializeParms(); // initializations; must happen after cells filled

return ptr;
}

template class CaloGeometryDBEP<EcalBarrelGeometry, CaloGeometryDBWriter>;
template class CaloGeometryDBEP<EcalEndcapGeometry, CaloGeometryDBWriter>;
template class CaloGeometryDBEP<EcalPreshowerGeometry, CaloGeometryDBWriter>;
Expand Down
1 change: 1 addition & 0 deletions Configuration/Geometry/python/GeometryRecoDB_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
from Geometry.EcalMapping.EcalMappingRecord_cfi import *
from Geometry.HcalCommonData.hcalDBConstants_cff import *
from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import *
from Geometry.ForwardGeometry.zdcTopologyEP_cfi import *

# Alignment
from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometryDB_cff import *
Expand Down
4 changes: 0 additions & 4 deletions Geometry/CaloGeometry/src/CaloGenericDetId.cc
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,7 @@ bool CaloGenericDetId::validDetId() const {
} else if (isHcal()) {
edm::LogError("CaloGenericDetIdError") << "No support for HB/HE/HO/HF in CaloGenericDetId";
throw cms::Exception("No support");

returnValue = false;
} else if (isZDC()) {
const HcalZDCDetId zdid(rawId());
returnValue = HcalZDCDetId::validDetId(zdid.section(), zdid.channel());
} else if (isCastor()) {
const HcalCastorDetId zdid(rawId());
returnValue = HcalCastorDetId::validDetId(zdid.section(), zdid.zside() > 0, zdid.sector(), zdid.module());
Expand Down
44 changes: 28 additions & 16 deletions Geometry/CaloTopology/src/HcalTopology.cc
Original file line number Diff line number Diff line change
Expand Up @@ -195,14 +195,18 @@ HcalTopology::HcalTopology(HcalTopologyMode::Mode mode,
HFSize_(kHFSizePreLS1),
HTSize_(kHTSizePreLS1),
CALIBSize_(kCALIBSizePreLS1),
numberOfShapes_((mode == HcalTopologyMode::SLHC) ? 500 : 87) {
numberOfShapes_(
((mode == HcalTopologyMode::SLHC) || (mode_ == HcalTopologyMode::Run3) || (mode_ == HcalTopologyMode::Run4))
? 500
: 87) {
if (mode_ == HcalTopologyMode::LHC) {
topoVersion_ = 0; //DL
HBSize_ = kHBSizePreLS1; // qie-per-fiber * fiber/rm * rm/rbx * rbx/barrel * barrel/hcal
HESize_ = kHESizePreLS1; // qie-per-fiber * fiber/rm * rm/rbx * rbx/endcap * endcap/hcal
HOSize_ = kHOSizePreLS1; // ieta * iphi * 2
HFSize_ = kHFSizePreLS1; // phi * eta * depth * pm
} else if (mode_ == HcalTopologyMode::SLHC) { // need to know more eventually
topoVersion_ = 0; //DL
HBSize_ = kHBSizePreLS1; // qie-per-fiber * fiber/rm * rm/rbx * rbx/barrel * barrel/hcal
HESize_ = kHESizePreLS1; // qie-per-fiber * fiber/rm * rm/rbx * rbx/endcap * endcap/hcal
HOSize_ = kHOSizePreLS1; // ieta * iphi * 2
HFSize_ = kHFSizePreLS1; // phi * eta * depth * pm
} else if ((mode_ == HcalTopologyMode::SLHC) || (mode_ == HcalTopologyMode::Run3) ||
(mode_ == HcalTopologyMode::Run4)) { // need to know more eventually
HBSize_ = maxDepthHB * 16 * IPHI_MAX * 2;
HESize_ = maxDepthHE * (29 - 16 + 1) * maxPhiHE_ * 2;
HOSize_ = 15 * IPHI_MAX * 2; // ieta * iphi * 2
Expand Down Expand Up @@ -567,7 +571,8 @@ bool HcalTopology::validRaw(const HcalDetId& id) const {

if (ok) {
if (subdet == HcalBarrel) {
if (mode_ == HcalTopologyMode::SLHC || mode_ == HcalTopologyMode::H2HE) {
if ((mode_ == HcalTopologyMode::SLHC) || (mode_ == HcalTopologyMode::H2HE) || (mode_ == HcalTopologyMode::Run3) ||
(mode_ == HcalTopologyMode::Run4)) {
if ((aieta > lastHBRing()) || (depth > hcons_->getMaxDepth(0, aieta, iphi, zside)) ||
(depth < hcons_->getMinDepth(0, aieta, iphi, zside)))
ok = false;
Expand All @@ -576,7 +581,8 @@ bool HcalTopology::validRaw(const HcalDetId& id) const {
ok = false;
}
} else if (subdet == HcalEndcap) {
if (mode_ == HcalTopologyMode::SLHC || mode_ == HcalTopologyMode::H2HE) {
if ((mode_ == HcalTopologyMode::SLHC) || (mode_ == HcalTopologyMode::H2HE) || (mode_ == HcalTopologyMode::Run3) ||
(mode_ == HcalTopologyMode::Run4)) {
if ((depth > hcons_->getMaxDepth(1, aieta, iphi, zside)) ||
(depth < hcons_->getMinDepth(1, aieta, iphi, zside)) || (aieta < firstHERing()) || (aieta > lastHERing())) {
ok = false;
Expand Down Expand Up @@ -817,7 +823,8 @@ int HcalTopology::decAIEta(const HcalDetId& id, HcalDetId neighbors[2]) const {
void HcalTopology::depthBinInformation(
HcalSubdetector subdet, int etaRing, int iphi, int zside, int& nDepthBins, int& startingBin) const {
if (subdet == HcalBarrel) {
if (mode_ == HcalTopologyMode::SLHC || mode_ == HcalTopologyMode::H2HE) {
if ((mode_ == HcalTopologyMode::SLHC) || (mode_ == HcalTopologyMode::H2HE) || (mode_ == HcalTopologyMode::Run3) ||
(mode_ == HcalTopologyMode::Run4)) {
startingBin = hcons_->getMinDepth(0, etaRing, iphi, zside);
if (etaRing == lastHBRing()) {
nDepthBins = hcons_->getDepthEta16(1, iphi, zside) - startingBin + 1;
Expand All @@ -834,7 +841,8 @@ void HcalTopology::depthBinInformation(
}
}
} else if (subdet == HcalEndcap) {
if (mode_ == HcalTopologyMode::SLHC || mode_ == HcalTopologyMode::H2HE) {
if ((mode_ == HcalTopologyMode::SLHC) || (mode_ == HcalTopologyMode::H2HE) || (mode_ == HcalTopologyMode::Run3) ||
(mode_ == HcalTopologyMode::Run4)) {
if (etaRing == firstHERing()) {
startingBin = hcons_->getDepthEta16(2, iphi, zside);
} else {
Expand Down Expand Up @@ -888,14 +896,17 @@ bool HcalTopology::incrementDepth(HcalDetId& detId) const {
} else if (subdet == HcalBarrel && etaRing == lastHBRing()) {
// overlap
subdet = HcalEndcap;
if (mode_ == HcalTopologyMode::SLHC || mode_ == HcalTopologyMode::H2HE)
if ((mode_ == HcalTopologyMode::SLHC) || (mode_ == HcalTopologyMode::H2HE) || (mode_ == HcalTopologyMode::Run3) ||
(mode_ == HcalTopologyMode::Run4))
depth = hcons_->getDepthEta16(2, iphi, zside);
} else if (subdet == HcalEndcap && etaRing == lastHERing() - 1 && mode_ != HcalTopologyMode::SLHC) {
} else if ((subdet == HcalEndcap) && (etaRing == lastHERing() - 1) && (mode_ != HcalTopologyMode::SLHC) &&
(mode_ != HcalTopologyMode::Run3) && (mode_ != HcalTopologyMode::Run4)) {
// guard ring HF29 is behind HE 28
subdet = HcalForward;
(ieta > 0) ? ++ieta : --ieta;
depth = 1;
} else if (subdet == HcalEndcap && etaRing == lastHERing() && mode_ != HcalTopologyMode::SLHC) {
} else if ((subdet == HcalEndcap) && (etaRing == lastHERing()) && (mode_ != HcalTopologyMode::SLHC) &&
(mode_ != HcalTopologyMode::Run3) && (mode_ != HcalTopologyMode::Run4)) {
// split cells go to bigger granularity. Ring 29 -> 28
(ieta > 0) ? --ieta : ++ieta;
} else {
Expand Down Expand Up @@ -928,8 +939,9 @@ bool HcalTopology::decrementDepth(HcalDetId& detId) const {
break;
}
}
} else if (subdet == HcalEndcap && etaRing == lastHERing() && depth == hcons_->getDepthEta29(iphi, zside, 0) &&
mode_ != HcalTopologyMode::SLHC) {
} else if ((subdet == HcalEndcap) && (etaRing == lastHERing()) && (depth == hcons_->getDepthEta29(iphi, zside, 0)) &&
(mode_ != HcalTopologyMode::SLHC) && (mode_ != HcalTopologyMode::Run3) &&
(mode_ != HcalTopologyMode::Run4)) {
(ieta > 0) ? --ieta : ++ieta;
} else if (depth <= 0) {
if (subdet == HcalForward && etaRing == firstHFRing()) {
Expand Down
1 change: 1 addition & 0 deletions Geometry/ForwardGeometry/BuildFile.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
<lib name="1"/>
</export>
<use name="Geometry/CaloGeometry"/>
<use name="Geometry/HcalCommonData"/>
<use name="Geometry/CaloTopology"/>
<use name="Geometry/VeryForwardGeometryBuilder"/>
<use name="DataFormats/HcalDetId"/>
Expand Down
17 changes: 17 additions & 0 deletions Geometry/ForwardGeometry/interface/CaloGeometryDBZdc.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#ifndef Geometry_ForwardGeometry_CaloGeometryDBZdc_h
#define Geometry_ForwardGeometry_CaloGeometryDBZdc_h

#include "Geometry/CaloEventSetup/interface/CaloGeometryDBEP.h"
#include "Geometry/ForwardGeometry/interface/ZdcGeometry.h"

namespace calogeometryDBEPimpl {
template <>
struct AdditionalTokens<ZdcGeometry> {
void makeTokens(edm::ESConsumesCollectorT<ZdcGeometry::AlignedRecord>& cc) {
topology = cc.consumesFrom<ZdcTopology, HcalRecNumberingRecord>(edm::ESInputTag{});
}
edm::ESGetToken<ZdcTopology, HcalRecNumberingRecord> topology;
};
} // namespace calogeometryDBEPimpl

#endif
3 changes: 2 additions & 1 deletion Geometry/ForwardGeometry/interface/ZdcGeometry.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ class ZdcGeometry : public CaloSubdetectorGeometry {
typedef HcalZDCDetId DetIdType;

static constexpr int k_NumberOfCellsForCorners = HcalZDCDetId::kSizeForDenseIndexing;
uint32_t k_NumberOfCellsForCornersN;

static constexpr int k_NumberOfShapes = 3;

Expand Down Expand Up @@ -63,7 +64,7 @@ class ZdcGeometry : public CaloSubdetectorGeometry {
CaloSubdetectorGeometry::IVec& dins) const override;

protected:
unsigned int indexFor(const DetId& id) const override { return HcalZDCDetId(id).denseIndex(); }
unsigned int indexFor(const DetId& id) const override { return theTopology->detId2DenseIndex(id); }

// Modify the RawPtr class
const CaloCellGeometry* getGeometryRawPtr(uint32_t index) const override;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,10 @@ class ZdcHardcodeGeometryLoader {
public:
typedef CaloSubdetectorGeometry* ReturnType;

ZdcHardcodeGeometryLoader();
explicit ZdcHardcodeGeometryLoader(const ZdcTopology& ht);
virtual ~ZdcHardcodeGeometryLoader() { delete theTopology; }
~ZdcHardcodeGeometryLoader() {}

virtual ReturnType load(DetId::Detector det, int subdet);
ReturnType load(DetId::Detector det, int subdet);
ReturnType load();
void setAddRPD(bool flag) { m_zdcAddRPD = flag; }

Expand All @@ -30,7 +29,7 @@ class ZdcHardcodeGeometryLoader {
void fill(HcalZDCDetId::Section section, CaloSubdetectorGeometry* cg);
void makeCell(const HcalZDCDetId& detId, CaloSubdetectorGeometry* geom) const;

ZdcTopology* theTopology;
// ZdcTopology* theTopology;
const ZdcTopology* extTopology;
bool m_zdcAddRPD;
float theEMSectiondX;
Expand Down
Loading

0 comments on commit 3b9cfa6

Please sign in to comment.