32 thread_local
static TLS tls;
41 extRadius(extRadiusI),
47 if (tls.newAlgo==
nullptr || towers!=tls.oldTowers || towers->
size()!=tls.newAlgo->nt || (towers->
size()>15 && (*towers)[15].id()!=tls.id15)) {
51 tls.id15 = towers->
size()>15 ? (*towers)[15].id() : 0;
58 if (0!=detIdToExclude) assert(0==
intRadius);
64 tls.newAlgo->compute(et, sum, sc,
65 (detIdToExclude==0) ?
nullptr : &((*detIdToExclude).front()),
66 (detIdToExclude==0) ?
nullptr : (&(*detIdToExclude).back())+1
72 case Depth2:
return detIdToExclude==0 ? 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)