|
ATLAS Offline Software
|
Go to the documentation of this file.
24 m_trkSelTool(
"InDet::InDetTrackSelectionTool/TrackSelectionTool", this )
27 declareInterface<IMuonEFTrackIsolationTool>(
this);
78 selfpt = muon_idtrk->
pt();
80 msg() <<
MSG::DEBUG <<
"Found ID track attached to combined muon, " << muon_idtrk <<
",pt = " << selfpt <<
endmsg;
84 msg() << MSG::WARNING <<
"Found EF combined muon without a link to ID track, will use combined pt for self removal" <<
endmsg;
92 msg() << MSG::WARNING <<
"This EF muon has neither a combined or extrapolated muon and removeSelf is requested, do not process further" <<
endmsg;
93 return StatusCode::FAILURE;
95 msg() << MSG::WARNING <<
"This EF muon has neither a combined, extrapolated or MS muon, do not process further" <<
endmsg;
96 return StatusCode::FAILURE;
115 msg() << MSG::WARNING <<
"Inconsistency, removeSelf requested, but selfpt = 0" <<
endmsg;
118 msg() << MSG::WARNING <<
"Could not find a muon to update with the isolation, skipping this muon" <<
endmsg;
119 return StatusCode::FAILURE;
128 ntrks_tmp[0]=0; ntrks_tmp[1]=0;
132 trkit!=trks->
end(); ++trkit) {
136 msg() <<
MSG::DEBUG <<
"INFO: Track pT = " << (*trkit)->pt() <<
" eta = " << (*trkit)->eta() <<
endmsg;
139 const auto& trkSelResult =
m_trkSelTool->accept(*trkit);
145 for(
unsigned int i=0;
i<trkSelResult.getNCuts (); ++
i) {
146 ATH_MSG_DEBUG(
" Cut " <<
i << trkSelResult.getCutName(
i).data() <<
" pass = " << trkSelResult.getCutResult(
i));
155 const Trk::Perigee& idtrk_perigee = (*trkit)->perigeeParameters();
156 dz = idtrk_perigee.parameters()[
Trk::z0] - muidtrk_perigee->parameters()[
Trk::z0];
170 if(dzvals) dzvals->push_back(dz);
175 dr = (*trkit)->p4().DeltaR( muon_idtrk->
p4() );
177 dr = (*trkit)->p4().DeltaR(
muon->p4() );
180 if(drvals) drvals->push_back(
dr);
206 for(
unsigned int conepos=0; conepos<conesizes.size(); ++conepos) {
207 if(
dr < conesizes.at(conepos) ) {
209 msg() <<
MSG::DEBUG <<
"Adding trk pt = " << (*trkit)->pt() <<
", with dr = " <<
dr <<
", into cone = " << conesizes.at(conepos) <<
endmsg;
211 results.at(conepos) += (*trkit)->pt();
212 ++ntrks_tmp[conepos];
220 selfremoval->push_back(selfpt);
221 selfremoval->push_back(
muon->pt());
224 for(
unsigned int conepos=0; conepos<conesizes.size(); ++conepos) {
225 msg() <<
MSG::DEBUG <<
"Scalar pT sum of tracks around this muon cone " << conesizes.at(conepos) <<
" = " <<
results.at(conepos) <<
endmsg;
229 for(
unsigned int conepos=0; conepos<conesizes.size(); ++conepos) {
233 for(
unsigned int conepos=0; conepos<conesizes.size(); ++conepos) {
234 msg() <<
MSG::DEBUG <<
"Scalar pT sum of tracks around this muon cone " << conesizes.at(conepos) <<
" after self removal = " <<
results.at(conepos) <<
endmsg;
240 return StatusCode::SUCCESS;
250 return StatusCode::FAILURE;
256 <<
"Properties set as follows: " <<
endmsg;
274 if(m_annulusSize < 0.0 || m_annulusSize > 0.2) {
275 msg() << MSG::ERROR <<
"Bad configuration of annulusSize = " <<
m_annulusSize <<
", fix your config!" <<
endmsg;
276 return StatusCode::FAILURE;
280 return StatusCode::SUCCESS;
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Const iterator class for DataVector/DataList.
@ ptvarcone20
Mini-Isolation http://arxiv.org/abs/1007.2221.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
bool msgLvl(const MSG::Level lvl) const
Class providing the definition of the 4-vector interface.
virtual FourMom_t p4() const override final
The full 4-momentum of the particle.
const Trk::Perigee & perigeeParameters() const
Returns the Trk::MeasuredPerigee track parameters.
::StatusCode StatusCode
StatusCode definition for legacy code.
const ElementLink< TrackParticleContainer > & muonSpectrometerTrackParticleLink() const
Returns an ElementLink to the InnerDetector TrackParticle used in identification of this muon.
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const ElementLink< TrackParticleContainer > & inDetTrackParticleLink() const
Returns an ElementLink to the InnerDetector TrackParticle used in identification of this muon.
Class describing a TrackParticle.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
const ElementLink< TrackParticleContainer > & combinedTrackParticleLink() const
Returns an ElementLink to the InnerDetector TrackParticle used in identification of this muon.