![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
38 #include "CLHEP/Vector/LorentzVector.h"
44 declareInterface<IMuonCombinedInDetExtensionTool>(
this);
45 declareInterface<IMuonCombinedTrigCaloTagExtensionTool>(
this);
52 ATH_MSG_WARNING(
"Cosmic track selection and detailed track selection both set to true.");
53 ATH_MSG_WARNING(
"Cosmic track selection will be discarded. Fix jobOptions.");
78 return StatusCode::SUCCESS;
85 return StatusCode::SUCCESS;
93 extend(inDetCandidates, tagMap, combTracks, meTracks, segments, ctx);
98 const EventContext& ctx)
const {
99 if (combTracks || meTracks || segments)
ATH_MSG_DEBUG(
"track collections passed to MuonCaloTagTool?");
113 if (!
cells.isValid())
115 else if (!
cells.isPresent())
118 caloCellCont =
cells.cptr();
120 extend(inDetCandidates, tagMap, caloCellCont, caloClusterCont);
130 if (!caloCellCont) {
ATH_MSG_VERBOSE(
"Called with no CaloCellContainer in argument"); }
132 for (
const auto* idTP : inDetCandidates) {
135 ATH_MSG_DEBUG(
"Associated track is just tracklet. Skipping this particle.");
142 ATH_MSG_DEBUG(
"Particle with no track associated. Skipping this particle.");
147 ATH_MSG_DEBUG(
"Could not retrieve Trk::TrackParameters from track. Skipping this particle.");
155 truthParticleLinkAcc(
"truthParticleLink");
158 truthLink = truthParticleLinkAcc(*
tp);
161 pdgId = (*truthLink)->pdgId();
173 if (abs(
pdgId) == 13) {
175 ATH_MSG_DEBUG(
"Cutflow MuonCaloTag >>> Muon rejected by track selection.");
187 if (abs(
pdgId) == 13) {
ATH_MSG_DEBUG(
"Cutflow MuonCaloTag >>> Muon rejected by track isolation. <<<"); }
200 float likelihood = 0;
201 float muon_score = -1;
203 std::vector<DepositInCalo> deposits;
215 ATH_MSG_DEBUG(
"Track found with tag " <<
tag <<
", LHR " << likelihood <<
" and calo muon score " << muon_score);
222 createMuon(*idTP, deposits,
tag, likelihood, muon_score, tagMap);
271 if ((nHitsSCT + nHitsPixel) > 2)
return true;
273 ATH_MSG_WARNING(
"Trk::TrackSummary was not retrieved from TrackParticle.");
293 double ptIso = trackIsolation.
ptcones[0];
294 double ptIsoRatio = -9999;
298 ptIsoRatio = ptIso /
pt;
310 double r =
par->position().perp();
311 double eta =
par->position().eta();
312 double phi =
par->position().phi();
313 double pt =
par->momentum().perp();
314 double momEta =
par->momentum().eta();
315 double momPhi =
par->momentum().phi();
318 ATH_MSG_DEBUG(
" momentum: pt = " <<
pt <<
", eta = " << momEta <<
", phi = " << momPhi /
M_PI);
325 std::vector<DepositInCalo>::const_iterator deposit = deposits.begin();
326 std::vector<DepositInCalo>::const_iterator depositE = deposits.end();
329 for (; deposit != depositE; ++deposit) eLoss += deposit->energyDeposited();
344 caloTag =
new CaloTag(xAOD::Muon::CaloScore, eLoss, 0);
352 tagMap->
addEntry(&muonCandidate, caloTag);
@ numberOfPixelHits
number of pixel layers on track with absence of hits
Const iterator class for DataVector/DataList.
Scalar phi() const
phi method
Scalar eta() const
pseudorapidity method
void set_caloLRLikelihood(const float likelihood)
set the likelihood
@ coreTrackPtr
tracks pointer
Iso::IsolationTrackCorrectionBitset trackbitset
void set_author2(const Author author2)
set the secondary author
void set_author3(const Author author3)
set the third author
Helper class to provide constant type-safe access to aux data.
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
void set_caloMuonScore(const float muonScore)
set the calo muon score
bool isValid() const
Test to see if the link can be dereferenced.
void set_deposits(const std::vector< DepositInCalo > &deposits)
set the detailed energy deposits in the calorimeter layers
void addEntry(const InDetCandidate *idcand, TagBase *tag)
::StatusCode StatusCode
StatusCode definition for legacy code.
@ numberOfSCTHits
number of SCT holes
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
ElementLink implementation for ROOT usage.
const DataVector< const TrackParameters > * trackParameters() const
Return a pointer to a vector of TrackParameters.
const Perigee * perigeeParameters() const
return Perigee.
A summary of the information contained by a track.
TagBase implementation for a calo tag.
Container class for CaloCell.
std::vector< float > ptcones
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
#define ATH_MSG_WARNING(x)
const Trk::TrackSummary * trackSummary() const
Returns a pointer to the const Trk::TrackSummary owned by this const track (could be nullptr)
The MuonTagToSegMap is an auxillary construct that links the MuonSegments associated with a combined ...
void set_caloMuonIdTag(unsigned short tag)
set the tag
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
Class describing a TrackParticle.
int get(const SummaryType &type) const
returns the summary information for the passed SummaryType.
Helper class to provide constant type-safe access to aux data.
const Muon::MdtPrepDataContainer * mdtPrds