File indexing completed on 2023-03-17 11:21:16
0001
0002
0003
0004 #include "RecoParticleFlow/PFProducer/interface/PhotonSelectorAlgo.h"
0005
0006 PhotonSelectorAlgo::PhotonSelectorAlgo(float choice,
0007 float c_Et,
0008 float c_iso_track_a,
0009 float c_iso_track_b,
0010 float c_iso_ecal_a,
0011 float c_iso_ecal_b,
0012 float c_iso_hcal_a,
0013 float c_iso_hcal_b,
0014 float c_hoe,
0015 float comb_iso,
0016 float loose_hoe)
0017 : choice_(choice),
0018 c_Et_(c_Et),
0019 c_iso_track_a_(c_iso_track_a),
0020 c_iso_track_b_(c_iso_track_b),
0021 c_iso_ecal_a_(c_iso_ecal_a),
0022 c_iso_ecal_b_(c_iso_ecal_b),
0023 c_iso_hcal_a_(c_iso_hcal_a),
0024 c_iso_hcal_b_(c_iso_hcal_b),
0025 c_hoe_(c_hoe),
0026 comb_iso_(comb_iso),
0027 loose_hoe_(loose_hoe) {
0028 ;
0029 }
0030
0031 bool PhotonSelectorAlgo::passPhotonSelection(const reco::Photon& photon) const {
0032
0033 float photonPt = photon.pt();
0034 if (photonPt < c_Et_)
0035 return false;
0036 if (choice_ < 0.1)
0037 {
0038
0039
0040 if (photon.hadronicOverEm() > c_hoe_)
0041 return false;
0042
0043
0044 if (photon.trkSumPtHollowConeDR04() > c_iso_track_a_ + c_iso_track_b_ * photonPt)
0045 return false;
0046
0047
0048 if (photon.ecalRecHitSumEtConeDR04() > c_iso_ecal_a_ + c_iso_ecal_b_ * photonPt)
0049 return false;
0050
0051
0052 if (photon.hcalTowerSumEtConeDR04() > c_iso_hcal_a_ + c_iso_hcal_b_ * photonPt)
0053 return false;
0054 }
0055 if (choice_ > 0.99) {
0056
0057 if (photon.hadronicOverEm() > loose_hoe_)
0058 return false;
0059
0060 if (photon.trkSumPtHollowConeDR03() + photon.ecalRecHitSumEtConeDR03() + photon.hcalTowerSumEtConeDR03() >
0061 comb_iso_)
0062 return false;
0063 }
0064
0065 return true;
0066 }