![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
57 return StatusCode::SUCCESS;
69 return StatusCode::FAILURE;
75 return StatusCode::FAILURE;
77 return StatusCode::SUCCESS;
83 std::vector<const xAOD::IParticle*>& tclist,
90 <<
", eta " <<
mu->eta()
91 <<
", phi " <<
mu->phi()
92 <<
" has cluster with "
93 <<
"eta " << muclus->
calEta()
94 <<
", phi " << muclus->
calPhi()
95 <<
", E " << muclus->
calE()
96 <<
" formed of " << muclus->
size() <<
" cells.");
98 <<
" Eloss: " <<
mu->floatParameter(xAOD::Muon::EnergyLoss)
99 <<
" MeasuredEloss: " <<
mu->floatParameter(xAOD::Muon::MeasEnergyLoss)
100 <<
" FSR E: " <<
mu->floatParameter(xAOD::Muon::FSR_CandidateEnergy) );
103 for(
const auto& matchel : tcLinkAcc(*muclus)) {
104 if(!matchel.isValid()) {
continue;}
105 ATH_MSG_VERBOSE(
"Tool found cluster " << (*matchel)->index() <<
" with pt " << (*matchel)->pt() );
106 if((*matchel)->e()>1
e-9) {
107 tclist.push_back(*matchel);
112 return StatusCode::SUCCESS;
116 std::vector<const xAOD::IParticle*>& constlist,
120 const TrackParticle* idtrack =
mu->trackParticle(xAOD::Muon::InnerDetectorTrackParticle);
123 ATH_MSG_VERBOSE(
"Accept muon track " << idtrack <<
" px, py = " << idtrack->
p4().Px() <<
", " << idtrack->
p4().Py());
125 constlist.push_back(idtrack);
130 return StatusCode::SUCCESS;
136 std::vector<const xAOD::IParticle*>& pfolist,
138 std::map<const IParticle*,MissingETBase::Types::constvec_t>& )
const
141 const TrackParticle* idtrack =
mu->trackParticle(xAOD::Muon::InnerDetectorTrackParticle);
145 <<
", eta " <<
mu->eta()
146 <<
", phi " <<
mu->phi());
149 <<
"eta " << muclus->
calEta()
150 <<
", phi " << muclus->
calPhi()
151 <<
", E " << muclus->
calE()
152 <<
" formed of " << muclus->
size() <<
" cells.");
155 <<
" Eloss: " <<
mu->floatParameter(xAOD::Muon::EnergyLoss)
156 <<
" MeasuredEloss: " <<
mu->floatParameter(xAOD::Muon::MeasEnergyLoss)
157 <<
" FSR E: " <<
mu->floatParameter(xAOD::Muon::FSR_CandidateEnergy) );
160 for(
const auto *
const pfo : *constits.
pfoCont) {
161 if(pfo->isCharged()) {
166 if(idtrack && pfo->
track(0) == idtrack && PVMatchedAcc(*pfo) &&
169 ATH_MSG_VERBOSE(
"Accept muon PFO " << pfo <<
" px, py = " << pfo->p4().Px() <<
", " << pfo->p4().Py());
170 ATH_MSG_VERBOSE(
"Muon PFO index: " << pfo->index() <<
", pt: " << pfo->pt() <<
", eta: " << pfo->eta() <<
", phi: " << pfo->phi() );
171 ATH_MSG_VERBOSE(
"Muon ID Track index: " << idtrack->
index() <<
", pt: " << idtrack->
pt() <<
", eta: " << idtrack->
eta() <<
", phi: " << idtrack->
phi() );
172 pfolist.push_back(pfo);
180 for(
const auto& matchel : tcLinkAcc(*muclus)) {
181 if(!matchel.isValid()) {
184 if((*matchel)->e()>FLT_MIN && pfo->cluster(0) == *matchel) {
185 ATH_MSG_VERBOSE(
"Tool found cluster " << (*matchel)->index() <<
" with pt " << (*matchel)->pt() );
186 pfolist.push_back(pfo);
194 return StatusCode::SUCCESS;
198 std::vector<const xAOD::IParticle*>& felist,
200 std::map<const IParticle*,MissingETBase::Types::constvec_t> &)
const
209 return StatusCode::SUCCESS;
213 std::vector<const xAOD::IParticle*>& felist,
216 ATH_MSG_DEBUG(
"Extract FEs From Links for " <<
mu->type() <<
" with pT " <<
mu->pt());
218 std::vector<FELink_t> nFELinks;
219 std::vector<FELink_t> cFELinks;
223 nFELinks=neutralFEReadDecorHandle(*
mu);
224 cFELinks=chargedFEReadDecorHandle(*
mu);
227 for (
const FELink_t& feLink : cFELinks) {
228 if (!feLink.isValid())
continue;
230 for (
const auto *
const fe : *constits.
feCont){
231 if (fe->index() == fe_init->
index() && fe->isCharged()){
234 ATH_MSG_DEBUG(
"Accept cFE with pt " << fe->pt() <<
", e " << fe->e() <<
", eta " << fe->eta() <<
", phi " << fe->phi() );
235 felist.push_back(fe);
242 for (
const FELink_t& feLink : nFELinks) {
243 if (!feLink.isValid())
continue;
245 for (
const auto *
const fe : *constits.
feCont){
246 if (fe->index() == fe_init->
index() && !fe->isCharged()){
247 if( ( !fe->isCharged()&& fe->e() > FLT_MIN ) ){
248 ATH_MSG_DEBUG(
"Accept nFE with pt " << fe->pt() <<
", e " << fe->e() <<
", eta " << fe->eta() <<
", phi " << fe->phi() <<
" in sum.");
249 felist.push_back(fe);
256 return StatusCode::SUCCESS;
260 std::vector<const xAOD::IParticle*>& felist,
263 const TrackParticle* idtrack =
mu->trackParticle(xAOD::Muon::InnerDetectorTrackParticle);
266 <<
", eta " <<
mu->eta()
267 <<
", phi " <<
mu->phi());
270 <<
"eta " << muclus->
calEta()
271 <<
", phi " << muclus->
calPhi()
272 <<
", E " << muclus->
calE()
273 <<
" formed of " << muclus->
size() <<
" cells.");
276 <<
" Eloss: " <<
mu->floatParameter(xAOD::Muon::EnergyLoss)
277 <<
" MeasuredEloss: " <<
mu->floatParameter(xAOD::Muon::MeasEnergyLoss)
278 <<
" FSR E: " <<
mu->floatParameter(xAOD::Muon::FSR_CandidateEnergy) );
287 if(idtrack && fe->
chargedObject(0) == idtrack && PVMatchedAcc(*fe) &&
290 ATH_MSG_VERBOSE(
"Accept muon PFO (FE) " << fe <<
" px, py = " << fe->
p4().Px() <<
", " << fe->
p4().Py());
292 ATH_MSG_VERBOSE(
"Muon ID Track index: " << idtrack->
index() <<
", pt: " << idtrack->
pt() <<
", eta: " << idtrack->
eta() <<
", phi: " << idtrack->
phi() );
293 felist.push_back(fe);
301 for(
const auto& matchel : tcLinkAcc(*muclus)) {
302 if(!matchel.isValid()) {
305 if((*matchel)->e()>FLT_MIN && fe->
otherObject(0) == *matchel) {
306 ATH_MSG_VERBOSE(
"Tool found cluster " << (*matchel)->index() <<
" with pt " << (*matchel)->pt() );
307 felist.push_back(fe);
315 return StatusCode::SUCCESS;
virtual double pt() const override final
The transverse momentum ( ) of the particle.
SG::ReadDecorHandleKey< xAOD::MuonContainer > m_neutralFEReadDecorKey
StatusCode executeTool(xAOD::MissingETContainer *metCont, xAOD::MissingETAssociationMap *metMap) const final
const_pointer_type cptr()
Dereference the pointer.
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
flt_t calE() const
Geet Energy in signal state CALIBRATED.
flt_t calEta() const
Get in signal state CALIBRATED.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
virtual double phi() const override
The azimuthal angle ( ) of the particle.
Helper class to provide constant type-safe access to aux data.
virtual double pt() const override
#define ATH_MSG_VERBOSE(x)
Class providing the definition of the 4-vector interface.
virtual FourMom_t p4() const override final
The full 4-momentum of the particle.
Description of a calorimeter cluster.
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
Gaudi::Property< bool > m_doMuonClusterMatch
Handle class for reading a decoration on an object.
::StatusCode StatusCode
StatusCode definition for legacy code.
size_t size() const
size method (forwarded from CaloClusterCellLink obj)
flt_t calPhi() const
Get in signal state CALIBRATED.
size_t index() const
Return the index of this element within its container.
METMuonAssociator()
Default constructor:
virtual bool isValid() override final
Can the handle be successfully dereferenced?
ElementLink implementation for ROOT usage.
const xAOD::IParticle * chargedObject(std::size_t i) const
Container for xAOD::MissingET_v1 objects.
StatusCode extractTracks(const xAOD::IParticle *obj, std::vector< const xAOD::IParticle * > &constlist, const met::METAssociator::ConstitHolder &constits) const final
StatusCode extractPFO(const xAOD::IParticle *obj, std::vector< const xAOD::IParticle * > &pfolist, const met::METAssociator::ConstitHolder &constits, std::map< const xAOD::IParticle *, MissingETBase::Types::constvec_t > &momenta) const final
StatusCode extractFEs(const xAOD::Muon *mu, std::vector< const xAOD::IParticle * > &felist, const met::METAssociator::ConstitHolder &constits) const
virtual double eta() const override
The pseudorapidity ( ) of the particle.
virtual FourMom_t p4() const override
The full 4-momentum of the particle.
SG::ReadDecorHandleKey< xAOD::MuonContainer > m_chargedFEReadDecorKey
SG::ReadDecorHandleKey< xAOD::CaloClusterContainer > m_elementLinkName
#define ATH_MSG_WARNING(x)
const xAOD::IParticle * otherObject(std::size_t i) const
Handle class for reading a decoration on an object.
StatusCode extractFEsFromLinks(const xAOD::Muon *mu, std::vector< const xAOD::IParticle * > &felist, const met::METAssociator::ConstitHolder &constits) const
Class describing a TrackParticle.
StatusCode extractFE(const xAOD::IParticle *obj, std::vector< const xAOD::IParticle * > &felist, const met::METAssociator::ConstitHolder &constits, std::map< const xAOD::IParticle *, MissingETBase::Types::constvec_t > &momenta) const final
const Trk::Track * track() const
Returns a pointer (which can be NULL) to the Trk::Track which was used to make this TrackParticle.
SG::ReadHandleKey< xAOD::MuonContainer > m_muContKey
StatusCode extractTopoClusters(const xAOD::IParticle *obj, std::vector< const xAOD::IParticle * > &tclist, const met::METAssociator::ConstitHolder &constits) const final
virtual double phi() const override final
The azimuthal angle ( ) of the particle (has range to .)
A detector object made of other lower level object(s)