Skip to content

Commit

Permalink
Make statics constexpr in HcalTopology
Browse files Browse the repository at this point in the history
This fixes a problem when compiling using UBSAN as a static const
object is still required to have storage assigned while a constexpr
does not have storage.
  • Loading branch information
Dr15Jones committed Jun 19, 2019
1 parent a8f4647 commit e317a5b
Showing 1 changed file with 39 additions and 39 deletions.
78 changes: 39 additions & 39 deletions Geometry/CaloTopology/interface/HcalTopology.h
Expand Up @@ -244,58 +244,58 @@ class HcalTopology : public CaloSubdetectorTopology {
enum { kHTSizePreLS1 = 2 * kHThalf };
enum { kHTSizePhase1 = 2 * kHThalfPhase1 };
enum { kCALIBSizePreLS1 = 2 * kCALIBhalf };
static const int minMaxDepth_ = 4;
static const unsigned int minPhi_ = 1, maxPhi_ = 72;
static const unsigned int nchanCalibHB_ = 3, nchanCalibHE_ = 6;
static const unsigned int nchanCalibHF_ = 3, nchanCalibHO_ = 2, chanCalibHOs_ = 7;
static constexpr int minMaxDepth_ = 4;
static constexpr unsigned int minPhi_ = 1, maxPhi_ = 72;
static constexpr unsigned int nchanCalibHB_ = 3, nchanCalibHE_ = 6;
static constexpr unsigned int nchanCalibHF_ = 3, nchanCalibHO_ = 2, chanCalibHOs_ = 7;
static constexpr int chanCalibHB_[nchanCalibHB_] = {0, 1, 2};
static constexpr int chanCalibHE_[nchanCalibHE_] = {0, 1, 3, 4, 5, 6};
static constexpr int chanCalibHF_[nchanCalibHF_] = {0, 1, 8};
static constexpr int chanCalibHO_[nchanCalibHO_] = {0, 1};
static const unsigned int nEtaCalibHBHEHF_ = 2, nEtaCalibHO_ = 5;
static constexpr unsigned int nEtaCalibHBHEHF_ = 2, nEtaCalibHO_ = 5;
static constexpr int etaCalibHBHEHF_[nEtaCalibHBHEHF_] = {-1, 1};
static constexpr int etaCalibHO_[nEtaCalibHO_] = {-2, -1, 0, 1, 2};
static constexpr int phiCalibHO_[nEtaCalibHO_] = {59, 47, 53, 47, 47};
static const unsigned int mPhiCalibHBHE_ = 4, mPhiCalibHF_ = 18;
static const unsigned int mPhiCalibHO1_ = 12, mPhiCalibHO0_ = mPhiCalibHO1_ / 2;
static const unsigned int kPhiCalibHBHE_ = maxPhi_ / mPhiCalibHBHE_;
static const unsigned int kchanCalibHB_ = nchanCalibHB_ * kPhiCalibHBHE_ / 2;
static const unsigned int kchanCalibHE_ = nchanCalibHE_ * kPhiCalibHBHE_ / 2;
static const unsigned int nCalibHB_ = kPhiCalibHBHE_ * nchanCalibHB_ * nEtaCalibHBHEHF_;
static const unsigned int nCalibHE_ = kPhiCalibHBHE_ * nchanCalibHE_ * nEtaCalibHBHEHF_;
static const unsigned int kPhiCalibHF_ = maxPhi_ / mPhiCalibHF_;
static const unsigned int kchanCalibHF_ = nchanCalibHF_ * kPhiCalibHF_ / 2;
static const unsigned int nCalibHF_ = kPhiCalibHF_ * nchanCalibHF_ * nEtaCalibHBHEHF_;
static const unsigned int kPhiCalibHO0_ = maxPhi_ / mPhiCalibHO0_;
static const unsigned int kPhiCalibHO1_ = maxPhi_ / mPhiCalibHO1_;
static const unsigned int kPhiCalibHO2_ = (3 * kPhiCalibHO1_ + kPhiCalibHO0_);
static const unsigned int kchanCalibHO_ = nchanCalibHO_ * kPhiCalibHO1_ / 2;
static const unsigned int kchanCalibHO1_ = maxPhi_ / 2;
static const unsigned int kEtaPhiCalibHO_ = kPhiCalibHO1_ * (1 + nEtaCalibHO_);
static const unsigned int nCalibHO0_ = kEtaPhiCalibHO_ * nchanCalibHO_;
static const unsigned int nCalibHO_ = (nEtaCalibHO_ + nCalibHO0_);
static const unsigned int kOffCalibHB_ = 0, kOffCalibHE_ = (kOffCalibHB_ + nCalibHB_);
static const unsigned int kOffCalibHF_ = (kOffCalibHE_ + nCalibHE_);
static const unsigned int kOffCalibHO0_ = (kOffCalibHF_ + nCalibHF_);
static const unsigned int kOffCalibHO_ = (kOffCalibHO0_ + nCalibHO0_);
static const unsigned int kOffCalibHOX_ = (kOffCalibHO0_ + nCalibHO_);
static const unsigned int nEtaCalibHOX_ = 2, ctypeHX_ = -999;
static constexpr unsigned int mPhiCalibHBHE_ = 4, mPhiCalibHF_ = 18;
static constexpr unsigned int mPhiCalibHO1_ = 12, mPhiCalibHO0_ = mPhiCalibHO1_ / 2;
static constexpr unsigned int kPhiCalibHBHE_ = maxPhi_ / mPhiCalibHBHE_;
static constexpr unsigned int kchanCalibHB_ = nchanCalibHB_ * kPhiCalibHBHE_ / 2;
static constexpr unsigned int kchanCalibHE_ = nchanCalibHE_ * kPhiCalibHBHE_ / 2;
static constexpr unsigned int nCalibHB_ = kPhiCalibHBHE_ * nchanCalibHB_ * nEtaCalibHBHEHF_;
static constexpr unsigned int nCalibHE_ = kPhiCalibHBHE_ * nchanCalibHE_ * nEtaCalibHBHEHF_;
static constexpr unsigned int kPhiCalibHF_ = maxPhi_ / mPhiCalibHF_;
static constexpr unsigned int kchanCalibHF_ = nchanCalibHF_ * kPhiCalibHF_ / 2;
static constexpr unsigned int nCalibHF_ = kPhiCalibHF_ * nchanCalibHF_ * nEtaCalibHBHEHF_;
static constexpr unsigned int kPhiCalibHO0_ = maxPhi_ / mPhiCalibHO0_;
static constexpr unsigned int kPhiCalibHO1_ = maxPhi_ / mPhiCalibHO1_;
static constexpr unsigned int kPhiCalibHO2_ = (3 * kPhiCalibHO1_ + kPhiCalibHO0_);
static constexpr unsigned int kchanCalibHO_ = nchanCalibHO_ * kPhiCalibHO1_ / 2;
static constexpr unsigned int kchanCalibHO1_ = maxPhi_ / 2;
static constexpr unsigned int kEtaPhiCalibHO_ = kPhiCalibHO1_ * (1 + nEtaCalibHO_);
static constexpr unsigned int nCalibHO0_ = kEtaPhiCalibHO_ * nchanCalibHO_;
static constexpr unsigned int nCalibHO_ = (nEtaCalibHO_ + nCalibHO0_);
static constexpr unsigned int kOffCalibHB_ = 0, kOffCalibHE_ = (kOffCalibHB_ + nCalibHB_);
static constexpr unsigned int kOffCalibHF_ = (kOffCalibHE_ + nCalibHE_);
static constexpr unsigned int kOffCalibHO0_ = (kOffCalibHF_ + nCalibHF_);
static constexpr unsigned int kOffCalibHO_ = (kOffCalibHO0_ + nCalibHO0_);
static constexpr unsigned int kOffCalibHOX_ = (kOffCalibHO0_ + nCalibHO_);
static constexpr unsigned int nEtaCalibHOX_ = 2, ctypeHX_ = -999;
static constexpr unsigned int etaCalibHOX_[nEtaCalibHOX_] = {4, 15};
static constexpr unsigned int mPhiCalibHOX_[nEtaCalibHOX_] = {2, 1};
static constexpr unsigned int nPhiCalibHOX_[nEtaCalibHOX_] = {36, 72};
static const int nCalibHOX_ = (2 * (nPhiCalibHOX_[0] + nPhiCalibHOX_[1]));
static constexpr int nCalibHOX_ = (2 * (nPhiCalibHOX_[0] + nPhiCalibHOX_[1]));
static constexpr int phiCalibHOX_[37] = {36, 1, 38, 3, 40, 41, 6, 43, 8, 45, 10, 47, 12, 49, 14, 51, 16, 17, 54,
19, 56, 21, 58, 23, 60, 25, 62, 27, 64, 65, 30, 67, 32, 69, 34, 71, 36};
static const unsigned int kOffCalibHBX_ = (kOffCalibHOX_ + nCalibHOX_);
static const unsigned int nEtaCalibHBX_ = 1, etaCalibHBX_ = 16;
static const unsigned int mPhiCalibHBX_ = 1, nPhiCalibHBX_ = maxPhi_ / mPhiCalibHBX_;
static const unsigned int nCalibHBX_ = (2 * nPhiCalibHBX_ * nEtaCalibHBX_);
static const unsigned int kOffCalibHEX_ = (kOffCalibHBX_ + nCalibHBX_);
static const unsigned int nEtaCalibHEX_ = 2;
static constexpr unsigned int kOffCalibHBX_ = (kOffCalibHOX_ + nCalibHOX_);
static constexpr unsigned int nEtaCalibHBX_ = 1, etaCalibHBX_ = 16;
static constexpr unsigned int mPhiCalibHBX_ = 1, nPhiCalibHBX_ = maxPhi_ / mPhiCalibHBX_;
static constexpr unsigned int nCalibHBX_ = (2 * nPhiCalibHBX_ * nEtaCalibHBX_);
static constexpr unsigned int kOffCalibHEX_ = (kOffCalibHBX_ + nCalibHBX_);
static constexpr unsigned int nEtaCalibHEX_ = 2;
static constexpr int etaCalibHEX_[nEtaCalibHEX_] = {25, 27};
static const unsigned int mPhiCalibHEX_ = 2, nPhiCalibHEX_ = maxPhi_ / mPhiCalibHEX_;
static const unsigned int nCalibHEX_ = (2 * nPhiCalibHEX_ * nEtaCalibHEX_);
static const unsigned int kOffCalibHFX_ = (kOffCalibHEX_ + nCalibHEX_);
static constexpr unsigned int mPhiCalibHEX_ = 2, nPhiCalibHEX_ = maxPhi_ / mPhiCalibHEX_;
static constexpr unsigned int nCalibHEX_ = (2 * nPhiCalibHEX_ * nEtaCalibHEX_);
static constexpr unsigned int kOffCalibHFX_ = (kOffCalibHEX_ + nCalibHEX_);
};

#endif

0 comments on commit e317a5b

Please sign in to comment.