28 return StatusCode::FAILURE;
32 ATH_MSG_ERROR(
"Too many Ptmin/max requirements for OrderPhotons=false case.");
33 return StatusCode::FAILURE;
39 size_t origsize =
m_Ptmin.size();
45 size_t origsize =
m_Ptmax.size();
50 return StatusCode::SUCCESS;
54 return (p1->momentum().perp()>p2->momentum().perp());
58 std::vector<HepMC::ConstGenParticlePtr> promptPhotonsInEta;
63 for (
const auto& pitr: *genEvt) {
66 std::abs(pitr->momentum().pseudoRapidity()) <=
m_EtaRange) {
69 auto prodVtx = pitr->production_vertex();
72 for (
const auto&
parent: prodVtx->particles_in()) {
77 int pdgindex = std::abs(
parent->pdg_id());
81 if (
m_AllowSUSYDecay && ( (pdgindex > 1000000 && pdgindex < 1000040) || (pdgindex > 2000000 && pdgindex < 2000016) ) )
fromHadron =
false;
85 if (!
fromHadron) promptPhotonsInEta.push_back(pitr);
94 setFilterPassed(
false);
97 for (
const auto&
photon: promptPhotonsInEta) {
106 double pt = promptPhotonsInEta[
i]->momentum().perp();
117 setFilterPassed(pass);
121 for (
size_t i = 0;
i < promptPhotonsInEta.size(); ++
i) {
122 double pt = promptPhotonsInEta[
i]->momentum().perp();
130 return StatusCode::SUCCESS;