ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitHzz4l/LeptonSelection/src/IsolationSelection.cc
(Generate patch)

Comparing UserCode/MitHzz4l/LeptonSelection/src/IsolationSelection.cc (file contents):
Revision 1.34 by dkralph, Tue Oct 23 10:41:23 2012 UTC vs.
Revision 1.35 by dkralph, Mon Dec 17 17:12:27 2012 UTC

# Line 972 | Line 972 | double  muonPFIso04(ControlFlags &ctrl,
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());
# Line 993 | Line 993 | double  muonPFIso04(ControlFlags &ctrl,
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  
# Line 1939 | Line 1939 | float electronPFIso04(ControlFlags &ctrl
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
# Line 1971 | Line 1961 | float electronPFIso04(ControlFlags &ctrl
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      }
# Line 1998 | Line 1988 | float electronPFIso04(ControlFlags &ctrl
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      }
# Line 2038 | Line 2025 | float electronPFIso04(ControlFlags &ctrl
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,
# Line 2051 | Line 2038 | float electronPFIso04(ControlFlags &ctrl
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  
# Line 2091 | Line 2078 | SelectionStatus electronReferenceIsoSele
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  
# Line 2385 | Line 2125 | double  nonCorrectedIsoDr03(ControlFlags
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      
# Line 2407 | Line 2147 | double  nonCorrectedIsoDr03(ControlFlags
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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines