Skip to content

Commit 40a9ecb

Browse files
authored
Merge pull request cms-sw#43313 from iarspider/dtmuonmillipede-array-bounds
Fix array-bounds warning in DTMuonMillepede
2 parents f59906c + 04a137d commit 40a9ecb

File tree

1 file changed

+15
-17
lines changed

1 file changed

+15
-17
lines changed

Alignment/MuonAlignmentAlgorithms/src/DTMuonMillepede.cc

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "Alignment/MuonAlignmentAlgorithms/interface/DTMuonMillepede.h"
22

3+
#include <array>
34
#include <iostream>
45

56
DTMuonMillepede::DTMuonMillepede(std::string path,
@@ -567,34 +568,32 @@ TMatrixD DTMuonMillepede::getCqcMatrix(int wh, int st, int se) {
567568
}
568569
}
569570
}
570-
double **Eta = new double *[12];
571-
for (int counterLayer = 0; counterLayer < 12; counterLayer++) {
571+
572+
std::array<std::array<double, 12>, 12> Eta{};
573+
for (size_t counterLayer = 0; counterLayer < Eta.size(); counterLayer++) {
572574
if (counterLayer > 7 && st == 4)
573575
continue;
574-
Eta[counterLayer] = new double[5];
575-
for (int counterLayer2 = 0; counterLayer2 < 12; counterLayer2++) {
576-
if (counterLayer > 7 && st == 4)
576+
for (size_t counterLayer2 = 0; counterLayer2 < Eta[counterLayer].size(); counterLayer2++) {
577+
if (counterLayer2 > 7 && st == 4)
577578
continue;
578579
if ((counterLayer2 < 4 && counterLayer < 4) || (counterLayer2 > 3 && counterLayer > 3)) {
579580
if (counterLayer == counterLayer2) {
580581
Eta[counterLayer][counterLayer2] = 3.0 / (4.0);
581582
} else {
582583
Eta[counterLayer][counterLayer2] = -1.0 / (4.0);
583584
}
584-
} else {
585-
Eta[counterLayer][counterLayer2] = 0.0;
586585
}
587586
}
588587
}
589588

590589
for (int counterDeg = 0; counterDeg < 5; counterDeg++) {
591-
for (int counterLayer = 0; counterLayer < 12; counterLayer++) {
590+
for (size_t counterLayer = 0; counterLayer < 12; counterLayer++) {
592591
if (counterLayer > 7 && st == 4)
593592
continue;
594-
for (int counterLayer2 = 0; counterLayer2 < 12; counterLayer2++) {
593+
for (size_t counterLayer2 = 0; counterLayer2 < 12; counterLayer2++) {
595594
if (counterLayer2 > 7 && st == 4)
596595
continue;
597-
for (int counterLayer3 = 0; counterLayer3 < 12; counterLayer3++) {
596+
for (size_t counterLayer3 = 0; counterLayer3 < 12; counterLayer3++) {
598597
if (counterLayer3 > 7 && st == 4)
599598
continue;
600599
matrix(5 * counterLayer2 + counterDeg, 5 * counterLayer3 + counterDeg) +=
@@ -668,13 +667,12 @@ TMatrixD DTMuonMillepede::getbqcMatrix(int wh, int st, int se) {
668667
}
669668
}
670669
}
671-
double **Eta = new double *[12];
672-
for (int counterLayer = 0; counterLayer < 12; counterLayer++) {
670+
std::array<std::array<double, 12>, 12> Eta{};
671+
for (size_t counterLayer = 0; counterLayer < Eta.size(); counterLayer++) {
673672
if (counterLayer > 7 && st == 4)
674673
continue;
675-
Eta[counterLayer] = new double[5];
676-
for (int counterLayer2 = 0; counterLayer2 < 12; counterLayer2++) {
677-
if (counterLayer > 7 && st == 4)
674+
for (size_t counterLayer2 = 0; counterLayer2 < Eta[counterLayer].size(); counterLayer2++) {
675+
if (counterLayer2 > 7 && st == 4)
678676
continue;
679677
if ((counterLayer2 < 4 && counterLayer < 4) || (counterLayer2 > 3 && counterLayer > 3)) {
680678
if (counterLayer == counterLayer2) {
@@ -689,10 +687,10 @@ TMatrixD DTMuonMillepede::getbqcMatrix(int wh, int st, int se) {
689687
}
690688

691689
for (int counterDeg = 0; counterDeg < 5; counterDeg++) {
692-
for (int counterLayer = 0; counterLayer < 12; counterLayer++) {
690+
for (size_t counterLayer = 0; counterLayer < 12; counterLayer++) {
693691
if (counterLayer > 7 && st == 4)
694692
continue;
695-
for (int counterLayer2 = 0; counterLayer2 < 12; counterLayer2++) {
693+
for (size_t counterLayer2 = 0; counterLayer2 < 12; counterLayer2++) {
696694
if (counterLayer2 > 7 && st == 4)
697695
continue;
698696
float mean = 0;

0 commit comments

Comments
 (0)