972 |
|
EffectiveAreaVersion = MuonTools::kMuEAData2012; |
973 |
|
// !!!!!!!!!!!!! TMP HACK FOR SYNC !!!!!!!!!!!!!!!!!!!!! |
974 |
|
} |
975 |
< |
if(ctrl.debug) cout << " rho: " << rho << endl; |
975 |
> |
// if(ctrl.debug) cout << " rho: " << rho << endl; |
976 |
|
|
977 |
|
TLorentzVector tmpvec; |
978 |
|
tmpvec.SetPtEtaPhiM(mu->Pt(),mu->Eta(),mu->Phi(),mu->Mass()); |
993 |
|
|
994 |
|
if( ctrl.debug ) { |
995 |
|
cout << " PFiso: " << pfIso |
996 |
< |
<< "\tfChargedIso: " << fChargedIso |
997 |
< |
<< "\tfGammaIso: " << fGammaIso |
998 |
< |
<< "\tfNeutralHadronIso: " << fNeutralHadronIso |
996 |
> |
<< setw(9) << setprecision(4) << fChargedIso |
997 |
> |
<< setw(9) << setprecision(4) << fGammaIso |
998 |
> |
<< setw(9) << setprecision(4) << fNeutralHadronIso |
999 |
|
<< endl; |
1000 |
|
} |
1001 |
|
|
1939 |
|
if (dr > 0.4) continue; |
1940 |
|
if( !(PFnoPUflag[k]) ) continue; // my PF no PU hack |
1941 |
|
|
1942 |
< |
if(ctrl.debug) { |
1943 |
< |
cout << " pf :: type: " << pf->PFType() << "\tpt: " << pf->Pt() << "\tdR: " << dr; |
1944 |
< |
if( pf->HasTrackerTrk() ) cout << "\tdZ: " << pf->TrackerTrk()->DzCorrected(*vtx) |
1945 |
< |
<< "\ttrk: " << pf->HasTrackerTrk() |
1946 |
< |
<< "\tgsf: " << pf->HasGsfTrk(); |
1947 |
< |
cout << endl; |
1948 |
< |
} |
1949 |
< |
|
1950 |
< |
// |
1951 |
< |
// sync : I don't think theyre doing this ... |
1952 |
< |
// |
1953 |
< |
// if ( (pf->HasTrackerTrk() && (pf->TrackerTrk() == ele->TrackerTrk())) || |
1954 |
< |
// (pf->HasGsfTrk() && (pf->GsfTrk() == ele->GsfTrk()))) { |
1955 |
< |
// if( ctrl.debug ) cout << "\tskipping, matches to the electron ..." << endl; |
1956 |
< |
// continue; |
1957 |
< |
// } |
1958 |
< |
|
1942 |
> |
// if(ctrl.debug) { |
1943 |
> |
// cout << " pf :: type: " << pf->PFType() << "\tpt: " << pf->Pt() << "\tdR: " << dr; |
1944 |
> |
// if( pf->HasTrackerTrk() ) cout << "\tdZ: " << pf->TrackerTrk()->DzCorrected(*vtx) |
1945 |
> |
// << "\ttrk: " << pf->HasTrackerTrk() |
1946 |
> |
// << "\tgsf: " << pf->HasGsfTrk(); |
1947 |
> |
// cout << endl; |
1948 |
> |
// } |
1949 |
|
|
1950 |
|
// |
1951 |
|
// Lepton Footprint Removal |
1961 |
|
|
1962 |
|
// Veto any PFmuon, or PFEle |
1963 |
|
if (abs(pf->PFType()) == PFCandidate::eElectron || abs(pf->PFType()) == PFCandidate::eMuon) { |
1964 |
< |
if( ctrl.debug ) cout << " skipping, pf is an ele or mu .." <<endl; |
1964 |
> |
// if( ctrl.debug ) cout << " skipping, pf is an ele or mu .." <<endl; |
1965 |
|
continue; |
1966 |
|
} |
1967 |
|
|
1968 |
|
// Footprint Veto |
1969 |
|
if (fabs(ele->SCluster()->Eta()) > 1.479 && dr < 0.015) continue; |
1970 |
|
|
1971 |
< |
if( ctrl.debug) cout << " charged:: pt: " << pf->Pt() |
1972 |
< |
<< "\ttype: " << pf->PFType() |
1973 |
< |
<< "\ttrk: " << pf->TrackerTrk() << endl; |
1971 |
> |
// if( ctrl.debug) cout << " charged:: pt: " << pf->Pt() |
1972 |
> |
// << "\ttype: " << pf->PFType() |
1973 |
> |
// << "\ttrk: " << pf->TrackerTrk() << endl; |
1974 |
|
|
1975 |
|
fChargedIso += pf->Pt(); |
1976 |
|
} |
1988 |
|
if(ele->GsfTrk()->NExpectedHitsInner()>0 && pf->MvaGamma() > 0.99 && pf->HasSCluster() && ele->SCluster() == pf->SCluster()) continue; |
1989 |
|
|
1990 |
|
|
1991 |
< |
if( ctrl.debug) cout << " gamma:: " << pf->Pt() << " " |
1992 |
< |
<< dr << endl; |
1993 |
< |
// KH, add to sync |
1994 |
< |
// if( pf->Pt() > 0.5 ) |
2005 |
< |
fGammaIso += pf->Pt(); |
1991 |
> |
// if( ctrl.debug) cout << " gamma:: " << pf->Pt() << " " |
1992 |
> |
// << dr << endl; |
1993 |
> |
|
1994 |
> |
fGammaIso += pf->Pt(); |
1995 |
|
} |
1996 |
|
|
1997 |
|
// |
1998 |
|
// Neutral Iso |
1999 |
|
// |
2000 |
|
else { |
2001 |
< |
if( ctrl.debug) cout << " neutral:: " << pf->Pt() << " " |
2002 |
< |
<< dr << endl; |
2003 |
< |
// KH, add to sync |
2015 |
< |
// if( pf->Pt() > 0.5 ) |
2016 |
< |
fNeutralHadronIso += pf->Pt(); |
2001 |
> |
// if( ctrl.debug) cout << " neutral:: " << pf->Pt() << " " |
2002 |
> |
// << dr << endl; |
2003 |
> |
fNeutralHadronIso += pf->Pt(); |
2004 |
|
} |
2005 |
|
|
2006 |
|
} |
2025 |
|
EffectiveAreaVersion = ElectronTools::kEleEAData2012; |
2026 |
|
// !!!!!!!!!!!!! TMP HACK FOR SYNC !!!!!!!!!!!!!!!!!!!!! |
2027 |
|
} |
2028 |
< |
if(ctrl.debug) cout << " rho: " << rho << endl; |
2028 |
> |
// if(ctrl.debug) cout << " rho: " << rho << endl; |
2029 |
|
|
2030 |
|
double pfIso = fChargedIso + fmax(0.0,(fGammaIso + fNeutralHadronIso |
2031 |
|
-rho*eleT.ElectronEffectiveArea(eleT.kEleGammaAndNeutralHadronIso04, |
2038 |
|
|
2039 |
|
if( ctrl.debug ) { |
2040 |
|
cout << " PFiso: " << pfIso |
2041 |
< |
<< "\tfChargedIso: " << fChargedIso |
2042 |
< |
<< "\tfGammaIso: " << fGammaIso |
2043 |
< |
<< "\tfNeutralHadronIso: " << fNeutralHadronIso |
2041 |
> |
<< setw(6) << setprecision(4) << fChargedIso |
2042 |
> |
<< setw(6) << setprecision(4) << fGammaIso |
2043 |
> |
<< setw(6) << setprecision(4) << fNeutralHadronIso |
2044 |
|
<< endl; |
2045 |
|
} |
2046 |
|
|
2078 |
|
cout << " --> ele relpfIso: " << pfIso/ele->Pt() << ", returning status : " << hex << status.getStatus() << dec << endl; |
2079 |
|
return status; |
2080 |
|
} |
2094 |
– |
|
2095 |
– |
//-------------------------------------------------------------------------------------------------- |
2096 |
– |
double dbetaCorrectedIsoDr03(ControlFlags & ctrl, |
2097 |
– |
const PFCandidate * photon, |
2098 |
– |
const Muon * lepton, |
2099 |
– |
const Array<PFCandidate> * fPFCandidates) |
2100 |
– |
//-------------------------------------------------------------------------------------------------- |
2101 |
– |
{ |
2102 |
– |
|
2103 |
– |
// |
2104 |
– |
// final iso |
2105 |
– |
// |
2106 |
– |
Double_t fChargedIso = 0.0; |
2107 |
– |
Double_t fGammaIso = 0.0; |
2108 |
– |
Double_t fNeutralHadronIso = 0.0; |
2109 |
– |
Double_t fpfPU = 0.0; |
2110 |
– |
|
2111 |
– |
// |
2112 |
– |
// Loop over PF Candidates |
2113 |
– |
// |
2114 |
– |
for(int k=0; k<fPFCandidates->GetEntries(); ++k) { |
2115 |
– |
|
2116 |
– |
const PFCandidate *pf = (PFCandidate*)((*fPFCandidates)[k]); |
2117 |
– |
|
2118 |
– |
Double_t deta = (photon->Eta() - pf->Eta()); |
2119 |
– |
Double_t dphi = MathUtils::DeltaPhi(Double_t(photon->Phi()),Double_t(pf->Phi())); |
2120 |
– |
Double_t dr = MathUtils::DeltaR(photon->Phi(),photon->Eta(), pf->Phi(), pf->Eta()); |
2121 |
– |
if (dr > 0.3) continue; |
2122 |
– |
|
2123 |
– |
if( !(PFnoPUflag[k]) && pf->Charge() != 0 ) { |
2124 |
– |
if( pf->Pt() >= 0.2 && dr > 0.01 ) |
2125 |
– |
fpfPU += pf->Pt(); |
2126 |
– |
continue; |
2127 |
– |
} |
2128 |
– |
|
2129 |
– |
// |
2130 |
– |
// skip this photon |
2131 |
– |
// |
2132 |
– |
if( abs(pf->PFType()) == PFCandidate::eGamma && |
2133 |
– |
pf->Et() == photon->Et() ) continue; |
2134 |
– |
|
2135 |
– |
|
2136 |
– |
// |
2137 |
– |
// Charged Iso |
2138 |
– |
// |
2139 |
– |
if (pf->Charge() != 0 ) { |
2140 |
– |
if( dr > 0.01 && pf->Pt() >= 0.2 && |
2141 |
– |
!(pf->TrackerTrk() == lepton->TrackerTrk()) ) |
2142 |
– |
fChargedIso += pf->Pt(); |
2143 |
– |
} |
2144 |
– |
|
2145 |
– |
// |
2146 |
– |
// Gamma Iso |
2147 |
– |
// |
2148 |
– |
else if (abs(pf->PFType()) == PFCandidate::eGamma) { |
2149 |
– |
if( pf->Pt() > 0.5 && dr > 0.01) |
2150 |
– |
fGammaIso += pf->Pt(); |
2151 |
– |
} |
2152 |
– |
|
2153 |
– |
// |
2154 |
– |
// Other Neutrals |
2155 |
– |
// |
2156 |
– |
else { |
2157 |
– |
if( pf->Pt() > 0.5 && dr > 0.01) |
2158 |
– |
fNeutralHadronIso += pf->Pt(); |
2159 |
– |
} |
2160 |
– |
|
2161 |
– |
} |
2162 |
– |
|
2163 |
– |
if( ctrl.debug ) { |
2164 |
– |
cout << " ---> photon dbetaIso :: " << endl; |
2165 |
– |
cout << "\tfChargedIso: " << fChargedIso |
2166 |
– |
<< "\tfGammaIso: " << fGammaIso |
2167 |
– |
<< "\tfNeutralHadronIso: " << fNeutralHadronIso |
2168 |
– |
<< "\tfpfPU: " << fpfPU |
2169 |
– |
<< endl; |
2170 |
– |
} |
2171 |
– |
double pfIso = fChargedIso + fGammaIso + fNeutralHadronIso - 0.5*fpfPU; |
2172 |
– |
return pfIso/photon->Pt(); |
2173 |
– |
} |
2174 |
– |
|
2175 |
– |
|
2176 |
– |
//-------------------------------------------------------------------------------------------------- |
2177 |
– |
double dbetaCorrectedIsoDr03(ControlFlags & ctrl, |
2178 |
– |
const PFCandidate * photon, |
2179 |
– |
const Electron * lepton, |
2180 |
– |
const Array<PFCandidate> * fPFCandidates) |
2181 |
– |
//-------------------------------------------------------------------------------------------------- |
2182 |
– |
{ |
2183 |
– |
|
2184 |
– |
// |
2185 |
– |
// final iso |
2186 |
– |
// |
2187 |
– |
Double_t fChargedIso = 0.0; |
2188 |
– |
Double_t fGammaIso = 0.0; |
2189 |
– |
Double_t fNeutralHadronIso = 0.0; |
2190 |
– |
Double_t fpfPU = 0.0; |
2191 |
– |
|
2192 |
– |
// |
2193 |
– |
// Loop over PF Candidates |
2194 |
– |
// |
2195 |
– |
for(int k=0; k<fPFCandidates->GetEntries(); ++k) { |
2196 |
– |
|
2197 |
– |
const PFCandidate *pf = (PFCandidate*)((*fPFCandidates)[k]); |
2198 |
– |
|
2199 |
– |
Double_t deta = (photon->Eta() - pf->Eta()); |
2200 |
– |
Double_t dphi = MathUtils::DeltaPhi(Double_t(photon->Phi()),Double_t(pf->Phi())); |
2201 |
– |
Double_t dr = MathUtils::DeltaR(photon->Phi(),photon->Eta(), pf->Phi(), pf->Eta()); |
2202 |
– |
if (dr > 0.3) continue; |
2203 |
– |
|
2204 |
– |
if( !(PFnoPUflag[k]) && pf->Charge() != 0 ) { |
2205 |
– |
if( pf->Pt() >= 0.2 && dr > 0.01 ) |
2206 |
– |
fpfPU += pf->Pt(); |
2207 |
– |
continue; |
2208 |
– |
} |
2209 |
– |
|
2210 |
– |
// |
2211 |
– |
// skip this photon |
2212 |
– |
// |
2213 |
– |
if( abs(pf->PFType()) == PFCandidate::eGamma && |
2214 |
– |
pf->Et() == photon->Et() ) continue; |
2215 |
– |
|
2216 |
– |
|
2217 |
– |
// |
2218 |
– |
// Charged Iso |
2219 |
– |
// |
2220 |
– |
if (pf->Charge() != 0 ) { |
2221 |
– |
if( dr > 0.01 && pf->Pt() >= 0.2 && |
2222 |
– |
!(pf->TrackerTrk() == lepton->TrackerTrk()) ) |
2223 |
– |
fChargedIso += pf->Pt(); |
2224 |
– |
} |
2225 |
– |
|
2226 |
– |
// |
2227 |
– |
// Gamma Iso |
2228 |
– |
// |
2229 |
– |
else if (abs(pf->PFType()) == PFCandidate::eGamma) { |
2230 |
– |
if( pf->Pt() > 0.5 && dr > 0.01) |
2231 |
– |
fGammaIso += pf->Pt(); |
2232 |
– |
} |
2233 |
– |
|
2234 |
– |
// |
2235 |
– |
// Other Neutrals |
2236 |
– |
// |
2237 |
– |
else { |
2238 |
– |
if( pf->Pt() > 0.5 && dr > 0.01) |
2239 |
– |
fNeutralHadronIso += pf->Pt(); |
2240 |
– |
} |
2241 |
– |
|
2242 |
– |
} |
2243 |
– |
|
2244 |
– |
if( ctrl.debug ) { |
2245 |
– |
cout << " ---> photon dbetaIso :: " << endl; |
2246 |
– |
cout << "\tfChargedIso: " << fChargedIso |
2247 |
– |
<< "\tfGammaIso: " << fGammaIso |
2248 |
– |
<< "\tfNeutralHadronIso: " << fNeutralHadronIso |
2249 |
– |
<< "\tfpfPU: " << fpfPU |
2250 |
– |
<< endl; |
2251 |
– |
} |
2252 |
– |
double pfIso = fChargedIso + fGammaIso + fNeutralHadronIso - 0.5*fpfPU; |
2253 |
– |
return pfIso/photon->Pt(); |
2254 |
– |
} |
2255 |
– |
|
2256 |
– |
|
2257 |
– |
|
2258 |
– |
|
2259 |
– |
|
2260 |
– |
//-------------------------------------------------------------------------------------------------- |
2261 |
– |
double nonCorrectedIsoDr03(ControlFlags & ctrl, |
2262 |
– |
const PFCandidate * photon, |
2263 |
– |
const Muon * lepton, |
2264 |
– |
const Array<PFCandidate> * fPFCandidates) |
2265 |
– |
//-------------------------------------------------------------------------------------------------- |
2266 |
– |
{ |
2267 |
– |
|
2268 |
– |
// |
2269 |
– |
// final iso |
2270 |
– |
// |
2271 |
– |
Double_t fChargedIso = 0.0; |
2272 |
– |
Double_t fGammaIso = 0.0; |
2273 |
– |
Double_t fNeutralHadronIso = 0.0; |
2274 |
– |
Double_t fpfPU = 0.0; |
2275 |
– |
|
2276 |
– |
// |
2277 |
– |
// Loop over PF Candidates |
2278 |
– |
// |
2279 |
– |
for(int k=0; k<fPFCandidates->GetEntries(); ++k) { |
2280 |
– |
|
2281 |
– |
const PFCandidate *pf = (PFCandidate*)((*fPFCandidates)[k]); |
2282 |
– |
|
2283 |
– |
Double_t deta = (photon->Eta() - pf->Eta()); |
2284 |
– |
Double_t dphi = MathUtils::DeltaPhi(Double_t(photon->Phi()),Double_t(pf->Phi())); |
2285 |
– |
Double_t dr = MathUtils::DeltaR(photon->Phi(),photon->Eta(), pf->Phi(), pf->Eta()); |
2286 |
– |
if (dr > 0.3) continue; |
2287 |
– |
|
2288 |
– |
if( !(PFnoPUflag[k]) && pf->Charge() != 0 ) { |
2289 |
– |
if( pf->Pt() >= 0.2 && dr > 0.01 ) |
2290 |
– |
fpfPU += pf->Pt(); |
2291 |
– |
continue; |
2292 |
– |
} |
2293 |
– |
|
2294 |
– |
// |
2295 |
– |
// skip this photon |
2296 |
– |
// |
2297 |
– |
if( abs(pf->PFType()) == PFCandidate::eGamma && |
2298 |
– |
pf->Et() == photon->Et() ) continue; |
2299 |
– |
|
2300 |
– |
|
2301 |
– |
// |
2302 |
– |
// Charged Iso |
2303 |
– |
// |
2304 |
– |
if (pf->Charge() != 0 ) { |
2305 |
– |
if( dr > 0.01 && pf->Pt() >= 0.2 && |
2306 |
– |
!(pf->TrackerTrk() == lepton->TrackerTrk()) ) |
2307 |
– |
fChargedIso += pf->Pt(); |
2308 |
– |
} |
2309 |
– |
|
2310 |
– |
// |
2311 |
– |
// Gamma Iso |
2312 |
– |
// |
2313 |
– |
else if (abs(pf->PFType()) == PFCandidate::eGamma) { |
2314 |
– |
if( pf->Pt() > 0.5 && dr > 0.01) |
2315 |
– |
fGammaIso += pf->Pt(); |
2316 |
– |
} |
2317 |
– |
|
2318 |
– |
// |
2319 |
– |
// Other Neutrals |
2320 |
– |
// |
2321 |
– |
else { |
2322 |
– |
if( pf->Pt() > 0.5 && dr > 0.01) |
2323 |
– |
fNeutralHadronIso += pf->Pt(); |
2324 |
– |
} |
2325 |
– |
|
2326 |
– |
} |
2327 |
– |
|
2328 |
– |
if( ctrl.debug ) { |
2329 |
– |
cout << " ---> photon dbetaIso :: " << endl; |
2330 |
– |
cout << "\tfChargedIso: " << fChargedIso |
2331 |
– |
<< "\tfGammaIso: " << fGammaIso |
2332 |
– |
<< "\tfNeutralHadronIso: " << fNeutralHadronIso |
2333 |
– |
<< "\tfpfPU: " << fpfPU |
2334 |
– |
<< endl; |
2335 |
– |
} |
2336 |
– |
double pfIso = fChargedIso + fGammaIso + fNeutralHadronIso + fpfPU; |
2337 |
– |
return pfIso/photon->Pt(); |
2338 |
– |
} |
2339 |
– |
|
2340 |
– |
|
2341 |
– |
|
2081 |
|
//-------------------------------------------------------------------------------------------------- |
2082 |
< |
double nonCorrectedIsoDr03(ControlFlags & ctrl, |
2083 |
< |
const PFCandidate * photon, |
2084 |
< |
const Electron * lepton, |
2085 |
< |
const Array<PFCandidate> * fPFCandidates) |
2082 |
> |
double isoDr03ForFsr(ControlFlags & ctrl, |
2083 |
> |
const PFCandidate * photon, |
2084 |
> |
const ChargedParticle * lep, |
2085 |
> |
const Array<PFCandidate> * fPFCandidates, |
2086 |
> |
bool doDBetaCorr) |
2087 |
|
//-------------------------------------------------------------------------------------------------- |
2088 |
|
{ |
2089 |
|
|
2125 |
|
// |
2126 |
|
if (pf->Charge() != 0 ) { |
2127 |
|
if( dr > 0.01 && pf->Pt() >= 0.2 && |
2128 |
< |
!(pf->TrackerTrk() == lepton->TrackerTrk()) ) |
2128 |
> |
!(pf->TrackerTrk() == lep->TrackerTrk()) ) |
2129 |
|
fChargedIso += pf->Pt(); |
2130 |
|
} |
2131 |
|
|
2147 |
|
|
2148 |
|
} |
2149 |
|
|
2150 |
< |
if( ctrl.debug ) { |
2151 |
< |
cout << "photon dbetaIso :: " << endl; |
2412 |
< |
cout << "\tfChargedIso: " << fChargedIso |
2413 |
< |
<< "\tfGammaIso: " << fGammaIso |
2414 |
< |
<< "\tfNeutralHadronIso: " << fNeutralHadronIso |
2415 |
< |
<< "\tfpfPU: " << fpfPU |
2416 |
< |
<< endl; |
2417 |
< |
} |
2418 |
< |
double pfIso = fChargedIso + fGammaIso + fNeutralHadronIso + fpfPU; |
2150 |
> |
if(ctrl.debug) cout << " isoDr03ForFsr: " << setw(12) << fChargedIso << setw(12) << fGammaIso << setw(12) << fNeutralHadronIso << setw(12) << fpfPU << endl; |
2151 |
> |
double pfIso = fChargedIso + fGammaIso + fNeutralHadronIso + (doDBetaCorr ? -0.5 : 1)*fpfPU; |
2152 |
|
return pfIso/photon->Pt(); |
2153 |
|
} |
2421 |
– |
|
2422 |
– |
|
2423 |
– |
|