18 const std::string&
name,
36 ATH_MSG_ERROR(
" There are no cuts set (EtaBins property is an empty list)" );
37 return StatusCode::FAILURE;
40 unsigned int nEtaBin =
m_etabin.size();
48 return StatusCode::SUCCESS;
76 mon_Phi,cutCounter,mon_lhval,mon_mu,
77 mon_ptvarcone20, mon_relptvarcone20,
78 mon_ptcone20, mon_relptcone20, mon_ptcone30, mon_relptcone30, mon_ptvarcone30, mon_relptvarcone30, mon_trk_d0);
84 auto roiDescriptor =
input.roi;
87 if ( std::abs( roiDescriptor->eta() ) > 2.6 ) {
88 ATH_MSG_DEBUG(
"REJECT The electron had eta coordinates beyond the EM fiducial volume : " << roiDescriptor->eta() <<
"; stop the chain now" );
93 <<
": Eta = " << roiDescriptor->eta()
94 <<
", Phi = " << roiDescriptor->phi() );
97 double etaRef = roiDescriptor->eta();
98 double phiRef = roiDescriptor->phi();
101 if ( std::abs( phiRef ) >
M_PI ) phiRef -= 2*
M_PI;
108 auto pClus =
input.electron->caloCluster();
110 float absEta = std::abs( pClus->eta() );
118 dEta = pClus->eta() - etaRef;
120 dPhi = std::abs( pClus->phi() - phiRef );
126 trk_d0 = std::abs(
input.electron->trackParticle()->d0());
130 <<
" roi eta=" << etaRef <<
" DeltaEta=" <<
dEta
144 <<
" roi phi="<< phiRef <<
" DeltaPhi="<<
dPhi
156 if ( cutIndex == -1 ) {
167 if ( ET <
m_eTthr[cutIndex] ) {
182 if ( trk_d0 <
m_d0 ) {
191 if(
input.valueDecorator.count(
"avgmu")){
192 mu =
input.valueDecorator.at(
"avgmu");
204 ATH_MSG_WARNING(
"ptvarcone20 not available. Will not cut on isolation");
209 ATH_MSG_WARNING(
"ptvarcone30 not available. Will not cut on isolation");
291 if (
input.electron->pt() >0){
298 mon_relptvarcone20 = relptvarcone20;
300 mon_relptcone20 = relptcone20;
303 mon_relptvarcone30 = relptvarcone30;
305 mon_relptcone30 = relptcone30;
344 ATH_MSG_DEBUG(
" ACCEPT Isolation ptvarcon30_rel cut failed");
347 ATH_MSG_DEBUG(
" ACCEPT Isolation ptvarcon30_rel cut passed");
355 ATH_MSG_DEBUG(
" ACCEPT Isolation ptvarcon20_rel cut failed");
358 ATH_MSG_DEBUG(
" ACCEPT Isolation ptvarcon20_rel cut passed");
372 auto binIterator = std::adjacent_find(
m_etabin.begin(),
m_etabin.end(), [=](
float left,
float right){ return left < absEta and absEta < right; } );
373 if ( binIterator ==
m_etabin.end() ) {
376 return binIterator -
m_etabin.begin();
388 return StatusCode::SUCCESS;