25 std::pair<float, float>(0.0375, 0.15);
27 std::pair<float, float>(0.0375, 0.15);
29 std::pair<float, float>(0.011, 0.15);
31 std::pair<float, float>(0.011, 0.15);
33 std::pair<float, float>(0.0625, 0.0625);
35 std::pair<float, float>(0.0625, 0.0625);
37 std::pair<float, float>(0.075, 0.0375);
39 std::pair<float, float>(0.075, 0.0375);
41 std::pair<float, float>(0.154, 0.151);
43 std::pair<float, float>(0.154, 0.151);
45 std::pair<float, float>(0.308, 0.151);
47 std::pair<float, float>(0.154, 0.151);
49 std::pair<float, float>(0.154, 0.151);
51 std::pair<float, float>(0.308, 0.151);
53 std::pair<float, float>(0.154, 0.151);
55 std::pair<float, float>(0.308, 0.151);
57 std::pair<float, float>(0.308, 0.151);
98 std::pair<float, float>(0.025, 0.06);
100 std::pair<float, float>(0.025, 0.06);
102 std::pair<float, float>(0.03, 0.07);
104 std::pair<float, float>(0.03, 0.07);
106 std::pair<float, float>(0.08, 0.06);
108 std::pair<float, float>(0.102, 0.101);
110 std::pair<float, float>(0.15, 0.06);
112 std::pair<float, float>(0.08, 0.06);
114 std::pair<float, float>(0.102, 0.101);
116 std::pair<float, float>(0.15, 0.06);
141 const std::vector<std::pair<float, float>>& dEtadPhiCore,
142 const std::vector<float>& dEtadPhiDRCore,
143 const std::vector<bool>& selectEtCoreByEtadPhi)
145 m_dEtadPhiCore = dEtadPhiCore;
146 m_dEtadPhiDRCore = dEtadPhiDRCore;
147 m_selectEtCoreByEtadPhi = selectEtCoreByEtadPhi;
159 std::vector<const CaloCell*>
cells;
167 using SampData = std::tuple<float, float, float>;
168 using SampDataPair = std::pair<CaloSample, SampData>;
169 std::map<CaloSample, SampData> sampleEtaPhiMap;
171 unsigned int samplingPattern = 0;
176 for (
auto samp : m_samples) {
181 auto midPoint = 0.5 * (
pos->second.first +
pos->second.second);
182 clusVec = clusVec + midPoint;
183 myList.
select(midPoint.eta(),
185 m_dEtadPhi[samp].first,
186 m_dEtadPhi[samp].second,
190 for (
const auto*
cell : myList)
193 sampleEtaPhiMap.insert(
194 SampDataPair(samp, std::make_tuple(
e, midPoint.eta(), midPoint.phi())));
200 for (
auto samp : m_samplesForDR) {
205 auto midPoint = 0.5 * (
pos->second.first +
pos->second.second);
206 clusVec = clusVec + midPoint;
207 myList.
select(midPoint.eta(), midPoint.phi(), 0.1, samp);
210 for (
const auto*
cell : myList)
213 sampleEtaPhiMap.insert(
214 SampDataPair(samp, std::make_tuple(
e, midPoint.eta(), midPoint.phi())));
221 float clusVecEta, clusVecPhi;
222 clusVecEta = clusVec.eta();
223 clusVecPhi = clusVec.phi();
246 for (
auto entry : sampleEtaPhiMap) {
252 cluster->
setEta(clusVecEta);
253 cluster->
setPhi(clusVecPhi);
260 std::vector<float>& etcore,
262 float sigmaNoiseCut)
const
269 float etCoreTile = 0;
273 for (
const auto*
cell : clus) {
275 float clusEta = clus.etaSample(samp);
276 float clusPhi = clus.phiSample(samp);
277 float deta = clusEta -
cell->eta();
279 bool addCell =
false;
281 if (m_selectEtCoreByEtadPhi[samp]) {
282 if (fabs(deta) < m_dEtadPhiCore[samp].
first &&
283 fabs(dphi) < m_dEtadPhiCore[samp].
second) {
287 if ((deta * deta + dphi * dphi) < m_dEtadPhiDRCore[samp]) {
292 if (caloNoise && addCell &&
299 sampEt[samp] +=
cell->energy() / cosh(clusEta);
321 etCore = etCoreEM + etCoreTile + etCoreHEC;