Skip to content

Commit

Permalink
Merge pull request #31813 from bsunanda/Run3-gex21
Browse files Browse the repository at this point in the history
Run3-gex21 Correct ECAL numbering schemes to work for dd4hep
  • Loading branch information
cmsbuild authored Oct 16, 2020
2 parents 37c7bf6 + 8cf0dde commit 99f65c7
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 32 deletions.
38 changes: 22 additions & 16 deletions Geometry/EcalCommonData/src/EcalBarrelNumberingScheme.cc
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
#include "Geometry/EcalCommonData/interface/EcalBarrelNumberingScheme.h"
#include "DataFormats/EcalDetId/interface/EBDetId.h"

#include <iostream>
//#define EDM_ML_DEBUG

EcalBarrelNumberingScheme::EcalBarrelNumberingScheme() : EcalNumberingScheme() {
edm::LogInfo("EcalGeom") << "Creating EcalBarrelNumberingScheme";
edm::LogVerbatim("EcalGeom") << "Creating EcalBarrelNumberingScheme";
}

EcalBarrelNumberingScheme::~EcalBarrelNumberingScheme() {
Expand All @@ -18,34 +18,39 @@ EcalBarrelNumberingScheme::~EcalBarrelNumberingScheme() {
uint32_t EcalBarrelNumberingScheme::getUnitID(const EcalBaseNumber& baseNumber) const {
const uint32_t nLevels(baseNumber.getLevels());

#ifdef EDM_ML_DEBUG
edm::LogVerbatim("EcalGeom") << "ECalBarrelNumberingScheme geometry levels = " << nLevels;

#endif
if (12 > nLevels) {
edm::LogWarning("EcalGeom") << "ECalBarrelNumberingScheme::getUnitID(): "
<< "Not enough levels found in EcalBaseNumber ( " << nLevels << ") Returning 0";
return 0;
}

const std::string& cryName(baseNumber.getLevelName(0)); // name of crystal volume
const std::string& cryName(baseNumber.getLevelName(0).substr(0, 7)); // name of crystal volume

const int cryType(::atoi(cryName.c_str() + 5));

const int off(12 < nLevels ? 3 : 0);
const int off(13 < nLevels ? 3 : 0);

const uint32_t wallCopy(baseNumber.getCopyNumber(3 + off));
const uint32_t hawCopy(baseNumber.getCopyNumber(4 + off));
const uint32_t fawCopy(baseNumber.getCopyNumber(5 + off));
const uint32_t supmCopy(baseNumber.getCopyNumber(6 + off));
/*
edm::LogVerbatim("EcalGeom") << baseNumber.getLevelName(0) << ", "
<< baseNumber.getLevelName(1) << ", "
<< baseNumber.getLevelName(2) << ", "
<< baseNumber.getLevelName(3) << ", "
<< baseNumber.getLevelName(4) << ", "
<< baseNumber.getLevelName(5) << ", "
<< baseNumber.getLevelName(6) << ", "
<< baseNumber.getLevelName(7) ;
*/
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("EcalGeom") << nLevels << ", " << off << ", " << cryType << ", " << baseNumber.getLevelName(0) << ":"
<< baseNumber.getCopyNumber(0) << ", " << baseNumber.getLevelName(1) << ":"
<< baseNumber.getCopyNumber(1) << ", " << baseNumber.getLevelName(2) << ":"
<< baseNumber.getCopyNumber(2) << ", " << baseNumber.getLevelName(3) << ":"
<< baseNumber.getCopyNumber(3) << ", " << baseNumber.getLevelName(4) << ":"
<< baseNumber.getCopyNumber(4) << ", " << baseNumber.getLevelName(5) << ":"
<< baseNumber.getCopyNumber(5) << ", " << baseNumber.getLevelName(6) << ":"
<< baseNumber.getCopyNumber(6) << ", " << baseNumber.getLevelName(7) << ":"
<< baseNumber.getCopyNumber(7) << ", " << baseNumber.getLevelName(8) << ":"
<< baseNumber.getCopyNumber(8) << ", " << baseNumber.getLevelName(9) << ":"
<< baseNumber.getCopyNumber(9) << ", " << baseNumber.getLevelName(10) << ":"
<< baseNumber.getCopyNumber(10);
#endif
// error checking

if (1 > cryType || 17 < cryType) {
Expand Down Expand Up @@ -103,11 +108,12 @@ uint32_t EcalBarrelNumberingScheme::getUnitID(const EcalBaseNumber& baseNumber)
}
++count;
*/
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("EcalGeom") << "EcalBarrelNumberingScheme: "
<< "supmCopy = " << supmCopy << ", fawCopy = " << fawCopy << ", hawCopy = " << hawCopy
<< ", wallCopy = " << wallCopy << ", cryType = " << cryType
<< "\n zsign = " << zsign << ", eta = " << eta << ", phi = " << phi
<< ", packed index = 0x" << std::hex << intindex << std::dec;

#endif
return intindex;
}
22 changes: 10 additions & 12 deletions Geometry/EcalCommonData/src/EcalEndcapNumberingScheme.cc
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@
#include "Geometry/EcalCommonData/interface/EcalEndcapNumberingScheme.h"
#include "DataFormats/EcalDetId/interface/EEDetId.h"

#include <iostream>
#include <iomanip>
//#define EDM_ML_DEBUG

EcalEndcapNumberingScheme::EcalEndcapNumberingScheme() : EcalNumberingScheme() {
edm::LogVerbatim("EcalGeom") << "Creating EcalEndcapNumberingScheme";
Expand All @@ -18,8 +17,9 @@ EcalEndcapNumberingScheme::~EcalEndcapNumberingScheme() {
uint32_t EcalEndcapNumberingScheme::getUnitID(const EcalBaseNumber& baseNumber) const {
const uint32_t nLevels(baseNumber.getLevels());

#ifdef EDM_ML_DEBUG
edm::LogVerbatim("EcalGeom") << "ECalEndcapNumberingScheme geometry levels = " << nLevels;

#endif
if (7 > nLevels) {
edm::LogWarning("EcalGeom") << "ECalEndcapNumberingScheme::getUnitID(): "
<< "Not enough levels found in EcalBaseNumber ( " << nLevels << ") Returning 0";
Expand Down Expand Up @@ -50,10 +50,11 @@ uint32_t EcalEndcapNumberingScheme::getUnitID(const EcalBaseNumber& baseNumber)

uint32_t intindex = EEDetId(module_number, crystal_number, zside, EEDetId::SCCRYSTALMODE).rawId();

#ifdef EDM_ML_DEBUG
edm::LogVerbatim("EcalGeom") << "EcalEndcapNumberingScheme: zside = " << zside
<< " super crystal = " << module_number << " crystal = " << crystal_number
<< " packed index = 0x" << std::hex << intindex << std::dec;

#endif
return intindex;
} else {
// algorithmic geometry
Expand Down Expand Up @@ -118,14 +119,11 @@ uint32_t EcalEndcapNumberingScheme::getUnitID(const EcalBaseNumber& baseNumber)
return 0;
}

//*************************************************************************************
/*
edm::LogWarning("EdalGeom") << "ECalEndcapNumberingScheme::getUnitID(): "
<<std::dec<< ix << ", " << iy << ", " <<iq << ", " << id << ", " << iz << ", " << std::hex << idet ;
edm::LogWarning("EdalGeom") << "ECalEndcapNumberingScheme::EEDetId: "
<< EEDetId(idet) ;
*/
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("EdalGeom") << "ECalEndcapNumberingScheme::getUnitID(): " << std::dec << ix << ", " << iy << ", "
<< iq << ", " << id << ", " << iz << ", " << std::hex << idet << std::dec;
edm::LogVerbatim("EdalGeom") << "ECalEndcapNumberingScheme::EEDetId: " << EEDetId(idet);
#endif
return idet;
}
}
8 changes: 4 additions & 4 deletions Geometry/EcalCommonData/src/EcalPreshowerNumberingScheme.cc
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@
#include "Geometry/EcalCommonData/interface/EcalPreshowerNumberingScheme.h"
#include "DataFormats/EcalDetId/interface/ESDetId.h"

#include <iostream>
using namespace std;
//#define EDM_ML_DEBUG

EcalPreshowerNumberingScheme::EcalPreshowerNumberingScheme() : EcalNumberingScheme() {
// For SFLX2a, we use copy# 1-3
Expand Down Expand Up @@ -414,15 +413,16 @@ uint32_t EcalPreshowerNumberingScheme::getUnitID(const EcalBaseNumber& baseNumbe

intIndex = ESDetId(strip, x, y, layer, zside).rawId();

#ifdef EDM_ML_DEBUG
edm::LogVerbatim("EcalGeom") << "EcalPreshowerNumberingScheme : zside " << zside << " Ladd " << ladd
<< " ladd_copy: " << ladd_copy << " box " << box << " x " << x << " y " << y
<< " layer " << layer << " strip " << strip << " UnitID 0x" << std::hex << intIndex
<< std::dec;

for (int ich = 0; ich < level; ich++) {
for (int ich = 0; ich < level; ich++)
edm::LogVerbatim("EcalGeom") << "Name = " << baseNumber.getLevelName(ich)
<< " copy = " << baseNumber.getCopyNumber(ich);
}
#endif
}

return intIndex;
Expand Down

0 comments on commit 99f65c7

Please sign in to comment.