940 |
|
|
941 |
|
fDiphotonEvent-> eleIdMva = -99.; |
942 |
|
|
943 |
– |
|
943 |
|
if( fApplyLeptonTag ) { |
944 |
|
ApplyLeptonTag(phHard, phSoft, selvtx); |
945 |
|
} |
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; |
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; |