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;
72 mon_Phi,PassedCuts,mon_lhval,mon_mu,
73 mon_ptvarcone20, mon_relptvarcone20,
74 mon_ptcone20, mon_relptcone20, mon_trk_d0);
79 PassedCuts = PassedCuts + 1;
81 auto roiDescriptor =
input.roi;
84 if ( std::abs( roiDescriptor->eta() ) > 2.6 ) {
85 ATH_MSG_DEBUG(
"REJECT The electron had eta coordinates beyond the EM fiducial volume : " << roiDescriptor->eta() <<
"; stop the chain now" );
90 <<
": Eta = " << roiDescriptor->eta()
91 <<
", Phi = " << roiDescriptor->phi() );
94 double etaRef = roiDescriptor->eta();
95 double phiRef = roiDescriptor->phi();
98 if ( std::abs( phiRef ) >
M_PI ) phiRef -= 2*
M_PI;
105 auto pClus =
input.electron->caloCluster();
107 float absEta = std::abs( pClus->eta() );
115 dEta = pClus->eta() - etaRef;
117 dPhi = std::abs( pClus->phi() - phiRef );
123 trk_d0 = std::abs(
input.electron->trackParticle()->d0());
127 <<
" roi eta=" << etaRef <<
" DeltaEta=" <<
dEta
137 PassedCuts = PassedCuts + 1;
141 <<
" roi phi="<< phiRef <<
" DeltaPhi="<<
dPhi
150 PassedCuts = PassedCuts + 1;
153 if ( cutIndex == -1 ) {
160 PassedCuts = PassedCuts + 1;
164 if ( ET <
m_eTthr[cutIndex] ) {
169 PassedCuts = PassedCuts + 1;
179 if ( trk_d0 <
m_d0 ) {
183 PassedCuts = PassedCuts + 1;
189 if(
input.valueDecorator.count(
"avgmu")){
190 mu =
input.valueDecorator.at(
"avgmu");
202 ATH_MSG_WARNING(
"ptvarcone20 not available. Will not cut on isolation");
288 mon_relptvarcone20 = relptvarcone20;
290 mon_relptcone20 = relptcone20;
335 auto binIterator = std::adjacent_find(
m_etabin.begin(),
m_etabin.end(), [=](
float left,
float right){ return left < absEta and absEta < right; } );
336 if ( binIterator ==
m_etabin.end() ) {
339 return binIterator -
m_etabin.begin();
351 return StatusCode::SUCCESS;