32 const std::string&
name,
45 ATH_MSG_ERROR(
" There are no cuts set (EtaBins property is an empty list)" );
46 return StatusCode::FAILURE;
61 return StatusCode::SUCCESS;
92 mon_etaBin, mon_Eta, mon_Phi, mon_mu,
93 mon_etcone20, mon_topoetcone20, mon_reletcone20, mon_reltopoetcone20,
94 mon_etcone30, mon_topoetcone30, mon_reletcone30, mon_reltopoetcone30,
95 mon_etcone40, mon_topoetcone40, mon_reletcone40, mon_reltopoetcone40,
99 PassedCuts = PassedCuts + 1;
103 auto roiDescriptor =
input.roi;
105 if ( fabs( roiDescriptor->eta() ) > 2.6 ) {
106 ATH_MSG_DEBUG(
"REJECT The photon had eta coordinates beyond the EM fiducial volume : "
107 << roiDescriptor->eta() <<
"; stop the chain now" );
113 <<
": Eta = " << roiDescriptor->eta()
114 <<
", Phi = " << roiDescriptor->phi() );
117 auto pClus =
input.photon->caloCluster();
119 float absEta = fabs( pClus->eta() );
134 PassedCuts = PassedCuts + 1;
142 avg_mu = eventInfoDecor(0);
150 reletcone20(999), reletcone30(999), reletcone40(999),
151 reltopoetcone20(999), reltopoetcone30(999), reltopoetcone40(999);
184 float photon_eT =
input.photon->caloCluster()->et();
188 mon_reletcone20 = reletcone20;
193 mon_reltopoetcone20 = reltopoetcone20;
198 mon_reletcone30 = reletcone30;
203 mon_reltopoetcone30 = reltopoetcone30;
208 mon_reletcone40 = reletcone40;
213 mon_reltopoetcone40 = reltopoetcone40;
216 std::vector<float> reltopoetcone;
217 reltopoetcone.push_back(reltopoetcone20);
218 reltopoetcone.push_back(reltopoetcone30);
219 reltopoetcone.push_back(reltopoetcone40);
221 std::vector<float> reletcone;
227 bool pass_reletcone =
true;
228 bool pass_reltopoetcone =
true;
231 for (
unsigned int conesize=0; conesize<3; conesize++){
240 ATH_MSG_DEBUG(
" not applying etcone[" << conesize <<
"] isolation.");
243 ATH_MSG_DEBUG(
" not applying topoetcone[" << conesize <<
"] isolation.");
248 ATH_MSG_DEBUG(
" pass_reletcone[" << conesize <<
"] = " << reletcone[conesize] <<
" - " <<
m_CutOffset[conesize] <<
"/" << photon_eT <<
" < " <<
m_RelEtConeCut[conesize] <<
" = " << pass_reletcone);
249 ATH_MSG_DEBUG(
" pass_reltopoetcone[" << conesize <<
"] = " << reltopoetcone[conesize] <<
" - " <<
m_CutOffset[conesize] <<
"/" << photon_eT <<
" < " <<
m_RelEtConeCut[conesize] <<
" = " << pass_reltopoetcone);
251 pass_reletcone = pass_reletcone && pass_this_reletcone ;
252 pass_reltopoetcone = pass_reltopoetcone && pass_this_reltopoetcone ;
255 pass =
m_acceptAll || (pass_reletcone && pass_reltopoetcone);
258 ATH_MSG_DEBUG(
"pass_reltopoetcone = " << pass_reltopoetcone );
268 auto binIterator = std::adjacent_find(
m_etabin.begin(),
m_etabin.end(), [=](
float left,
float right){ return left < absEta and absEta < right; } );
269 if ( binIterator ==
m_etabin.end() ) {
272 return binIterator -
m_etabin.begin();
284 return StatusCode::SUCCESS;