ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Mods/src/PhotonTreeWriter.cc
(Generate patch)

Comparing UserCode/MitPhysics/Mods/src/PhotonTreeWriter.cc (file contents):
Revision 1.51 by veverka, Sat Aug 31 05:37:04 2013 UTC vs.
Revision 1.52 by veverka, Sat Aug 31 07:36:37 2013 UTC

# Line 940 | Line 940 | void PhotonTreeWriter::Process()
940      
941      fDiphotonEvent-> eleIdMva = -99.;
942      
943    
943      if( fApplyLeptonTag ) {
944        ApplyLeptonTag(phHard, phSoft, selvtx);
945      }
# Line 2527 | Line 2526 | void PhotonTreeWriter::ApplyTTHTag(const
2526    UInt_t nMuons = 0;
2527      
2528    // Loop over jets, count those passing selection.
2530  // No Delta R(gamma, j) requirement!?  
2529    for(UInt_t ijet=0; ijet < fPFJets->GetEntries(); ++ijet){
2530      const Jet *jet = fPFJets->At(ijet);
2531      // Apply jet selection, see L116 and L125 of the AN
2532 <    if (jet->Pt() < 25. || jet->AbsEta() > 2.4) continue;
2532 >    if (jet->Pt() < 25. || jet->AbsEta() > 2.4) continue;
2533 >    // Apply Delta R(photon, jet), see email from Francesco Micheli
2534 >    // sent 31 Aug 2013
2535 >    if (MathUtils::DeltaR(jet, phHard) < 0.5) continue;
2536 >    if (MathUtils::DeltaR(jet, phSoft) < 0.5) continue;
2537      // Make sure we have a PF jet
2538      const PFJet *pfjet = dynamic_cast<const PFJet*>(jet);
2539      if (!pfjet) continue;
# Line 2553 | Line 2555 | void PhotonTreeWriter::ApplyTTHTag(const
2555    
2556    // Check the number of b-tagged jets, see Table 7 near L196 of the AN
2557    if (nBJets < 1) return;
2558 <
2559 <  // Loop over electrons
2560 <  for (UInt_t iele=0; iele < fLeptonTagElectrons->GetEntries(); ++iele) {
2561 <    const Electron *ele = fLeptonTagElectrons->At(iele);
2562 <    // Apply kinematic cuts, see L133 and L134 of the AN
2563 <    if (ele->Pt() < 20. || ele->AbsEta() < 2.5) continue;
2564 <    ++nElectrons;
2565 <  }
2558 >  
2559 >  if (PhotonTools::ElectronVetoCiC(phHard, fLeptonTagElectrons) >= 1 &&
2560 >      PhotonTools::ElectronVetoCiC(phSoft, fLeptonTagElectrons) >= 1 &&
2561 >      PhotonTools::ElectronVetoCiC(phHard, fElectrons) >= 1          &&
2562 >      PhotonTools::ElectronVetoCiC(phSoft, fElectrons) >= 1){
2563 >    // Loop over electrons
2564 >    for (UInt_t iele=0; iele < fLeptonTagElectrons->GetEntries(); ++iele) {
2565 >      const Electron *ele = fLeptonTagElectrons->At(iele);
2566 >      // Apply kinematic cuts, see L133 and L134 of the AN
2567 >      if (ele->Pt() < 20. || ele->AbsEta() < 2.5) continue;
2568 >      // Require separation between this electron and both photons,
2569 >      // see the slide 7, bullet 2
2570 >      if (MathUtils::DeltaR(ele, phHard) < 1.0) continue;
2571 >      if (MathUtils::DeltaR(ele, phSoft) < 1.0) continue;
2572 >      // Require electron-photon mass outside of a 20 GeV window around MZ
2573 >      if (MassOfPairIsWithinWindowAroundMZ(ele, phHard, 10)) continue;
2574 >      if (MassOfPairIsWithinWindowAroundMZ(ele, phSoft, 10)) continue;
2575 >      ++nElectrons;
2576 >    }
2577 >  }  
2578    
2579    // Loop over muons
2580    for (UInt_t imu=0; imu < fLeptonTagMuons->GetEntries(); ++imu) {
2581      const Muon *mu = fLeptonTagMuons->At(imu);
2582      // Apply kinematic cuts, see L132 and L134 of the AN
2583      if (mu->Pt() < 20. || mu->AbsEta() > 2.4) continue;
2584 <    // Require separation between this muon and both photons,
2585 <    // see the slide 7, bullet 2
2584 >    // Same as for electrons, require separation between this muon and both
2585 >    // photons.
2586      // Also confirmed by Francesco Micheli in an e-mail from 15 July 2013
2587      if (MathUtils::DeltaR(mu, phHard) < 1.0) continue;
2588      if (MathUtils::DeltaR(mu, phSoft) < 1.0) continue;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines