28 std::unique_ptr<EgammaTowerIsolationNew<1>> newAlgo=
nullptr;;
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 (
nullptr!=detIdToExclude) assert(0==
intRadius);
63 tls.newAlgo->compute(et, sum, sc,
64 (detIdToExclude==
nullptr) ?
nullptr : &((*detIdToExclude).front()),
65 (detIdToExclude==
nullptr) ?
nullptr : (&(*detIdToExclude).back())+1
69 case AllDepths:
return detIdToExclude==
nullptr ? sum.
he[0] : sum.
heBC[0];
70 case Depth1:
return detIdToExclude==
nullptr ? sum.
he[0]-sum.
h2[0] : sum.
heBC[0]-sum.
h2BC[0];
71 case Depth2:
return detIdToExclude==
nullptr ? 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)