33 const std::string&
name,
46 ATH_MSG_ERROR(
" There are no cuts set (EtaBins property is an empty list)" );
47 return StatusCode::FAILURE;
62 return StatusCode::SUCCESS;
93 mon_etaBin, mon_Eta, mon_Phi, mon_mu,
94 mon_etcone20, mon_topoetcone20, mon_reletcone20, mon_reltopoetcone20,
95 mon_etcone30, mon_topoetcone30, mon_reletcone30, mon_reltopoetcone30,
96 mon_etcone40, mon_topoetcone40, mon_reletcone40, mon_reltopoetcone40,
100 PassedCuts = PassedCuts + 1;
104 auto roiDescriptor =
input.roi;
106 if ( fabs( roiDescriptor->eta() ) > 2.6 ) {
107 ATH_MSG_DEBUG(
"REJECT The photon had eta coordinates beyond the EM fiducial volume : "
108 << roiDescriptor->eta() <<
"; stop the chain now" );
114 <<
": Eta = " << roiDescriptor->eta()
115 <<
", Phi = " << roiDescriptor->phi() );
118 auto pClus =
input.photon->caloCluster();
120 float absEta = fabs( pClus->eta() );
135 PassedCuts = PassedCuts + 1;
143 avg_mu = eventInfoDecor(0);
151 reletcone20(999), reletcone30(999), reletcone40(999),
152 reltopoetcone20(999), reltopoetcone30(999), reltopoetcone40(999);
185 float photon_eT =
input.photon->caloCluster()->et();
189 mon_reletcone20 = reletcone20;
194 mon_reltopoetcone20 = reltopoetcone20;
199 mon_reletcone30 = reletcone30;
204 mon_reltopoetcone30 = reltopoetcone30;
209 mon_reletcone40 = reletcone40;
214 mon_reltopoetcone40 = reltopoetcone40;
217 std::vector<float> reltopoetcone;
218 reltopoetcone.push_back(reltopoetcone20);
219 reltopoetcone.push_back(reltopoetcone30);
220 reltopoetcone.push_back(reltopoetcone40);
222 std::vector<float> reletcone;
228 bool pass_reletcone =
true;
229 bool pass_reltopoetcone =
true;
232 for (
unsigned int conesize=0; conesize<3; conesize++){
241 ATH_MSG_DEBUG(
" not applying etcone[" << conesize <<
"] isolation.");
244 ATH_MSG_DEBUG(
" not applying topoetcone[" << conesize <<
"] isolation.");
249 ATH_MSG_DEBUG(
" pass_reletcone[" << conesize <<
"] = " << reletcone[conesize] <<
" - " <<
m_CutOffset[conesize] <<
"/" << photon_eT <<
" < " <<
m_RelEtConeCut[conesize] <<
" = " << pass_reletcone);
250 ATH_MSG_DEBUG(
" pass_reltopoetcone[" << conesize <<
"] = " << reltopoetcone[conesize] <<
" - " <<
m_CutOffset[conesize] <<
"/" << photon_eT <<
" < " <<
m_RelEtConeCut[conesize] <<
" = " << pass_reltopoetcone);
252 pass_reletcone = pass_reletcone && pass_this_reletcone ;
253 pass_reltopoetcone = pass_reltopoetcone && pass_this_reltopoetcone ;
256 pass =
m_acceptAll || (pass_reletcone && pass_reltopoetcone);
259 ATH_MSG_DEBUG(
"pass_reltopoetcone = " << pass_reltopoetcone );
269 auto binIterator = std::adjacent_find(
m_etabin.begin(),
m_etabin.end(), [=](
float left,
float right){ return left < absEta and absEta < right; } );
270 if ( binIterator ==
m_etabin.end() ) {
273 return binIterator -
m_etabin.begin();
285 return StatusCode::SUCCESS;