28 std::unique_ptr<EgammaTowerIsolationNew<1>> newAlgo=
nullptr;;
32 thread_local
static TLS tls;
47 if (tls.newAlgo.get()==
nullptr || towers!=tls.oldTowers || towers->
size()!=tls.newAlgo->nt || (towers->
size()>15 && (*towers)[15].id()!=tls.id15)) {
48 tls.newAlgo = std::make_unique<EgammaTowerIsolationNew<1>>(&
extRadius,&
intRadius,*towers);
50 tls.id15 = towers->
size()>15 ? (*towers)[15].id() : 0;
57 if (0!=detIdToExclude) assert(0==
intRadius);
63 tls.newAlgo->compute(et, sum, sc,
64 (detIdToExclude==0) ?
nullptr : &((*detIdToExclude).front()),
65 (detIdToExclude==0) ?
nullptr : (&(*detIdToExclude).back())+1
71 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
et
define resolution functions of each parameter
EgammaTowerIsolation(float extRadiusI, float intRadiusI, float etLow, signed int depth, const CaloTowerCollection *towers)