31 m_thetaEdge = m_ECLCrystalThetaEdge->getCalibVector();
34 m_phiEdge = m_ECLCrystalPhiEdge->getCalibVector();
37 m_thetaWidth = m_ECLCrystalThetaWidth->getCalibVector();
40 m_phiWidth = m_ECLCrystalPhiWidth->getCalibVector();
47 for (
int thID = 0; thID < 69; thID++) {
48 for (
int phID = 0; phID <
m_neighbours->getCrystalsPerRing(thID); phID++) {
78 int crysID = cellIDFromEnergy - 1;
84 if (dPhi > TMath::Pi()) {dPhi -= 2.*TMath::Pi();}
85 if (dPhi < -TMath::Pi()) {dPhi += 2.*TMath::Pi();}
95 for (
const auto& tempCellID :
m_neighbours->getNeighbours(cellIDFromEnergy)) {
96 int tempCrysID = tempCellID - 1;
99 if (dPhi > TMath::Pi()) {dPhi -= 2.*TMath::Pi();}
100 if (dPhi < -TMath::Pi()) {dPhi += 2.*TMath::Pi();}
103 if (dTheta >= 0 and dTheta <=
m_thetaWidth[tempCrysID] and dPhi >= 0 and dPhi <=
m_phiWidth[tempCrysID]) {
115 for (
int crys = 8735; crys >= 0; crys--) {
118 if (dPhi > TMath::Pi()) {dPhi -= 2.*TMath::Pi();}
119 if (dPhi < -TMath::Pi()) {dPhi += 2.*TMath::Pi();}
120 if (dPhi >= 0 and dPhi <=
m_phiWidth[crys] and dTheta >= 0) {
131 crysID = cellIDFromEnergy - 1;
137 int cellID = crysID + 1;
149 if ((iPhiMech == 0 and iRegion != 1) or (iPhiMech ==
m_crysBetweenMech[thetaID] - 1 and iRegion == 1)) {
154 }
else if ((iPhiMech ==
m_crysBetweenMech[thetaID] - 1 and iRegion != 1) or (iPhiMech == 0 and iRegion == 1)) {
165 int iLocalTheta = (int)(nPositions * dTheta /
m_thetaWidth[crysID]);
166 if (iLocalTheta < 0) {iLocalTheta = 0;}
167 if (iLocalTheta >= nPositions) {iLocalTheta = nPositions - 1;}
169 int iLocalPhi = (int)(nPositions * dPhi /
m_phiWidth[crysID]);
170 if (iLocalPhi < 0) {iLocalPhi = 0;}
171 if (iLocalPhi >= nPositions) {iLocalPhi = nPositions - 1;}
175 if (reversePhi) {iLocalPhi = nPositions - iLocalPhi - 1;}
178 std::vector<int> position;
179 position.push_back(cellID);
180 position.push_back(thetaID);
181 position.push_back(iRegion);
182 position.push_back(iLocalTheta);
183 position.push_back(iLocalPhi);
184 position.push_back(iPhiMech);
185 position.push_back(iStatus);