ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
MuonCombined::MuonCaloTagTool Class Reference

#include <MuonCaloTagTool.h>

Inheritance diagram for MuonCombined::MuonCaloTagTool:
Collaboration diagram for MuonCombined::MuonCaloTagTool:

Public Member Functions

 MuonCaloTagTool (const std::string &type, const std::string &name, const IInterface *parent)
 
virtual ~MuonCaloTagTool ()=default
 
virtual StatusCode initialize () override
 
virtual StatusCode finalize () override
 
virtual void extend (const InDetCandidateCollection &inDetCandidates, InDetCandidateToTagMap *tagMap, TrackCollection *combTracks, TrackCollection *meTracks, Trk::SegmentCollection *segments, const EventContext &ctx) const override
 IMuonCombinedInDetExtensionTool interface: extend ID candidate. More...
 
virtual void extend (const InDetCandidateCollection &inDetCandidates, InDetCandidateToTagMap *tagMap, const CaloCellContainer *caloCellContainer, const xAOD::CaloClusterContainer *caloClusterContainer) const override
 IMuonCombinedTrigCaloTagExtensionTool interface: build combined muons from ID and MS candidates. More...
 
virtual void extendWithPRDs (const InDetCandidateCollection &inDetCandidates, InDetCandidateToTagMap *tagMap, IMuonCombinedInDetExtensionTool::MuonPrdData prdData, TrackCollection *combTracks, TrackCollection *meTracks, Trk::SegmentCollection *segments, const EventContext &ctx) const override
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 
static const InterfaceID & interfaceID ()
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

void createMuon (const InDetCandidate &muonCandidate, const std::vector< DepositInCalo > &deposits, int tag, float likelihood, float muonScore, InDetCandidateToTagMap *tagMap) const
 
const Trk::TrackParametersgetTrackParameters (const Trk::Track *trk) const
 
bool selectTrack (const Trk::Track *trk, const Trk::Vertex *vertex) const
 
bool selectCosmic (const Trk::Track *ptcl) const
 
bool applyTrackIsolation (const xAOD::TrackParticle &tp) const
 
void showTrackInfo (const Trk::TrackParameters *par) const
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

SG::ReadHandleKey< xAOD::CaloClusterContainerm_caloClusterCont {this, "CaloClusters", "CaloTopoClusters", "calo cluster container"}
 
SG::ReadHandleKey< CaloCellContainerm_caloCellCont {this, "CaloCells", "AllCalo", "calo cell container"}
 
std::atomic_int m_nTrueMuons {0}
 Counts the number true muons. More...
 
std::atomic_int m_nTracksTagged {0}
 Counts the number of tracks tagged. More...
 
std::atomic_int m_nMuonsTagged {0}
 Counts the number of truth muons tagged. More...
 
Gaudi::Property< bool > m_doCaloMuonTag {this, "doCaloMuonTag", true, "run CaloMuonTag Tool"}
 
Gaudi::Property< bool > m_doCaloMuonScore {this, "doCaloMuonScore", true, "run CaloMuonScoreTool"}
 
Gaudi::Property< bool > m_doCaloLR {this, "doCaloLR", true, "run CaloMuonLikelihoodTool"}
 
Gaudi::Property< bool > m_doTrkSelection
 
Gaudi::Property< bool > m_doCosmicTrackSelection {this, "doCosmicTrackSelection", false, "Apply track selection for cosmics"}
 
Gaudi::Property< bool > m_showCutFlow {this, "ShowCutFlow", true, "Verbose track selection and track isolation"}
 
Gaudi::Property< bool > m_doTruth {this, "ShowTruth", true, "Display truth info for each analysed track"}
 
Gaudi::Property< bool > m_debugMode {this, "DebugMode", false, "Switch for extra printout"}
 
Gaudi::Property< bool > m_doOldExtrapolation {this, "doOldExtrapolation", false}
 
Gaudi::Property< bool > m_ignoreSiAssocated
 
Gaudi::Property< double > m_ptIsoPtRatioCut {this, "TrackPtIsoPtRatioCut", 5, "Pt isolation for a .45 cone, normalized to track pt"}
 
Gaudi::Property< double > m_eIsoBarrelCut {this, "TrackEIsoBarrelCut", 15000, "Energy isolation for a .45 cone in Barrel"}
 
Gaudi::Property< double > m_eIsoTransitionCut
 
Gaudi::Property< double > m_eIsoEndCapCut {this, "TrackEIsoEndCapCut", 12000, "Energy isolation for a .45 cone in Endcap"}
 
Gaudi::Property< double > m_eIsoPtRatioBarrelCut
 
Gaudi::Property< double > m_eIsoPtRatioTransitionCut
 
Gaudi::Property< double > m_eIsoPtRatioEndCapCut
 
Gaudi::Property< double > m_CaloLRlikelihoodCut {this, "CaloLRLikelihoodCut", 0.5, "CaloLR likelihood ratio hard cut"}
 
Gaudi::Property< double > m_CaloMuonScoreCut
 
Gaudi::Property< double > m_trackIsoCone {this, "TrackIsoConeSize", 0.45, "Cone size for track isolation"}
 
Gaudi::Property< double > m_energyIsoCone {this, "EnergyIsoConeSize", 0.4, "Cone size for energy isolation"}
 
ToolHandle< ICaloMuonLikelihoodToolm_caloMuonLikelihood
 
ToolHandle< ICaloMuonScoreToolm_caloMuonScoreTool {this, "CaloMuonScoreTool", "CaloMuonScoreTool/CaloMuonScoreTool"}
 
ToolHandle< ICaloMuonTagm_caloMuonTagLoose
 
ToolHandle< ICaloMuonTagm_caloMuonTagTight
 
ToolHandle< ITrackDepositInCaloTool > m_trkDepositInCalo
 
ToolHandle< xAOD::ITrackIsolationToolm_trackIsolationTool {this, "TrackIsolationTool", "xAOD::TrackIsolationTool"}
 
ToolHandle< Trk::ITrackSelectorToolm_trkSelTool
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 35 of file MuonCaloTagTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ MuonCaloTagTool()

MuonCombined::MuonCaloTagTool::MuonCaloTagTool ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 41 of file MuonCaloTagTool.cxx.

41  :
42 
44  declareInterface<IMuonCombinedInDetExtensionTool>(this);
45  declareInterface<IMuonCombinedTrigCaloTagExtensionTool>(this);
46  }

◆ ~MuonCaloTagTool()

virtual MuonCombined::MuonCaloTagTool::~MuonCaloTagTool ( )
virtualdefault

Member Function Documentation

◆ applyTrackIsolation()

bool MuonCombined::MuonCaloTagTool::applyTrackIsolation ( const xAOD::TrackParticle tp) const
private

Definition at line 281 of file MuonCaloTagTool.cxx.

281  {
282  if (m_trackIsolationTool.empty()) return true;
283 
284  xAOD::TrackCorrection corrlist;
285  corrlist.trackbitset.set(static_cast<unsigned int>(xAOD::Iso::IsolationTrackCorrection::coreTrackPtr));
286  std::vector<xAOD::Iso::IsolationType> ptcones = {xAOD::Iso::ptcone40};
287  xAOD::TrackIsolation trackIsolation;
288  if (!m_trackIsolationTool->trackIsolation(trackIsolation, tp, ptcones, corrlist)) {
289  ATH_MSG_WARNING(" Calculation of TrackIsolation failed");
290  return false;
291  }
292  ATH_MSG_VERBOSE("Got track isolation " << trackIsolation.ptcones[0]);
293  double ptIso = trackIsolation.ptcones[0];
294  double ptIsoRatio = -9999;
295  if (ptIso > 0) {
296  double pt = tp.pt();
297  if (pt > 0) // ---> just for safety (pt can never be 0 actually)
298  ptIsoRatio = ptIso / pt;
299  }
300  if (ptIso == 0 || ptIsoRatio < m_ptIsoPtRatioCut) {
301  return true;
302  } else {
303  if (m_showCutFlow) ATH_MSG_DEBUG("Did not pass track isolation cut.");
304  return false;
305  }
306  }

◆ createMuon()

void MuonCombined::MuonCaloTagTool::createMuon ( const InDetCandidate muonCandidate,
const std::vector< DepositInCalo > &  deposits,
int  tag,
float  likelihood,
float  muonScore,
InDetCandidateToTagMap tagMap 
) const
private

Definition at line 323 of file MuonCaloTagTool.cxx.

324  {
325  std::vector<DepositInCalo>::const_iterator deposit = deposits.begin();
326  std::vector<DepositInCalo>::const_iterator depositE = deposits.end();
327  double eLoss = 0; // Energy Loss as measured in the cell closest to the track in each sample
328  CaloTag* caloTag = nullptr;
329  for (; deposit != depositE; ++deposit) eLoss += deposit->energyDeposited();
330 
331  if (tag > 0) {
332  caloTag = new CaloTag(xAOD::Muon::CaloTag, eLoss, 0); // set eLoss, sigmaEloss is set to 0.
333  if (likelihood > m_CaloLRlikelihoodCut) caloTag->set_author2(xAOD::Muon::CaloLikelihood);
334 
335  if (muonScore > m_CaloMuonScoreCut && likelihood > m_CaloLRlikelihoodCut)
336  caloTag->set_author3(xAOD::Muon::CaloScore);
337  else if (muonScore > m_CaloMuonScoreCut)
338  caloTag->set_author2(xAOD::Muon::CaloScore);
339 
340  } else if (likelihood > m_CaloLRlikelihoodCut) {
341  caloTag = new CaloTag(xAOD::Muon::CaloLikelihood, eLoss, 0);
342  if (muonScore > m_CaloMuonScoreCut) caloTag->set_author2(xAOD::Muon::CaloScore);
343  } else if (muonScore > m_CaloMuonScoreCut) {
344  caloTag = new CaloTag(xAOD::Muon::CaloScore, eLoss, 0);
345  }
346 
347  if (caloTag) {
348  caloTag->set_deposits(deposits);
349  caloTag->set_caloMuonIdTag(tag);
350  caloTag->set_caloLRLikelihood(likelihood);
351  caloTag->set_caloMuonScore(muonScore);
352  tagMap->addEntry(&muonCandidate, caloTag);
353  }
354  }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extend() [1/2]

void MuonCombined::MuonCaloTagTool::extend ( const InDetCandidateCollection inDetCandidates,
InDetCandidateToTagMap tagMap,
const CaloCellContainer caloCellCont,
const xAOD::CaloClusterContainer caloClusterCont 
) const
overridevirtual

IMuonCombinedTrigCaloTagExtensionTool interface: build combined muons from ID and MS candidates.

Implements MuonCombined::IMuonCombinedTrigCaloTagExtensionTool.

Definition at line 123 of file MuonCaloTagTool.cxx.

124  {
125  // --- Retrieve primary vertex (not retrieving for now) ---
126  const Trk::Vertex* vertex = nullptr;
127 
128  // --- Big loop over all the particles in the container ---
129  //-- make sure CaloCellContainer is there
130  if (!caloCellCont) { ATH_MSG_VERBOSE("Called with no CaloCellContainer in argument"); }
131 
132  for (const auto* idTP : inDetCandidates) {
133  // skip track particles which are no complete ID track
134  if (m_ignoreSiAssocated && idTP->isSiliconAssociated()) {
135  ATH_MSG_DEBUG("Associated track is just tracklet. Skipping this particle.");
136  continue;
137  }
138  // ensure that the id trackparticle has a track
139  const Trk::Track* track = idTP->indetTrackParticle().track(); //->originalTrack()
140  const xAOD::TrackParticle* tp = &(*idTP).indetTrackParticle(); //->originalTrackParticle()
141  if (!track) {
142  ATH_MSG_DEBUG("Particle with no track associated. Skipping this particle.");
143  continue;
144  }
146  if (!par) {
147  ATH_MSG_DEBUG("Could not retrieve Trk::TrackParameters from track. Skipping this particle.");
148  continue;
149  }
150 
151  // --- Get pdgId (when requested) ---
152  int pdgId = 0;
153 
155  truthParticleLinkAcc("truthParticleLink");
157  if (truthParticleLinkAcc.isAvailable(*tp)) {
158  truthLink = truthParticleLinkAcc(*tp);
159  if (m_doTruth && truthLink.isValid()) {
160  // no decay in flight
161  pdgId = (*truthLink)->pdgId();
162  } else {
163  ATH_MSG_DEBUG("No TruthLink available.");
164  }
165  }
166 
167  // --- Track selection ---
168 
169  if (!selectTrack(track, vertex)) {
170  // --- in debug mode, monitor the number of muons rejected by track selection ---
171  if (m_debugMode) {
172  // --- Truth info == 0 when doTruth is false ---
173  if (abs(pdgId) == 13) {
174  // MUST BE DEFINE track pt
175  ATH_MSG_DEBUG("Cutflow MuonCaloTag >>> Muon rejected by track selection."); //(pt = " << track->pt() << ")" <<
176  //"<<<"); to update
177  }
178  }
179  continue;
180  }
181 
182  // --- Track isolation --- -> SEE DETAILS IN corresponding method
183  if (!applyTrackIsolation(*tp)) {
184  // --- in debug mode, monitor the number of muons rejected by track selection ---
185  if (m_debugMode) {
186  // --- Truth info == 0 when doTruth is false ---
187  if (abs(pdgId) == 13) { ATH_MSG_DEBUG("Cutflow MuonCaloTag >>> Muon rejected by track isolation. <<<"); }
188  }
189  continue;
190  }
191 
192  // --- Show track information when debug mode is set to true ---
193  if (m_debugMode) {
195  if (pdgId) ATH_MSG_DEBUG(" pdgId = " << pdgId);
196  }
197  if (abs(pdgId) == 13) m_nTrueMuons++;
198 
199  // --- Muon tagging ---
200  float likelihood = 0;
201  float muon_score = -1;
202  int tag = 0;
203  std::vector<DepositInCalo> deposits;
204  if (m_doCaloMuonTag) {
205  if (m_doOldExtrapolation) {
206  deposits = m_trkDepositInCalo->getDeposits(par, caloCellCont);
207  } else {
208  deposits = m_trkDepositInCalo->getDeposits(tp);
209  }
210  tag = m_caloMuonTagLoose->caloMuonTag(deposits, par->eta(), par->pT());
211  tag += 10 * m_caloMuonTagTight->caloMuonTag(deposits, par->eta(), par->pT());
212  }
213  if (m_doCaloLR) { likelihood = m_caloMuonLikelihood->getLHR(tp, caloClusterCont); }
214  if (m_doCaloMuonScore) { muon_score = m_caloMuonScoreTool->getMuonScore(tp); }
215  ATH_MSG_DEBUG("Track found with tag " << tag << ", LHR " << likelihood << " and calo muon score " << muon_score);
216  // --- If all three taggers do not think it's a muon, forget about it ---
217  if (tag == 0 && likelihood <= m_CaloLRlikelihoodCut && muon_score < m_CaloMuonScoreCut) { continue; }
218  // --- Only accept tight tagged muons if pT is below 4 GeV and the muon score is below the threshold---
219  if (tag < 10 && par->pT() < 4000 && muon_score < m_CaloMuonScoreCut) { continue; }
220 
221  // FIXME const-cast changes object passed in as const
222  createMuon(*idTP, deposits, tag, likelihood, muon_score, tagMap);
223 
224  // --- Count number of muons written to container
225  if (abs(pdgId) == 13) m_nMuonsTagged++;
226  m_nTracksTagged++;
227  }
228 
229  } // end of the extend method

◆ extend() [2/2]

void MuonCombined::MuonCaloTagTool::extend ( const InDetCandidateCollection inDetCandidates,
InDetCandidateToTagMap tagMap,
TrackCollection combTracks,
TrackCollection meTracks,
Trk::SegmentCollection segments,
const EventContext &  ctx 
) const
overridevirtual

IMuonCombinedInDetExtensionTool interface: extend ID candidate.

Implements MuonCombined::IMuonCombinedInDetExtensionTool.

Definition at line 96 of file MuonCaloTagTool.cxx.

98  {
99  if (combTracks || meTracks || segments) ATH_MSG_DEBUG("track collections passed to MuonCaloTagTool?");
100  const xAOD::CaloClusterContainer* caloClusterCont = nullptr;
101  const CaloCellContainer* caloCellCont = nullptr;
102  if (m_doCaloLR) { // retrieve the xAOD::CaloClusterContainer
104  if (!clusters.isValid())
105  ATH_MSG_WARNING("CaloClusterContainer " << m_caloClusterCont.key() << " not valid");
106  else if (!clusters.isPresent())
107  ATH_MSG_DEBUG("CaloClusterContainer " << m_caloClusterCont.key() << " not present");
108  else
109  caloClusterCont = clusters.cptr();
110  }
111  if (m_doOldExtrapolation) { // retrieve the CaloCellContainer
113  if (!cells.isValid())
114  ATH_MSG_WARNING("CaloCellContainer " << m_caloCellCont.key() << " not valid");
115  else if (!cells.isPresent())
116  ATH_MSG_DEBUG("CaloCellContainer " << m_caloCellCont.key() << " not present");
117  else
118  caloCellCont = cells.cptr();
119  }
120  extend(inDetCandidates, tagMap, caloCellCont, caloClusterCont);
121  }

◆ extendWithPRDs()

void MuonCombined::MuonCaloTagTool::extendWithPRDs ( const InDetCandidateCollection inDetCandidates,
InDetCandidateToTagMap tagMap,
IMuonCombinedInDetExtensionTool::MuonPrdData  prdData,
TrackCollection combTracks,
TrackCollection meTracks,
Trk::SegmentCollection segments,
const EventContext &  ctx 
) const
overridevirtual

Implements MuonCombined::IMuonCombinedInDetExtensionTool.

Definition at line 88 of file MuonCaloTagTool.cxx.

90  {
91  // shouldn't need this interface for this tool, I don't think
92  if (!prdData.mdtPrds) ATH_MSG_DEBUG("calo-tagging doesn't need PRDs");
93  extend(inDetCandidates, tagMap, combTracks, meTracks, segments, ctx);
94  }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ finalize()

StatusCode MuonCombined::MuonCaloTagTool::finalize ( )
overridevirtual

Definition at line 81 of file MuonCaloTagTool.cxx.

81  {
82  ATH_MSG_INFO("Number of true muons : " << m_nTrueMuons);
83  ATH_MSG_INFO("Number of tracks tagged : " << m_nTracksTagged);
84  ATH_MSG_INFO("Number of muons tagged : " << m_nMuonsTagged);
85  return StatusCode::SUCCESS;
86  }

◆ getTrackParameters()

const Trk::TrackParameters * MuonCombined::MuonCaloTagTool::getTrackParameters ( const Trk::Track trk) const
private

Definition at line 232 of file MuonCaloTagTool.cxx.

232  {
233  // --- Retrieve the last measured hit which is closest to the solenoid/calorimeter entrance ---
235  const Trk::TrackParameters* param = nullptr;
236  if (paramvec) {
238  param = *(--itEnd);
239  }
240 
241  return param;
242  }

◆ initialize()

StatusCode MuonCombined::MuonCaloTagTool::initialize ( )
overridevirtual

Definition at line 48 of file MuonCaloTagTool.cxx.

48  {
49  ATH_MSG_INFO("MuonCaloTagTool::initialize()");
50 
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.");
54  }
55 
56  // --- Get an Identifier helper object ---
57  if (m_doCaloLR)
58  ATH_CHECK(m_caloMuonLikelihood.retrieve());
59  else
60  m_caloMuonLikelihood.disable();
61 
63  ATH_CHECK(m_caloMuonScoreTool.retrieve());
64  else
65  m_caloMuonScoreTool.disable();
66 
67  ATH_CHECK(m_caloMuonTagLoose.retrieve());
68  ATH_CHECK(m_caloMuonTagTight.retrieve());
69  ATH_CHECK(m_trkDepositInCalo.retrieve());
70  if (!m_trackIsolationTool.empty())
71  ATH_CHECK(m_trackIsolationTool.retrieve());
72  else
73  m_trackIsolationTool.disable();
74  ATH_CHECK(m_trkSelTool.retrieve());
77 
78  return StatusCode::SUCCESS;
79  }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ interfaceID() [1/2]

static const InterfaceID& MuonCombined::IMuonCombinedTrigCaloTagExtensionTool::interfaceID ( )
inlinestaticinherited

Definition at line 24 of file IMuonCombinedTrigCaloTagExtensionTool.h.

24  {
25  static const InterfaceID IID_IMuonCombinedTrigCaloTagExtensionTool("MuonCombined::IMuonCombinedTrigCaloTagExtensionTool", 1, 0);
26  return IID_IMuonCombinedTrigCaloTagExtensionTool;
27  };

◆ interfaceID() [2/2]

static const InterfaceID& MuonCombined::IMuonCombinedInDetExtensionTool::interfaceID ( )
inlinestaticinherited

Definition at line 37 of file IMuonCombinedInDetExtensionTool.h.

37  {
38  static const InterfaceID IID_IMuonCombinedInDetExtensionTool("MuonCombined::IMuonCombinedInDetExtensionTool", 1, 0);
39  return IID_IMuonCombinedInDetExtensionTool;
40  }

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ selectCosmic()

bool MuonCombined::MuonCaloTagTool::selectCosmic ( const Trk::Track ptcl) const
private

Definition at line 264 of file MuonCaloTagTool.cxx.

264  {
265  // --- Only ask some hits with eta information ---
266  if (ptcl->perigeeParameters()->momentum().mag() > 2000) return false;
267  const Trk::TrackSummary* trkSummary = ptcl->trackSummary();
268  if (trkSummary) {
269  int nHitsSCT = trkSummary->get(Trk::numberOfSCTHits);
270  int nHitsPixel = trkSummary->get(Trk::numberOfPixelHits);
271  if ((nHitsSCT + nHitsPixel) > 2) return true;
272  } else {
273  ATH_MSG_WARNING("Trk::TrackSummary was not retrieved from TrackParticle.");
274  }
275 
276  return false;
277  }

◆ selectTrack()

bool MuonCombined::MuonCaloTagTool::selectTrack ( const Trk::Track trk,
const Trk::Vertex vertex 
) const
private

Definition at line 245 of file MuonCaloTagTool.cxx.

245  {
246  if (m_doTrkSelection) {
247  bool result =
248  (m_trkSelTool->decision(*trk, vertex)) && (trk->perigeeParameters()->momentum().mag() > 2000); //;p()>2000); to check
249 
250  if (!result && m_showCutFlow) ATH_MSG_DEBUG("Track selection wrt primary vertex: Veto on this track");
251  return result;
252  }
254  bool result = selectCosmic(trk);
255  if (!result && m_showCutFlow) ATH_MSG_DEBUG("Track selection in commissioning mode: Veto on this track");
256  return result;
257  }
258 
259  // --- Return true when no track selection options are set ---
260  return true;
261  }

◆ showTrackInfo()

void MuonCombined::MuonCaloTagTool::showTrackInfo ( const Trk::TrackParameters par) const
private

Definition at line 309 of file MuonCaloTagTool.cxx.

309  {
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();
316  ATH_MSG_DEBUG("*** Analysing track with parameters: ***");
317  ATH_MSG_VERBOSE(" position: r = " << r << ", eta = " << eta << ", phi = " << phi / M_PI);
318  ATH_MSG_DEBUG(" momentum: pt = " << pt << ", eta = " << momEta << ", phi = " << momPhi / M_PI);
319 
320  return;
321  }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_caloCellCont

SG::ReadHandleKey<CaloCellContainer> MuonCombined::MuonCaloTagTool::m_caloCellCont {this, "CaloCells", "AllCalo", "calo cell container"}
private

Definition at line 68 of file MuonCaloTagTool.h.

◆ m_caloClusterCont

SG::ReadHandleKey<xAOD::CaloClusterContainer> MuonCombined::MuonCaloTagTool::m_caloClusterCont {this, "CaloClusters", "CaloTopoClusters", "calo cluster container"}
private

Definition at line 67 of file MuonCaloTagTool.h.

◆ m_CaloLRlikelihoodCut

Gaudi::Property<double> MuonCombined::MuonCaloTagTool::m_CaloLRlikelihoodCut {this, "CaloLRLikelihoodCut", 0.5, "CaloLR likelihood ratio hard cut"}
private

Definition at line 101 of file MuonCaloTagTool.h.

◆ m_caloMuonLikelihood

ToolHandle<ICaloMuonLikelihoodTool> MuonCombined::MuonCaloTagTool::m_caloMuonLikelihood
private
Initial value:
{this, "CaloMuonLikelihoodTool",
"CaloMuonLikelihoodTool/CaloMuonLikelihoodTool"}

Definition at line 108 of file MuonCaloTagTool.h.

◆ m_CaloMuonScoreCut

Gaudi::Property<double> MuonCombined::MuonCaloTagTool::m_CaloMuonScoreCut
private
Initial value:
{this, "CaloMuonScoreCut", 0.4,
"Calo muon convolutional neural network output score hard cut"}

Definition at line 102 of file MuonCaloTagTool.h.

◆ m_caloMuonScoreTool

ToolHandle<ICaloMuonScoreTool> MuonCombined::MuonCaloTagTool::m_caloMuonScoreTool {this, "CaloMuonScoreTool", "CaloMuonScoreTool/CaloMuonScoreTool"}
private

Definition at line 110 of file MuonCaloTagTool.h.

◆ m_caloMuonTagLoose

ToolHandle<ICaloMuonTag> MuonCombined::MuonCaloTagTool::m_caloMuonTagLoose
private
Initial value:
{this, "CaloMuonTagLoose", "CaloMuonTag/CaloMuonTagLoose",
"CaloTrkMuIdTools::CaloMuonTag for loose tagging"}

Definition at line 112 of file MuonCaloTagTool.h.

◆ m_caloMuonTagTight

ToolHandle<ICaloMuonTag> MuonCombined::MuonCaloTagTool::m_caloMuonTagTight
private
Initial value:
{this, "CaloMuonTagTight", "CaloMuonTag/CaloMuonTag",
"CaloTrkMuIdTools::CaloMuonTag for tight tagging"}

Definition at line 114 of file MuonCaloTagTool.h.

◆ m_debugMode

Gaudi::Property<bool> MuonCombined::MuonCaloTagTool::m_debugMode {this, "DebugMode", false, "Switch for extra printout"}
private

Definition at line 84 of file MuonCaloTagTool.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_doCaloLR

Gaudi::Property<bool> MuonCombined::MuonCaloTagTool::m_doCaloLR {this, "doCaloLR", true, "run CaloMuonLikelihoodTool"}
private

Definition at line 78 of file MuonCaloTagTool.h.

◆ m_doCaloMuonScore

Gaudi::Property<bool> MuonCombined::MuonCaloTagTool::m_doCaloMuonScore {this, "doCaloMuonScore", true, "run CaloMuonScoreTool"}
private

Definition at line 77 of file MuonCaloTagTool.h.

◆ m_doCaloMuonTag

Gaudi::Property<bool> MuonCombined::MuonCaloTagTool::m_doCaloMuonTag {this, "doCaloMuonTag", true, "run CaloMuonTag Tool"}
private

Definition at line 76 of file MuonCaloTagTool.h.

◆ m_doCosmicTrackSelection

Gaudi::Property<bool> MuonCombined::MuonCaloTagTool::m_doCosmicTrackSelection {this, "doCosmicTrackSelection", false, "Apply track selection for cosmics"}
private

Definition at line 81 of file MuonCaloTagTool.h.

◆ m_doOldExtrapolation

Gaudi::Property<bool> MuonCombined::MuonCaloTagTool::m_doOldExtrapolation {this, "doOldExtrapolation", false}
private

Definition at line 85 of file MuonCaloTagTool.h.

◆ m_doTrkSelection

Gaudi::Property<bool> MuonCombined::MuonCaloTagTool::m_doTrkSelection
private
Initial value:
{this, "doTrkSelection", true,
"This variable should be set to false when there is no primary vertex reconstructed."}

Definition at line 79 of file MuonCaloTagTool.h.

◆ m_doTruth

Gaudi::Property<bool> MuonCombined::MuonCaloTagTool::m_doTruth {this, "ShowTruth", true, "Display truth info for each analysed track"}
private

Definition at line 83 of file MuonCaloTagTool.h.

◆ m_eIsoBarrelCut

Gaudi::Property<double> MuonCombined::MuonCaloTagTool::m_eIsoBarrelCut {this, "TrackEIsoBarrelCut", 15000, "Energy isolation for a .45 cone in Barrel"}
private

Definition at line 90 of file MuonCaloTagTool.h.

◆ m_eIsoEndCapCut

Gaudi::Property<double> MuonCombined::MuonCaloTagTool::m_eIsoEndCapCut {this, "TrackEIsoEndCapCut", 12000, "Energy isolation for a .45 cone in Endcap"}
private

Definition at line 93 of file MuonCaloTagTool.h.

◆ m_eIsoPtRatioBarrelCut

Gaudi::Property<double> MuonCombined::MuonCaloTagTool::m_eIsoPtRatioBarrelCut
private
Initial value:
{this, "TrackEIsoPtRatioBarrelCut", 2.5,
"Energy isolation for a .45 cone in Barrel, normalized to track pt"}

Definition at line 94 of file MuonCaloTagTool.h.

◆ m_eIsoPtRatioEndCapCut

Gaudi::Property<double> MuonCombined::MuonCaloTagTool::m_eIsoPtRatioEndCapCut
private
Initial value:
{this, "TrackEIsoPtRatioEndCapCut", 1.6,
"Energy isolation for a .45 cone in Endcap, normalized to track pt"}

Definition at line 99 of file MuonCaloTagTool.h.

◆ m_eIsoPtRatioTransitionCut

Gaudi::Property<double> MuonCombined::MuonCaloTagTool::m_eIsoPtRatioTransitionCut
private
Initial value:
{
this, "TrackEIsoPtRatioTransitionCut", 1.25,
"Energy isolation for a .45 cone in Barrel-EndCap transition region, normalized to track pt"}

Definition at line 96 of file MuonCaloTagTool.h.

◆ m_eIsoTransitionCut

Gaudi::Property<double> MuonCombined::MuonCaloTagTool::m_eIsoTransitionCut
private
Initial value:
{this, "TrackEIsoTransitionCut", 8000,
"Energy isolation for a .45 cone in Barrel-EndCap transition region"}

Definition at line 91 of file MuonCaloTagTool.h.

◆ m_energyIsoCone

Gaudi::Property<double> MuonCombined::MuonCaloTagTool::m_energyIsoCone {this, "EnergyIsoConeSize", 0.4, "Cone size for energy isolation"}
private

Definition at line 105 of file MuonCaloTagTool.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_ignoreSiAssocated

Gaudi::Property<bool> MuonCombined::MuonCaloTagTool::m_ignoreSiAssocated
private
Initial value:
{this, "IgnoreSiAssociatedCandidates", true,
"If true, ignore InDetCandidates which are SiAssociated"}

Definition at line 86 of file MuonCaloTagTool.h.

◆ m_nMuonsTagged

std::atomic_int MuonCombined::MuonCaloTagTool::m_nMuonsTagged {0}
mutableprivate

Counts the number of truth muons tagged.

Definition at line 73 of file MuonCaloTagTool.h.

◆ m_nTracksTagged

std::atomic_int MuonCombined::MuonCaloTagTool::m_nTracksTagged {0}
mutableprivate

Counts the number of tracks tagged.

Definition at line 72 of file MuonCaloTagTool.h.

◆ m_nTrueMuons

std::atomic_int MuonCombined::MuonCaloTagTool::m_nTrueMuons {0}
mutableprivate

Counts the number true muons.

Definition at line 71 of file MuonCaloTagTool.h.

◆ m_ptIsoPtRatioCut

Gaudi::Property<double> MuonCombined::MuonCaloTagTool::m_ptIsoPtRatioCut {this, "TrackPtIsoPtRatioCut", 5, "Pt isolation for a .45 cone, normalized to track pt"}
private

Definition at line 89 of file MuonCaloTagTool.h.

◆ m_showCutFlow

Gaudi::Property<bool> MuonCombined::MuonCaloTagTool::m_showCutFlow {this, "ShowCutFlow", true, "Verbose track selection and track isolation"}
private

Definition at line 82 of file MuonCaloTagTool.h.

◆ m_trackIsoCone

Gaudi::Property<double> MuonCombined::MuonCaloTagTool::m_trackIsoCone {this, "TrackIsoConeSize", 0.45, "Cone size for track isolation"}
private

Definition at line 104 of file MuonCaloTagTool.h.

◆ m_trackIsolationTool

ToolHandle<xAOD::ITrackIsolationTool> MuonCombined::MuonCaloTagTool::m_trackIsolationTool {this, "TrackIsolationTool", "xAOD::TrackIsolationTool"}
private

Definition at line 120 of file MuonCaloTagTool.h.

◆ m_trkDepositInCalo

ToolHandle<ITrackDepositInCaloTool> MuonCombined::MuonCaloTagTool::m_trkDepositInCalo
private
Initial value:
{this, "TrackDepositInCaloTool",
"TrackDepositInCaloTool/TrackDepositInCaloTool"}

Definition at line 116 of file MuonCaloTagTool.h.

◆ m_trkSelTool

ToolHandle<Trk::ITrackSelectorTool> MuonCombined::MuonCaloTagTool::m_trkSelTool
private
Initial value:
{this, "TrackSelectorTool",
"InDet::InDetDetailedTrackSelectorTool/CaloTrkMuIdAlgTrackSelectorTool"}

Definition at line 121 of file MuonCaloTagTool.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
Trk::numberOfPixelHits
@ numberOfPixelHits
number of pixel layers on track with absence of hits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:57
beamspotman.r
def r
Definition: beamspotman.py:676
RunTileCalibRec.cells
cells
Definition: RunTileCalibRec.py:271
Trk::Vertex
Definition: Tracking/TrkEvent/VxVertex/VxVertex/Vertex.h:26
CalculateHighPtTerm.pT
pT
Definition: ICHEP2016/CalculateHighPtTerm.py:57
MuonCombined::MuonCaloTagTool::m_caloMuonTagLoose
ToolHandle< ICaloMuonTag > m_caloMuonTagLoose
Definition: MuonCaloTagTool.h:112
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
MuonCombined::MuonCaloTagTool::m_ignoreSiAssocated
Gaudi::Property< bool > m_ignoreSiAssocated
Definition: MuonCaloTagTool.h:86
get_generator_info.result
result
Definition: get_generator_info.py:21
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
MuonCombined::MuonCaloTagTool::showTrackInfo
void showTrackInfo(const Trk::TrackParameters *par) const
Definition: MuonCaloTagTool.cxx:309
xAOD::TrackCorrection
Definition: IsolationCommon.h:18
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
MuonCombined::MuonCaloTagTool::m_ptIsoPtRatioCut
Gaudi::Property< double > m_ptIsoPtRatioCut
Definition: MuonCaloTagTool.h:89
MuonCombined::MuonCaloTagTool::applyTrackIsolation
bool applyTrackIsolation(const xAOD::TrackParticle &tp) const
Definition: MuonCaloTagTool.cxx:281
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
xAOD::Iso::coreTrackPtr
@ coreTrackPtr
tracks pointer
Definition: Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationCorrection.h:66
MuonCombined::MuonCaloTagTool::m_nMuonsTagged
std::atomic_int m_nMuonsTagged
Counts the number of truth muons tagged.
Definition: MuonCaloTagTool.h:73
MuonCombined::MuonCaloTagTool::getTrackParameters
const Trk::TrackParameters * getTrackParameters(const Trk::Track *trk) const
Definition: MuonCaloTagTool.cxx:232
xAOD::TrackCorrection::trackbitset
Iso::IsolationTrackCorrectionBitset trackbitset
Definition: IsolationCommon.h:19
test_pyathena.pt
pt
Definition: test_pyathena.py:11
M_PI
#define M_PI
Definition: ActiveFraction.h:11
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
ParticleTest.tp
tp
Definition: ParticleTest.py:25
MuonCombined::MuonCaloTagTool::m_debugMode
Gaudi::Property< bool > m_debugMode
Definition: MuonCaloTagTool.h:84
MuonCombined::MuonCaloTagTool::m_doCaloMuonScore
Gaudi::Property< bool > m_doCaloMuonScore
Definition: MuonCaloTagTool.h:77
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:54
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
MuonCombined::MuonCaloTagTool::m_trkSelTool
ToolHandle< Trk::ITrackSelectorTool > m_trkSelTool
Definition: MuonCaloTagTool.h:121
MuonParameters::CaloTag
@ CaloTag
Definition: MuonParamDefs.h:64
MuonCombined::MuonCaloTagTool::m_doTrkSelection
Gaudi::Property< bool > m_doTrkSelection
Definition: MuonCaloTagTool.h:79
PowhegPy8EG_H2a.pdgId
dictionary pdgId
Definition: PowhegPy8EG_H2a.py:128
MuonCombined::MuonCaloTagTool::m_doCosmicTrackSelection
Gaudi::Property< bool > m_doCosmicTrackSelection
Definition: MuonCaloTagTool.h:81
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
MuonCombined::MuonCaloTagTool::m_CaloMuonScoreCut
Gaudi::Property< double > m_CaloMuonScoreCut
Definition: MuonCaloTagTool.h:102
MuonCombined::MuonCaloTagTool::selectTrack
bool selectTrack(const Trk::Track *trk, const Trk::Vertex *vertex) const
Definition: MuonCaloTagTool.cxx:245
MuonCombined::MuonCaloTagTool::createMuon
void createMuon(const InDetCandidate &muonCandidate, const std::vector< DepositInCalo > &deposits, int tag, float likelihood, float muonScore, InDetCandidateToTagMap *tagMap) const
Definition: MuonCaloTagTool.cxx:323
MuonCombined::MuonCaloTagTool::m_caloMuonTagTight
ToolHandle< ICaloMuonTag > m_caloMuonTagTight
Definition: MuonCaloTagTool.h:114
MuonCombined::MuonCaloTagTool::m_CaloLRlikelihoodCut
Gaudi::Property< double > m_CaloLRlikelihoodCut
Definition: MuonCaloTagTool.h:101
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
MuonCombined::MuonCaloTagTool::m_doTruth
Gaudi::Property< bool > m_doTruth
Definition: MuonCaloTagTool.h:83
MuonCombined::MuonCaloTagTool::m_caloMuonLikelihood
ToolHandle< ICaloMuonLikelihoodTool > m_caloMuonLikelihood
Definition: MuonCaloTagTool.h:108
MuonCombined::MuonCaloTagTool::m_caloClusterCont
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_caloClusterCont
Definition: MuonCaloTagTool.h:67
Trk::numberOfSCTHits
@ numberOfSCTHits
number of SCT holes
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:71
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
MuonCombined::MuonCaloTagTool::m_doCaloLR
Gaudi::Property< bool > m_doCaloLR
Definition: MuonCaloTagTool.h:78
MuonCombined::MuonCaloTagTool::selectCosmic
bool selectCosmic(const Trk::Track *ptcl) const
Definition: MuonCaloTagTool.cxx:264
test_pyathena.parent
parent
Definition: test_pyathena.py:15
MuonCombined::MuonCaloTagTool::m_nTrueMuons
std::atomic_int m_nTrueMuons
Counts the number true muons.
Definition: MuonCaloTagTool.h:71
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
MuonCombined::MuonCaloTagTool::m_showCutFlow
Gaudi::Property< bool > m_showCutFlow
Definition: MuonCaloTagTool.h:82
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
Trk::ParametersBase
Definition: ParametersBase.h:55
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
MuonCombined::MuonCaloTagTool::m_caloCellCont
SG::ReadHandleKey< CaloCellContainer > m_caloCellCont
Definition: MuonCaloTagTool.h:68
MuonCombined::MuonCaloTagTool::m_nTracksTagged
std::atomic_int m_nTracksTagged
Counts the number of tracks tagged.
Definition: MuonCaloTagTool.h:72
MuonCombined::MuonCaloTagTool::extend
virtual void extend(const InDetCandidateCollection &inDetCandidates, InDetCandidateToTagMap *tagMap, TrackCollection *combTracks, TrackCollection *meTracks, Trk::SegmentCollection *segments, const EventContext &ctx) const override
IMuonCombinedInDetExtensionTool interface: extend ID candidate.
Definition: MuonCaloTagTool.cxx:96
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
xAOD::TrackIsolation
Definition: IsolationCommon.h:33
MuonCombined::MuonCaloTagTool::m_trackIsolationTool
ToolHandle< xAOD::ITrackIsolationTool > m_trackIsolationTool
Definition: MuonCaloTagTool.h:120
Trk::Track::trackParameters
const DataVector< const TrackParameters > * trackParameters() const
Return a pointer to a vector of TrackParameters.
Definition: Tracking/TrkEvent/TrkTrack/src/Track.cxx:97
Trk::Track::perigeeParameters
const Perigee * perigeeParameters() const
return Perigee.
Definition: Tracking/TrkEvent/TrkTrack/src/Track.cxx:163
MuonCombined::MuonCaloTagTool::m_caloMuonScoreTool
ToolHandle< ICaloMuonScoreTool > m_caloMuonScoreTool
Definition: MuonCaloTagTool.h:110
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
Trk::TrackSummary
A summary of the information contained by a track.
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:287
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
MuonCombined::MuonCaloTagTool::m_doCaloMuonTag
Gaudi::Property< bool > m_doCaloMuonTag
Definition: MuonCaloTagTool.h:76
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
xAOD::TrackIsolation::ptcones
std::vector< float > ptcones
Definition: IsolationCommon.h:36
xAOD::Iso::ptcone40
@ ptcone40
Definition: IsolationType.h:42
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
a
TList * a
Definition: liststreamerinfos.cxx:10
h
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
Trk::Track::trackSummary
const Trk::TrackSummary * trackSummary() const
Returns a pointer to the const Trk::TrackSummary owned by this const track (could be nullptr)
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
MuonCombined::MuonCaloTagTool::m_trkDepositInCalo
ToolHandle< ITrackDepositInCaloTool > m_trkDepositInCalo
Definition: MuonCaloTagTool.h:116
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
MuonCombined::MuonCaloTagTool::m_doOldExtrapolation
Gaudi::Property< bool > m_doOldExtrapolation
Definition: MuonCaloTagTool.h:85
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:24
Trk::TrackSummary::get
int get(const SummaryType &type) const
returns the summary information for the passed SummaryType.
MuonParameters::CaloLikelihood
@ CaloLikelihood
Definition: MuonParamDefs.h:65
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
fitman.k
k
Definition: fitman.py:528