28 std::unique_ptr<EgammaTowerIsolationNew<1>> newAlgo =
nullptr;
43 if (tls.newAlgo.get() ==
nullptr || towers != tls.oldTowers || towers->
size() != tls.newAlgo->nt ||
44 (towers->
size() > 15 && (*towers)[15].id() != tls.id15)) {
47 tls.id15 = towers->
size() > 15 ? (*towers)[15].id() : 0;
53 const std::vector<CaloTowerDetId>* detIdToExclude)
const {
54 if (
nullptr != detIdToExclude)
61 tls.newAlgo->compute(et,
64 (detIdToExclude ==
nullptr) ?
nullptr : &((*detIdToExclude).front()),
65 (detIdToExclude ==
nullptr) ?
nullptr : (&(*detIdToExclude).back()) + 1);
69 return detIdToExclude ==
nullptr ? sum.
he[0] : sum.
heBC[0];
71 return detIdToExclude ==
nullptr ? sum.
he[0] - sum.
h2[0] : sum.
heBC[0] - sum.
h2BC[0];
73 return detIdToExclude ==
nullptr ? sum.
h2[0] : sum.
h2BC[0];
double getSum(bool et, reco::SuperCluster const &sc, const std::vector< CaloTowerDetId > *detIdToExclude) const
EgammaTowerIsolation(float extRadiusI, float intRadiusI, float etLow, signed int depth, const CaloTowerCollection *towers)