27 #include "CaloDetDescr/CaloDetDescrElement.h"
33 m_rMax(rMaxOverStdDev * stdDev),
35 m_allClustersIntegral(
eflowCalo::nRegions, 0.0),
36 m_nUnitCellPerWindowOverCellEtaPhiArea(
eflowCalo::nRegions),
42 double emX0PerUnitLengthToTheMinus3 =
pow(
database.getEmX0PerUnitLength(), -3.0);
43 double hadX0PerUnitLengthToTheMinus3 =
pow(
database.getHadX0PerUnitLength(), -3.0);
47 emX0PerUnitLengthToTheMinus3 :
48 hadX0PerUnitLengthToTheMinus3;
55 double nUnitCellsPerWindow =
M_PI * stdDev * stdDev / (
database.getEtaUnit() *
database.getPhiUnit());
56 std::vector<double> cellEtaWidth =
database.getCellEtaWidth();
57 std::vector<double> cellPhiWidth =
database.getCellPhiWidth();
60 nUnitCellsPerWindow / (cellEtaWidth[
i] * cellPhiWidth[
i]);
65 : m_rMax (originalEflowLayerIntegrator.m_rMax),
66 m_isHLLHC (originalEflowLayerIntegrator.m_isHLLHC),
67 m_allClustersIntegral (originalEflowLayerIntegrator.m_allClustersIntegral),
68 m_nUnitCellPerWindowOverCellEtaPhiArea (originalEflowLayerIntegrator.m_nUnitCellPerWindowOverCellEtaPhiArea),
79 if (
this == &originalEflowLayerIntegrator)
return *
this;
106 if ( fabs(em2Eta) > 2.5 ) em2Eta = 2.49;
110 if ( fabs(em2Eta) > 4.0 ) { em2Eta = 3.99; }
120 std::cerr <<
" eflowLayerIntegrator ERROR: cluster integral sizes do not match" << std::endl;
142 const EventContext& ctx = Gaudi::Hive::currentContext();
184 for (; itCell != itCellEnd; ++itCell) {
195 if (!caloDetDescrElement)
return;
199 if ( caloDetDescrElement->
volume() < 1
e-6 )
return;
204 const double extrapTrackEta = trackCalo.
getEta(
layer);
205 const double extrapTrackPhi = trackCalo.
getPhi(
layer);
211 const double etaWidth = caloDetDescrElement->
deta();
214 const double dEta =
cell->eta() - extrapTrackEta;
237 double maxGradient = -10.0;
246 const double dx = depthArray[depthLayer+1] - xPrev;
247 const double dy = convertedDensity - yPrev;
248 xPrev = depthArray[depthLayer+1];
249 yPrev = convertedDensity;
250 const double gradient =
dy /
dx;
252 if (gradient > maxGradient) {
253 maxGradient = gradient;