ATLAS Offline Software
Loading...
Searching...
No Matches
MuonMatchingTool Class Reference

Class that provides functionalities for searching for online muons close to a given offline muon and judging they are matched with the specific criteria. More...

#include <MuonMatchingTool.h>

Inheritance diagram for MuonMatchingTool:
Collaboration diagram for MuonMatchingTool:

Public Member Functions

 MuonMatchingTool (const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode initialize () override
const xAOD::MuonRoImatchL1 (const EventContext &ctx, const xAOD::Muon *mu, const std::string &trigger, bool &pass) const
 Function that searches for a Level 1 muon candidate and judges if it is matched to a given offline muon.
const xAOD::MuonRoImatchL1 (const EventContext &ctx, const xAOD::TruthParticle *mu, const std::string &trigger, bool &pass) const
 Function that searches for a Level 1 truth muon candidate and judges if it is matched to a given offline muon.
const xAOD::MuonRoImatchL1 (const EventContext &ctx, double eta, double phi, double dR, const std::string &trigger, bool &pass) const
 Function that dR matches L1 muon candidates.
const xAOD::L2StandAloneMuonmatchL2SA (const EventContext &ctx, const xAOD::Muon *mu, const std::string &trigger, bool &pass) const
 Function that searches for an L2 standalone muon (L2MuonSA) candidate and judges if it is matched to a given offline muon.
const xAOD::MuonmatchFastRecoSA (const EventContext &ctx, const xAOD::Muon *mu, const std::string &trigger, bool &pass) const
 Function that searches for a EF fast reco muon (PhaseII) candidate and judges if it is matched to a given offline muon.
const xAOD::L2StandAloneMuonmatchL2SA (const xAOD::TruthParticle *mu, const std::string &trigger, bool &pass) const
 Function that searches for an L2 standalone muon (L2MuonSA) candidate and judges if it is matched to a given truth particle.
const xAOD::MuonmatchFastRecoSA (const xAOD::TruthParticle *mu, const std::string &trigger, bool &pass) const
 Function that searches for a EF fast reco standalone muon (PhaseII) candidate and judges if it is matched to a given truth particle.
const TrigCompositeUtils::LinkInfo< xAOD::L2StandAloneMuonContainersearchL2SALinkInfo (const xAOD::Muon *mu, std::string trigger) const
 Function that searches for the L2 standalone muon (L2MuonSA) candidate closest to a given offline muon.
const TrigCompositeUtils::LinkInfo< xAOD::MuonContainersearchFastRecoSALinkInfo (const xAOD::Muon *mu, std::string trigger) const
 Function that searches for the EF fast reco standalone candidate closest to a given offline muon.
const xAOD::L2StandAloneMuonmatchL2SAReadHandle (const EventContext &ctx, const xAOD::Muon *mu) const
 Function that searches for an L2 standalone muon (L2MuonSA) candidate by ReadHandle and judges if it is matched to a given offlineSA muon.
const xAOD::MuonmatchFastRecoSAReadHandle (const EventContext &ctx, const xAOD::Muon *mu) const
 Function that searches for a EF fast reco standalone muon (PhaseII) candidate by ReadHandle and judges if it is matched to a given offlineSA muon.
const xAOD::L2CombinedMuonmatchL2CB (const xAOD::Muon *mu, std::string trigger, bool &pass) const
 Function that searches for an L2 combined muon (L2muComb) candidate and judges if it is matched to a given offline muon.
const xAOD::L2CombinedMuonmatchL2CB (const xAOD::TruthParticle *mu, std::string trigger, bool &pass) const
const TrigCompositeUtils::LinkInfo< xAOD::L2CombinedMuonContainersearchL2CBLinkInfo (const xAOD::Muon *mu, std::string trigger) const
 Function that searches for the L2 combined muon (L2muComb) candidate closest to a given offline muon.
const xAOD::L2CombinedMuonmatchL2CBReadHandle (const EventContext &ctx, const xAOD::Muon *mu) const
 Function that searches for an L2 combined muon (L2muComb) candidate by ReadHandle and judges if it is matched to a given offlineCB muon.
const xAOD::MuonmatchEFSA (const xAOD::Muon *mu, std::string trigger, bool &pass) const
 Function that searches for an EF standalone muon (EFSA) candidate and judges if it is matched to a given offline muon.
const xAOD::MuonmatchEFSA (const xAOD::TruthParticle *mu, std::string trigger, bool &pass) const
 Function that searches for an EF standalone muon (EFSA) candidate and judges if it is matched to a given truth muon.
const TrigCompositeUtils::LinkInfo< xAOD::MuonContainermatchEFSALinkInfo (const xAOD::Muon *mu, std::string trig) const
 Function that searches for an EF standalone muon (EFSA) candidate and judges if it is matched to a given track particle.
const xAOD::MuonmatchEFSAReadHandle (const EventContext &ctx, const xAOD::Muon *mu) const
 Function that searches for an EF standalone muon (EFSA) candidate by ReadHandle and judges if it is matched to a given offlineSA muon.
const xAOD::MuonmatchEFCB (const xAOD::Muon *mu, std::string trigger, bool &pass) const
 Function that searches for an EF combined muon (EFCB) candidate and judges if it is matched to a given offline muon.
const xAOD::MuonmatchEFCB (const xAOD::TruthParticle *mu, std::string trig, bool &pass) const
 Function that searches for an EF combined muon (EFCB) candidate and judges if it is matched to a given truth muon.
const TrigCompositeUtils::LinkInfo< xAOD::MuonContainermatchEFCBLinkInfo (const xAOD::Muon *mu, std::string trig) const
 Function that searches for an EF combined muon (EFCB) candidate and judges if it is matched to a given track particle.
const xAOD::MuonmatchEFCBReadHandle (const EventContext &ctx, const xAOD::Muon *mu) const
 Function that searches for an EF combined muon (EFCB) candidate by ReadHandle and judges if it is matched to a given offlineCB muon.
const xAOD::MuonmatchEFSAFS (const xAOD::Muon *mu, std::string trigger, bool &pass) const
 Function that searches for an EF FS standalone muon (EFSAFS) candidate and judges if it is matched to a given offline muon.
const xAOD::MuonmatchEFSAFS (const xAOD::TruthParticle *mu, std::string trigger, bool &pass) const
 Function that searches for an EF standalone muon (EFSAFS) candidate and judges if it is matched to a given truth muon.
const TrigCompositeUtils::LinkInfo< xAOD::MuonContainermatchEFSAFSLinkInfo (const xAOD::Muon *mu, std::string trig) const
 Function that searches for an EF standalone muon (EFSAFS) candidate and judges if it is matched to a given track particle.
const xAOD::MuonmatchEFSAFSReadHandle (const EventContext &ctx, const xAOD::Muon *mu) const
 Function that searches for an EF standalone muon (EFSAFS) candidate by ReadHandle and judges if it is matched to a given offlineSAFS muon.
const xAOD::MuonmatchEFCBFS (const xAOD::Muon *mu, std::string trigger, bool &pass) const
 Function that searches for an EF combined muon (EFCBFS) candidate and judges if it is matched to a given offline muon.
const xAOD::MuonmatchEFCBFS (const xAOD::TruthParticle *mu, std::string trig, bool &pass) const
 Function that searches for an EF combined muon (EFCBFS) candidate and judges if it is matched to a given truth muon.
const TrigCompositeUtils::LinkInfo< xAOD::MuonContainermatchEFCBFSLinkInfo (const xAOD::Muon *mu, std::string trig) const
 Function that searches for an EF combined muon (EFCBFS) candidate and judges if it is matched to a given track particle.
const xAOD::MuonmatchEFCBFSReadHandle (const EventContext &ctx, const xAOD::Muon *mu) const
 Function that searches for an EF combined muon (EFCBFS) candidate by ReadHandle and judges if it is matched to a given offlineCB muon.
const xAOD::MuonmatchEFIso (const xAOD::Muon *mu, std::string trigger, bool &pass) const
 Function that searches for an EF isolation muon (EFIso) candidate and judges if it is matched to a given offline muon.
const xAOD::MuonmatchEFIso (const xAOD::TruthParticle *mu, std::string trigger, bool &pass) const
 Function that searches for an EF isolation muon (EFIso) candidate and judges if it is matched to a given truth muon.
const TrigCompositeUtils::LinkInfo< xAOD::MuonContainermatchEFIsoLinkInfo (const xAOD::Muon *mu, std::string trig) const
 Function that searches for an EF isolation muon (EFIso) candidate and judges if it is matched to a given track particle.
const xAOD::TrackParticleSearchEFTrack (const EventContext &ctx, const TrigCompositeUtils::LinkInfo< xAOD::MuonContainer > &muLinkInfo, const SG::ReadHandleKey< xAOD::TrackParticleContainer > &ReadHandleKey) const
 Function that searches for an EF muon track (e.g.
const xAOD::MuonmatchL2SAtoOff (const EventContext &ctx, const xAOD::L2StandAloneMuon *samu) const
 Function that searches for an offline muon matched to L2SA muon.
const xAOD::MuonmatchFastRecoSAtoOff (const EventContext &ctx, const xAOD::Muon *samu) const
 Function that searches for an offline muon matched to EF Fast Reco SA muon.
const xAOD::MuonmatchL2CBtoOff (const EventContext &ctx, const xAOD::L2CombinedMuon *cbmu) const
 Function that searches for an offline muon matched to L2CB muon.
bool isMatchedL2SA (const xAOD::L2StandAloneMuon *, const xAOD::Muon *) const
bool isMatchedL2CB (const xAOD::L2CombinedMuon *, const xAOD::Muon *) const
bool isMatchedL2InsideOut (const xAOD::L2CombinedMuon *, const xAOD::Muon *) const
const Trk::TrackParametersextTrackToPivot (const EventContext &ctx, const xAOD::TrackParticle *track) const
 Function to extrapolate a Inner Detector track to the pivot plane i.e.
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Static Public Member Functions

static double reqdRL1byPt (double mupt)
 Function compute dR used for matching offline muons and level 1 RoIs at the pivot plane.
static std::tuple< bool, double, double > trigPosForMatchSATrack (const xAOD::Muon *mu)
static std::tuple< bool, double, double > trigPosForMatchCBTrack (const xAOD::Muon *mu)
static std::tuple< bool, double, double > PosForMatchSATrack (const xAOD::Muon *mu)
static std::tuple< bool, double, double > PosForMatchCBTrack (const xAOD::Muon *mu)

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
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.

Private Types

enum  L1Items {
  L1B_MU3V =1 , L1B_MU5VF =2 , L1B_MU8F =3 , L1B_MU14FCH =6 ,
  L1B_MU14FCHR =6 , L1E_MU3V =1 , L1E_MU5VF =3 , L1E_MU8F =6 ,
  L1E_MU14FCH =12 , L1E_MU14FCHR =12 , ERROR
}
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

int L1ItemStringToInt (const std::string &l1item, int roiSource) const
template<class T, class OFFL>
const T * matchReadHandle (const OFFL *offl, float reqdR, SG::ReadHandleKey< DataVector< T > > ReadHandleKey, const EventContext &ctx, std::tuple< bool, double, double >(*trigPosForMatchFunc)(const T *)=&MuonMatchingTool::trigPosForMatch< T >) const
 Function that searches for an online muon candidate of type T by ReadHandle and judges if it is matched to a given offline muon.
template<class T, class OFFL>
const TrigCompositeUtils::LinkInfo< DataVector< T > > matchLinkInfo (const OFFL *offl, std::string trigger, float reqdR, bool &pass, const std::string &containerSGKey="", std::tuple< bool, double, double >(*trigPosForMatchFunc)(const T *)=&MuonMatchingTool::trigPosForMatch< T >) const
 Function that searches for an online muon candidate of type T closest to a given offline muon.
template<class T, class OFFL>
const T * match (const OFFL *offl, std::string trigger, float reqdR, bool &pass, const std::string &containerSGKey="", std::tuple< bool, double, double >(*trigPosForMatchFunc)(const T *)=&MuonMatchingTool::trigPosForMatch< T >) const
 Function that searches for an online muon candidate of type T and judges if it is matched to a given offline muon.
template<class T>
const xAOD::MuonmatchOff (const EventContext &ctx, const T *trig, float reqdR, std::tuple< bool, double, double >(*offlinePosForMatchFunc)(const xAOD::Muon *), std::tuple< bool, double, double >(*trigPosForMatchFunc)(const T *)=&MuonMatchingTool::trigPosForMatch< T >) const
 Function that searches for an offline muon candidate matched to online muon of type T.
const Amg::Vector3D offlineMuonAtPivot (const EventContext &ctx, const xAOD::Muon *mu) const
const Trk::TrackParametersextTrackToTGC (const EventContext &ctx, const xAOD::TrackParticle *track) const
const Trk::TrackParametersextTrackToRPC (const EventContext &ctx, const xAOD::TrackParticle *track) const
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Static Private Member Functions

static double FermiFunction (double x, double x0, double w)
template<class T>
static std::tuple< bool, double, double > trigPosForMatch (const T *trig)

Private Attributes

const float m_L2SAreqdR = 0.25
const float m_L2CBreqdR = 0.03
const float m_L2InsideOutreqdR = 0.01
const float m_EFreqdR = 0.03
SG::ReadHandleKey< xAOD::MuonRoIContainerm_MuonRoIContainerKey {this, "MuonRoIContainerName", "LVL1MuonRoIs", "Level 1 muon container"}
SG::ReadHandleKey< xAOD::MuonContainerm_MuonContainerKey {this, "MuonContainerName", "Muons", "Offline muon container"}
SG::ReadHandleKey< xAOD::L2StandAloneMuonContainerm_L2MuonSAContainerKey {this, "L2StandAloneMuonContainerName", "HLT_MuonL2SAInfo", "L2MuonSA container"}
SG::ReadHandleKey< xAOD::MuonContainerm_EFFastRecoContainerKey {this, "EFFastRecoSAContainerName", "HLT_FastMuonsInfo", "EFFastRecoSA container (Phase2)"}
SG::ReadHandleKey< xAOD::L2CombinedMuonContainerm_L2muCombContainerKey {this, "L2CombinedMuonContainerName", "HLT_MuonL2CBInfo", "L2muComb container"}
SG::ReadHandleKey< xAOD::MuonContainerm_EFSAMuonContainerKey {this, "EFSAMuonContainerName", "HLT_Muons_RoI", "EFSAMuon container"}
SG::ReadHandleKey< xAOD::MuonContainerm_EFCBMuonContainerKey {this, "EFCBMuonContainerName", "HLT_MuonsCB_RoI", "EFCBMuon container"}
SG::ReadHandleKey< xAOD::MuonContainerm_EFSAFSMuonContainerKey {this, "EFSAFSMuonContainerName", "HLT_Muons_FS", "EFSAFSMuon container"}
SG::ReadHandleKey< xAOD::MuonContainerm_EFCBFSMuonContainerKey {this, "EFCBFSMuonContainerName", "HLT_MuonsCB_FS", "EFCBFSMuon container"}
SG::ReadHandleKey< xAOD::TrackParticleContainerm_MStrackContainerKey {this, "ExtrapolatedMStrackConntainner", "HLT_MSExtrapolatedMuons_RoITrackParticles", "ExtrapolatedMuons track container"}
SG::ReadHandleKey< xAOD::TrackParticleContainerm_CBtrackContainerKey {this, "CBtrackContainerName", "HLT_CBCombinedMuon_RoITrackParticles", "CombinedMuon track container"}
Gaudi::Property< bool > m_use_extrapolator {this, "UseExtrapolator", false, "Flag to enable the extrapolator for matching offline and trigger muons"}
ToolHandle< LVL1::ITrigThresholdDecisionToolm_thresholdTool
PublicToolHandle< Trig::TrigDecisionToolm_trigDec {this, "TrigDecisionTool", "Trig::TrigDecisionTool/TrigDecisionTool", "TrigDecisionTool"}
PublicToolHandle< Trk::IExtrapolatorm_extrapolator {"Trk::Extrapolator/AtlasExtrapolator"}
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default).
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default).
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Class that provides functionalities for searching for online muons close to a given offline muon and judging they are matched with the specific criteria.

Definition at line 29 of file MuonMatchingTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Member Enumeration Documentation

◆ L1Items

Enumerator
L1B_MU3V 
L1B_MU5VF 
L1B_MU8F 
L1B_MU14FCH 
L1B_MU14FCHR 
L1E_MU3V 
L1E_MU5VF 
L1E_MU8F 
L1E_MU14FCH 
L1E_MU14FCHR 
ERROR 

Definition at line 411 of file MuonMatchingTool.h.

Constructor & Destructor Documentation

◆ MuonMatchingTool()

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

Definition at line 11 of file MuonMatchingTool.cxx.

12 : AthAlgTool(type, name, parent)
13{}
AthAlgTool()
Default constructor:

Member Function Documentation

◆ declareGaudiProperty()

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

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

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

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

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ 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.

◆ evtStore()

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.

◆ 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

◆ extTrackToPivot()

const Trk::TrackParameters * MuonMatchingTool::extTrackToPivot ( const EventContext & ctx,
const xAOD::TrackParticle * track ) const

Function to extrapolate a Inner Detector track to the pivot plane i.e.

the middle layers of the Muon Spectrometer where the level 1 RoI is defined. This functionality is not available yet.

Parameters
ctxReference to the EventContext
trackInner Detector track that is extrapolated.
Returns
Pointer to the extrapolated track parameters.
See also
reqdRL1byPt
Todo
Return std::unique_ptr when this is available.

Definition at line 496 of file MuonMatchingTool.cxx.

496 {
497
498 const Trk::TrackParameters *extRPC = nullptr;
499 const Trk::TrackParameters *extTGC = nullptr;
500
501 if(!track) return extTGC;
502 double trkEta = track->eta();
503 double extEta =0.;
504 bool isBarrel = true;
505
506 if( fabs(trkEta)<1.05){
507 extRPC = extTrackToRPC(ctx, track);
508 if(!extRPC){
509 isBarrel = false;
510 extTGC = extTrackToTGC(ctx, track);
511 }
512 else{
513 isBarrel = true;
514 extEta = extRPC->position().eta();
515 if(fabs(extEta)>=1.05){
516 extTGC = extTrackToTGC(ctx, track);
517 isBarrel = (extTGC) == nullptr;
518 }
519 }
520 }
521 else if( fabs(trkEta)>=1.05 ){
522 extTGC = extTrackToTGC(ctx, track);
523 if(!extTGC){
524 isBarrel = true;
525 extRPC = extTrackToRPC(ctx, track);
526 }
527 else{
528 isBarrel = false;
529 extEta = extTGC->position().eta();
530 if(fabs(extEta)<1.05){
531 extRPC = extTrackToRPC(ctx, track);
532 isBarrel = (extRPC) != nullptr;
533 }
534 }
535 }
536
537 ATH_MSG_DEBUG("extTGC=" << extTGC << " extRPC=" << extRPC << " isBarrel=" << isBarrel);
538 if( isBarrel) delete extTGC;
539 else if(!isBarrel) delete extRPC;
540 return (isBarrel) ? extRPC : extTGC;
541}
#define ATH_MSG_DEBUG(x)
const Trk::TrackParameters * extTrackToTGC(const EventContext &ctx, const xAOD::TrackParticle *track) const
const Trk::TrackParameters * extTrackToRPC(const EventContext &ctx, const xAOD::TrackParticle *track) const
const Amg::Vector3D & position() const
Access method for the position.
ParametersBase< TrackParametersDim, Charged > TrackParameters

◆ extTrackToRPC()

const Trk::TrackParameters * MuonMatchingTool::extTrackToRPC ( const EventContext & ctx,
const xAOD::TrackParticle * track ) const
private

Definition at line 569 of file MuonMatchingTool.cxx.

569 {
570 ATH_MSG_DEBUG("extTrackToRPC");
571 if(!trk) return nullptr;
572 std::unique_ptr<Trk::CylinderSurface> barrel(new Trk::CylinderSurface( 7478., 15000. ));
573 const bool boundaryCheck = true;
574
575 const Trk::TrackParameters* param = m_extrapolator->extrapolate(ctx,
576 trk->perigeeParameters(),
577 *barrel,
579 boundaryCheck,
580 Trk::muon).release();
581 return param;
582}
PublicToolHandle< Trk::IExtrapolator > m_extrapolator
@ anyDirection

◆ extTrackToTGC()

const Trk::TrackParameters * MuonMatchingTool::extTrackToTGC ( const EventContext & ctx,
const xAOD::TrackParticle * track ) const
private

Definition at line 545 of file MuonMatchingTool.cxx.

545 {
546 ATH_MSG_DEBUG("extTrackToTGC");
547 if(!trk) return nullptr;
548 double TGC_Z = ( trk->eta()>0 )? 15153.0:-15153.0;
550 //object pointed by matrix will be deleted in destructer of DiscSurface, therefore release it
551 std::unique_ptr<Trk::DiscSurface> disc(new Trk::DiscSurface( matrix, 0., 15000.));
552 const bool boundaryCheck = true;
553
554 const Trk::TrackParameters* param = m_extrapolator->extrapolate(ctx,
555 trk->perigeeParameters(),
556 *disc,
558 boundaryCheck,
559 Trk::muon).release();
560
561 ATH_MSG_DEBUG("param=" << param
562 << " eta=" << ((param) ? param->position().eta() : 0)
563 << " phi=" << ((param) ? param->position().phi() : 0));;
564 return param;
565}
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 3, 1 > Vector3D

◆ FermiFunction()

double MuonMatchingTool::FermiFunction ( double x,
double x0,
double w )
staticprivate

Definition at line 490 of file MuonMatchingTool.cxx.

490 {
491 return 1/(1+TMath::Exp(-10*(x-x0)/w));
492}
#define x

◆ initialize()

StatusCode MuonMatchingTool::initialize ( )
overridevirtual

Definition at line 16 of file MuonMatchingTool.cxx.

16 {
17
18 ATH_CHECK( m_trigDec.retrieve() );
19 ATH_CHECK( m_thresholdTool.retrieve() );
21 ATH_CHECK( m_extrapolator.retrieve() );
22 }
23 ATH_CHECK( m_MuonContainerKey.initialize() );
24 ATH_CHECK( m_MuonRoIContainerKey.initialize() );
25 ATH_CHECK( m_L2MuonSAContainerKey.initialize() );
27 ATH_CHECK( m_L2muCombContainerKey.initialize() );
28 ATH_CHECK( m_EFSAMuonContainerKey.initialize() );
29 ATH_CHECK( m_EFCBMuonContainerKey.initialize() );
30 ATH_CHECK( m_EFSAFSMuonContainerKey.initialize() );
31 ATH_CHECK( m_EFCBFSMuonContainerKey.initialize() );
32 ATH_CHECK( m_MStrackContainerKey.initialize() );
33 ATH_CHECK( m_CBtrackContainerKey.initialize() );
34
35 return StatusCode::SUCCESS;
36}
#define ATH_CHECK
Evaluate an expression and check for errors.
ToolHandle< LVL1::ITrigThresholdDecisionTool > m_thresholdTool
SG::ReadHandleKey< xAOD::MuonRoIContainer > m_MuonRoIContainerKey
PublicToolHandle< Trig::TrigDecisionTool > m_trigDec
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_MStrackContainerKey
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_CBtrackContainerKey
SG::ReadHandleKey< xAOD::MuonContainer > m_EFFastRecoContainerKey
SG::ReadHandleKey< xAOD::MuonContainer > m_EFCBMuonContainerKey
SG::ReadHandleKey< xAOD::MuonContainer > m_EFCBFSMuonContainerKey
SG::ReadHandleKey< xAOD::MuonContainer > m_EFSAFSMuonContainerKey
SG::ReadHandleKey< xAOD::L2StandAloneMuonContainer > m_L2MuonSAContainerKey
SG::ReadHandleKey< xAOD::L2CombinedMuonContainer > m_L2muCombContainerKey
SG::ReadHandleKey< xAOD::MuonContainer > m_MuonContainerKey
Gaudi::Property< bool > m_use_extrapolator
SG::ReadHandleKey< xAOD::MuonContainer > m_EFSAMuonContainerKey

◆ 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.

◆ isMatchedL2CB()

bool MuonMatchingTool::isMatchedL2CB ( const xAOD::L2CombinedMuon * cbmu,
const xAOD::Muon * mu ) const

Definition at line 480 of file MuonMatchingTool.cxx.

480 {
481 float dR = xAOD::P4Helpers::deltaR(cbmu, mu, false);
482 return dR < m_L2CBreqdR;
483}
const float m_L2CBreqdR
double deltaR(double rapidity1, double phi1, double rapidity2, double phi2)
from bare bare rapidity,phi

◆ isMatchedL2InsideOut()

bool MuonMatchingTool::isMatchedL2InsideOut ( const xAOD::L2CombinedMuon * cbiomu,
const xAOD::Muon * mu ) const

Definition at line 485 of file MuonMatchingTool.cxx.

485 {
486 float dR = xAOD::P4Helpers::deltaR(cbiomu, mu, false);
487 return dR < m_L2InsideOutreqdR;
488}
const float m_L2InsideOutreqdR

◆ isMatchedL2SA()

bool MuonMatchingTool::isMatchedL2SA ( const xAOD::L2StandAloneMuon * samu,
const xAOD::Muon * mu ) const

Definition at line 468 of file MuonMatchingTool.cxx.

468 {
469 float offlEta = mu->eta();
470 float offlPhi = mu->phi();
471 float trigEta = samu->roiEta();
472 float trigPhi = samu->roiPhi();
473
474 float deta = offlEta - trigEta;
475 float dphi = xAOD::P4Helpers::deltaPhi(offlPhi, trigPhi);
476 float dR = sqrt(deta*deta + dphi*dphi);
477 return dR < m_L2SAreqdR;
478}
const float m_L2SAreqdR
float roiEta() const
Get and set RoI eta.
float roiPhi() const
Get and set RoI phi.
double deltaPhi(double phiA, double phiB)
delta Phi in range [-pi,pi[

◆ L1ItemStringToInt()

int MuonMatchingTool::L1ItemStringToInt ( const std::string & l1item,
int roiSource ) const
inlineprivate

Definition at line 412 of file MuonMatchingTool.h.

412 {
413 if( "L1_MU3V"==l1item) return roiSource==0 ? L1Items::L1B_MU3V : L1Items::L1E_MU3V;
414 if( "L1_MU5VF"==l1item) return roiSource==0 ? L1Items::L1B_MU5VF : L1Items::L1E_MU5VF;
415 if( "L1_MU8F"==l1item) return roiSource==0 ? L1Items::L1B_MU8F : L1Items::L1E_MU8F;
416 if( "L1_MU14FCH"==l1item) return roiSource==0 ? L1Items::L1B_MU14FCH : L1Items::L1E_MU14FCH;
417 if( "L1_MU14FCHR"==l1item) return roiSource==0 ? L1Items::L1B_MU14FCHR : L1Items::L1E_MU14FCHR;
418 return L1Items::ERROR;
419 }

◆ match()

template<class T, class OFFL>
const T * MuonMatchingTool::match ( const OFFL * offl,
std::string trigger,
float reqdR,
bool & pass,
const std::string & containerSGKey = "",
std::tuple< bool, double, double >(* trigPosForMatchFunc )(const T *) = &MuonMatchingTool::trigPosForMatch< T > ) const
private

Function that searches for an online muon candidate of type T and judges if it is matched to a given offline muon.

Parameters
offlPosition of the offline muon used for computing dR.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
reqdRRequirement of dR used for the matching. Note that reqdR is updated with the dR of the found candidate.
passTrue if the matched candidate passed the hypothesis step.
trigPosForMatchFuncFunction pointer that implements cuts for the online muon candidates.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.
See also
MuonMatchingTool.icc for the implementation and MuonMatchingTool.cxx for the instantiation.
Todo
Consider improving the argument list.

◆ matchEFCB() [1/2]

const xAOD::Muon * MuonMatchingTool::matchEFCB ( const xAOD::Muon * mu,
std::string trigger,
bool & pass ) const

Function that searches for an EF combined muon (EFCB) candidate and judges if it is matched to a given offline muon.

Parameters
muOffline muon around which EFCB candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
passTrue if the matched candidate passed the hypothesis step.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.

Definition at line 126 of file MuonMatchingTool.cxx.

126 {
127 ATH_MSG_DEBUG("MuonMonitoring::matchEFCB()");
128 const xAOD::TrackParticle* MuonTrack = mu->trackParticle(xAOD::Muon::TrackParticleType::Primary);
129 ATH_MSG_DEBUG("HLT_Muons_RoI CB Muon");
130 return MuonTrack ? match<xAOD::Muon>( MuonTrack, std::move(trig), m_EFreqdR, pass, "HLT_MuonsCB_RoI*.*", &MuonMatchingTool::trigPosForMatchCBTrack) : nullptr;
131}
const T * match(const OFFL *offl, std::string trigger, float reqdR, bool &pass, const std::string &containerSGKey="", std::tuple< bool, double, double >(*trigPosForMatchFunc)(const T *)=&MuonMatchingTool::trigPosForMatch< T >) const
Function that searches for an online muon candidate of type T and judges if it is matched to a given ...
static std::tuple< bool, double, double > trigPosForMatchCBTrack(const xAOD::Muon *mu)
TrackParticle_v1 TrackParticle
Reference the current persistent version:

◆ matchEFCB() [2/2]

const xAOD::Muon * MuonMatchingTool::matchEFCB ( const xAOD::TruthParticle * mu,
std::string trig,
bool & pass ) const

Function that searches for an EF combined muon (EFCB) candidate and judges if it is matched to a given truth muon.

Parameters
muTruth muon around which EFCB candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
passTrue if the matched candidate passed the hypothesis step.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.

Definition at line 121 of file MuonMatchingTool.cxx.

121 {
122 ATH_MSG_DEBUG("MuonMonitoring::matchEFCB() for TruthParticle");
123 return mu ? match<xAOD::Muon>( mu, std::move(trig), m_EFreqdR, pass, "HLT_MuonsCB_RoI*.*", &MuonMatchingTool::trigPosForMatchCBTrack) : nullptr;
124}

◆ matchEFCBFS() [1/2]

const xAOD::Muon * MuonMatchingTool::matchEFCBFS ( const xAOD::Muon * mu,
std::string trigger,
bool & pass ) const

Function that searches for an EF combined muon (EFCBFS) candidate and judges if it is matched to a given offline muon.

Parameters
muOffline muon around which EFCBFS candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
passTrue if the matched candidate passed the hypothesis step.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.

Definition at line 202 of file MuonMatchingTool.cxx.

202 {
203 ATH_MSG_DEBUG("MuonMonitoring::matchEFCBFS()");
204 const xAOD::TrackParticle* MuonTrack = mu->trackParticle(xAOD::Muon::TrackParticleType::Primary);
205 ATH_MSG_DEBUG("HLT_Muons_FS CB Muon");
206 return MuonTrack ? match<xAOD::Muon>( MuonTrack, std::move(trig), m_EFreqdR, pass, "HLT_MuonsCB_FS.*", &MuonMatchingTool::trigPosForMatchCBTrack) : nullptr;
207}

◆ matchEFCBFS() [2/2]

const xAOD::Muon * MuonMatchingTool::matchEFCBFS ( const xAOD::TruthParticle * mu,
std::string trig,
bool & pass ) const

Function that searches for an EF combined muon (EFCBFS) candidate and judges if it is matched to a given truth muon.

Parameters
muTruth muon around which EFCBFS candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
passTrue if the matched candidate passed the hypothesis step.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.

Definition at line 197 of file MuonMatchingTool.cxx.

197 {
198 ATH_MSG_DEBUG("MuonMonitoring::matchEFCBFS() for TruthParticle");
199 return mu ? match<xAOD::Muon>( mu, std::move(trig), m_EFreqdR, pass, "HLT_MuonsCB_FS.*", &MuonMatchingTool::trigPosForMatchCBTrack) : nullptr;
200}

◆ matchEFCBFSLinkInfo()

const TrigCompositeUtils::LinkInfo< xAOD::MuonContainer > MuonMatchingTool::matchEFCBFSLinkInfo ( const xAOD::Muon * mu,
std::string trig ) const

Function that searches for an EF combined muon (EFCBFS) candidate and judges if it is matched to a given track particle.

Parameters
muOffline muon around which EFCBFS candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
Returns
Pointer to the matched candidate. This is inValid link when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.

Definition at line 209 of file MuonMatchingTool.cxx.

209 {
210 ATH_MSG_DEBUG("MuonMonitoring::matchEFCBFSLinkInfo()");
211 bool pass = false;
212 TrigCompositeUtils::LinkInfo<xAOD::MuonContainer> muonLinkInfo;
213 const xAOD::TrackParticle* MuonTrack = mu->trackParticle(xAOD::Muon::TrackParticleType::Primary);
214 return MuonTrack ? matchLinkInfo<xAOD::Muon>(MuonTrack, std::move(trig), m_EFreqdR, pass, "HLT_MuonsCB_FS.*", &MuonMatchingTool::trigPosForMatchCBTrack) : muonLinkInfo;
215}
const TrigCompositeUtils::LinkInfo< DataVector< T > > matchLinkInfo(const OFFL *offl, std::string trigger, float reqdR, bool &pass, const std::string &containerSGKey="", std::tuple< bool, double, double >(*trigPosForMatchFunc)(const T *)=&MuonMatchingTool::trigPosForMatch< T >) const
Function that searches for an online muon candidate of type T closest to a given offline muon.

◆ matchEFCBFSReadHandle()

const xAOD::Muon * MuonMatchingTool::matchEFCBFSReadHandle ( const EventContext & ctx,
const xAOD::Muon * mu ) const

Function that searches for an EF combined muon (EFCBFS) candidate by ReadHandle and judges if it is matched to a given offlineCB muon.

Parameters
muOffline muon around which EFCBFS candidates are searched.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found.

Definition at line 217 of file MuonMatchingTool.cxx.

217 {
218 ATH_MSG_DEBUG("MuonMonitoring::matchEFCBFSReadHandle()");
219 const xAOD::TrackParticle* MuonTrack = mu->trackParticle(xAOD::Muon::TrackParticleType::Primary);
221}
const T * matchReadHandle(const OFFL *offl, float reqdR, SG::ReadHandleKey< DataVector< T > > ReadHandleKey, const EventContext &ctx, std::tuple< bool, double, double >(*trigPosForMatchFunc)(const T *)=&MuonMatchingTool::trigPosForMatch< T >) const
Function that searches for an online muon candidate of type T by ReadHandle and judges if it is match...

◆ matchEFCBLinkInfo()

const TrigCompositeUtils::LinkInfo< xAOD::MuonContainer > MuonMatchingTool::matchEFCBLinkInfo ( const xAOD::Muon * mu,
std::string trig ) const

Function that searches for an EF combined muon (EFCB) candidate and judges if it is matched to a given track particle.

Parameters
muOffline muon around which EFCB candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
Returns
Pointer to the matched candidate. This is inValid link when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.

Definition at line 133 of file MuonMatchingTool.cxx.

133 {
134 ATH_MSG_DEBUG("MuonMonitoring::matchEFCBLinkInfo()");
135 bool pass = false;
136 TrigCompositeUtils::LinkInfo<xAOD::MuonContainer> muonLinkInfo;
137 const xAOD::TrackParticle* MuonTrack = mu->trackParticle(xAOD::Muon::TrackParticleType::Primary);
138 return MuonTrack ? matchLinkInfo<xAOD::Muon>(MuonTrack, std::move(trig), m_EFreqdR, pass, "HLT_MuonsCB_RoI*.*", &MuonMatchingTool::trigPosForMatchCBTrack) : muonLinkInfo;
139}

◆ matchEFCBReadHandle()

const xAOD::Muon * MuonMatchingTool::matchEFCBReadHandle ( const EventContext & ctx,
const xAOD::Muon * mu ) const

Function that searches for an EF combined muon (EFCB) candidate by ReadHandle and judges if it is matched to a given offlineCB muon.

Parameters
muOffline muon around which EFCB candidates are searched.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found.

Definition at line 141 of file MuonMatchingTool.cxx.

141 {
142 ATH_MSG_DEBUG("MuonMonitoring::matchEFCBReadHandle()");
143 const xAOD::TrackParticle* MuonTrack = mu->trackParticle(xAOD::Muon::TrackParticleType::Primary);
145}

◆ matchEFIso() [1/2]

const xAOD::Muon * MuonMatchingTool::matchEFIso ( const xAOD::Muon * mu,
std::string trigger,
bool & pass ) const

Function that searches for an EF isolation muon (EFIso) candidate and judges if it is matched to a given offline muon.

Parameters
muOffline muon around which EFIso candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
passTrue if the matched candidate passed the hypothesis step.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.

Definition at line 223 of file MuonMatchingTool.cxx.

223 {
224 ATH_MSG_DEBUG("MuonMonitoring::matchEFIso()");
225 const xAOD::TrackParticle* MuonTrack = mu->trackParticle(xAOD::Muon::TrackParticleType::Primary);
226 return MuonTrack ? match<xAOD::Muon>( MuonTrack, std::move(trig), m_EFreqdR, pass, "HLT_MuonsIso", &MuonMatchingTool::trigPosForMatchCBTrack) : nullptr;
227}

◆ matchEFIso() [2/2]

const xAOD::Muon * MuonMatchingTool::matchEFIso ( const xAOD::TruthParticle * mu,
std::string trigger,
bool & pass ) const

Function that searches for an EF isolation muon (EFIso) candidate and judges if it is matched to a given truth muon.

Parameters
muTruth muon around which EFIso candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
passTrue if the matched candidate passed the hypothesis step.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.

Definition at line 229 of file MuonMatchingTool.cxx.

229 {
230 ATH_MSG_DEBUG("MuonMonitoring::matchEFIso() for truth particle");
231 return mu ? match<xAOD::Muon>( mu, std::move(trig), m_EFreqdR, pass, "HLT_MuonsIso", &MuonMatchingTool::trigPosForMatchCBTrack) : nullptr;
232}

◆ matchEFIsoLinkInfo()

const TrigCompositeUtils::LinkInfo< xAOD::MuonContainer > MuonMatchingTool::matchEFIsoLinkInfo ( const xAOD::Muon * mu,
std::string trig ) const

Function that searches for an EF isolation muon (EFIso) candidate and judges if it is matched to a given track particle.

Parameters
muOffline muon around which EFIso candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
Returns
Pointer to the matched candidate. This is inValid link when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.

Definition at line 265 of file MuonMatchingTool.cxx.

265 {
266 ATH_MSG_DEBUG("MuonMonitoring::matchEFCBLinkInfo()");
267 bool pass = false;
268 TrigCompositeUtils::LinkInfo<xAOD::MuonContainer> muonLinkInfo;
269 const xAOD::TrackParticle* MuonTrack = mu->trackParticle(xAOD::Muon::TrackParticleType::Primary);
270 return MuonTrack ? matchLinkInfo<xAOD::Muon>(MuonTrack, std::move(trig), m_EFreqdR, pass, "HLT_MuonsIso", &MuonMatchingTool::trigPosForMatchCBTrack) : muonLinkInfo;
271}

◆ matchEFSA() [1/2]

const xAOD::Muon * MuonMatchingTool::matchEFSA ( const xAOD::Muon * mu,
std::string trigger,
bool & pass ) const

Function that searches for an EF standalone muon (EFSA) candidate and judges if it is matched to a given offline muon.

Parameters
muOffline muon around which EFSA candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
passTrue if the matched candidate passed the hypothesis step.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.

Definition at line 71 of file MuonMatchingTool.cxx.

71 {
72 ATH_MSG_DEBUG("MuonMonitoring::matchEFSA()");
73 const xAOD::TrackParticle* MuonTrack = nullptr;
74 using Type = xAOD::Muon::TrackParticleType;
75 std::vector<Type> types { Type::ExtrapolatedMuonSpectrometerTrackParticle,
76 Type::MSOnlyExtrapolatedMuonSpectrometerTrackParticle,
77 Type::MuonSpectrometerTrackParticle};
78 for (Type type : types){
79 MuonTrack = mu->trackParticle(type);
80 ATH_MSG_DEBUG("HLT_Muons_RoI SA Muon");
81 if (MuonTrack) break;
82 }
83 return MuonTrack ? match<xAOD::Muon>(MuonTrack, std::move(trig), m_EFreqdR, pass, "HLT_Muons_RoI.*", &MuonMatchingTool::trigPosForMatchSATrack) : nullptr;
84}
static const std::vector< std::string > types
RootType Type
static std::tuple< bool, double, double > trigPosForMatchSATrack(const xAOD::Muon *mu)

◆ matchEFSA() [2/2]

const xAOD::Muon * MuonMatchingTool::matchEFSA ( const xAOD::TruthParticle * mu,
std::string trigger,
bool & pass ) const

Function that searches for an EF standalone muon (EFSA) candidate and judges if it is matched to a given truth muon.

Parameters
muTruth muon around which EFSA candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
passTrue if the matched candidate passed the hypothesis step.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.

Definition at line 86 of file MuonMatchingTool.cxx.

86 {
87 ATH_MSG_DEBUG("MuonMonitoring::matchEFSA() for truth particle");
88 return mu ? match<xAOD::Muon>(mu, std::move(trig), m_EFreqdR, pass, "HLT_Muons_RoI.*", &MuonMatchingTool::trigPosForMatchSATrack) : nullptr;
89}

◆ matchEFSAFS() [1/2]

const xAOD::Muon * MuonMatchingTool::matchEFSAFS ( const xAOD::Muon * mu,
std::string trigger,
bool & pass ) const

Function that searches for an EF FS standalone muon (EFSAFS) candidate and judges if it is matched to a given offline muon.

Parameters
muOffline muon around which EFSAFS candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
passTrue if the matched candidate passed the hypothesis step.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.

Definition at line 147 of file MuonMatchingTool.cxx.

147 {
148 ATH_MSG_DEBUG("MuonMonitoring::matchEFSAFS()");
149 const xAOD::TrackParticle* MuonTrack = nullptr;
150 using Type = xAOD::Muon::TrackParticleType;
151 std::vector<Type> types { Type::ExtrapolatedMuonSpectrometerTrackParticle,
152 Type::MSOnlyExtrapolatedMuonSpectrometerTrackParticle,
153 Type::MuonSpectrometerTrackParticle};
154 for (Type type : types){
155 MuonTrack = mu->trackParticle(type);
156 ATH_MSG_DEBUG("HLT_Muons_FS SA Muon");
157 if (MuonTrack) break;
158 }
159 return MuonTrack ? match<xAOD::Muon>(MuonTrack, std::move(trig), m_EFreqdR, pass, "HLT_Muons_FS.*", &MuonMatchingTool::trigPosForMatchSATrack) : nullptr;
160}

◆ matchEFSAFS() [2/2]

const xAOD::Muon * MuonMatchingTool::matchEFSAFS ( const xAOD::TruthParticle * mu,
std::string trigger,
bool & pass ) const

Function that searches for an EF standalone muon (EFSAFS) candidate and judges if it is matched to a given truth muon.

Parameters
muTruth muon around which EFSAFS candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
passTrue if the matched candidate passed the hypothesis step.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.

Definition at line 162 of file MuonMatchingTool.cxx.

162 {
163 ATH_MSG_DEBUG("MuonMonitoring::matchEFSAFS() for truth particle");
164 return mu ? match<xAOD::Muon>(mu, std::move(trig), m_EFreqdR, pass, "HLT_Muons_FS.*", &MuonMatchingTool::trigPosForMatchSATrack) : nullptr;
165}

◆ matchEFSAFSLinkInfo()

const TrigCompositeUtils::LinkInfo< xAOD::MuonContainer > MuonMatchingTool::matchEFSAFSLinkInfo ( const xAOD::Muon * mu,
std::string trig ) const

Function that searches for an EF standalone muon (EFSAFS) candidate and judges if it is matched to a given track particle.

Parameters
muOffline muon around which EFSAFS candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
Returns
Pointer to the matched candidate. This is inValid link when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.

Definition at line 167 of file MuonMatchingTool.cxx.

167 {
168 ATH_MSG_DEBUG("MuonMonitoring::matchEFSAFSLinkInfo()");
169 bool pass = false;
170 TrigCompositeUtils::LinkInfo<xAOD::MuonContainer> muonLinkInfo;
171 const xAOD::TrackParticle* MuonTrack = nullptr;
172 using Type = xAOD::Muon::TrackParticleType;
173 std::vector<Type> types { Type::ExtrapolatedMuonSpectrometerTrackParticle,
174 Type::MSOnlyExtrapolatedMuonSpectrometerTrackParticle,
175 Type::MuonSpectrometerTrackParticle};
176 for (Type type : types){
177 MuonTrack = mu->trackParticle(type);
178 if (MuonTrack) break;
179 }
180 return MuonTrack ? matchLinkInfo<xAOD::Muon>(MuonTrack, std::move(trig), m_EFreqdR, pass, "HLT_Muons_FS.*", &MuonMatchingTool::trigPosForMatchSATrack) : muonLinkInfo;
181}

◆ matchEFSAFSReadHandle()

const xAOD::Muon * MuonMatchingTool::matchEFSAFSReadHandle ( const EventContext & ctx,
const xAOD::Muon * mu ) const

Function that searches for an EF standalone muon (EFSAFS) candidate by ReadHandle and judges if it is matched to a given offlineSAFS muon.

Parameters
muOffline muon around which EFSAFS candidates are searched.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found.

Definition at line 183 of file MuonMatchingTool.cxx.

183 {
184 ATH_MSG_DEBUG("MuonMonitoring::matchEFSAFSReadHandle()");
185 const xAOD::TrackParticle* MuonTrack = nullptr;
186 using Type = xAOD::Muon::TrackParticleType;
187 std::vector<Type> types { Type::ExtrapolatedMuonSpectrometerTrackParticle,
188 Type::MSOnlyExtrapolatedMuonSpectrometerTrackParticle,
189 Type::MuonSpectrometerTrackParticle};
190 for (Type type : types){
191 MuonTrack = mu->trackParticle(type);
192 if (MuonTrack) break;
193 }
195}

◆ matchEFSALinkInfo()

const TrigCompositeUtils::LinkInfo< xAOD::MuonContainer > MuonMatchingTool::matchEFSALinkInfo ( const xAOD::Muon * mu,
std::string trig ) const

Function that searches for an EF standalone muon (EFSA) candidate and judges if it is matched to a given track particle.

Parameters
muOffline muon around which EFSA candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
Returns
Pointer to the matched candidate. This is inValid link when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.

Definition at line 91 of file MuonMatchingTool.cxx.

91 {
92 ATH_MSG_DEBUG("MuonMonitoring::matchEFSALinkInfo()");
93 bool pass = false;
94 TrigCompositeUtils::LinkInfo<xAOD::MuonContainer> muonLinkInfo;
95 const xAOD::TrackParticle* MuonTrack = nullptr;
96 using Type = xAOD::Muon::TrackParticleType;
97 std::vector<Type> types { Type::ExtrapolatedMuonSpectrometerTrackParticle,
98 Type::MSOnlyExtrapolatedMuonSpectrometerTrackParticle,
99 Type::MuonSpectrometerTrackParticle};
100 for (Type type : types){
101 MuonTrack = mu->trackParticle(type);
102 if (MuonTrack) break;
103 }
104 return MuonTrack ? matchLinkInfo<xAOD::Muon>(MuonTrack, std::move(trig), m_EFreqdR, pass, "HLT_Muons_RoI.*", &MuonMatchingTool::trigPosForMatchSATrack) : muonLinkInfo;
105}

◆ matchEFSAReadHandle()

const xAOD::Muon * MuonMatchingTool::matchEFSAReadHandle ( const EventContext & ctx,
const xAOD::Muon * mu ) const

Function that searches for an EF standalone muon (EFSA) candidate by ReadHandle and judges if it is matched to a given offlineSA muon.

Parameters
muOffline muon around which EFSA candidates are searched.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found.

Definition at line 107 of file MuonMatchingTool.cxx.

107 {
108 ATH_MSG_DEBUG("MuonMonitoring::matchEFSAReadHandle()");
109 const xAOD::TrackParticle* MuonTrack = nullptr;
110 using Type = xAOD::Muon::TrackParticleType;
111 std::vector<Type> types { Type::ExtrapolatedMuonSpectrometerTrackParticle,
112 Type::MSOnlyExtrapolatedMuonSpectrometerTrackParticle,
113 Type::MuonSpectrometerTrackParticle};
114 for (Type type : types){
115 MuonTrack = mu->trackParticle(type);
116 if (MuonTrack) break;
117 }
119}

◆ matchFastRecoSA() [1/2]

const xAOD::Muon * MuonMatchingTool::matchFastRecoSA ( const EventContext & ctx,
const xAOD::Muon * mu,
const std::string & trigger,
bool & pass ) const

Function that searches for a EF fast reco muon (PhaseII) candidate and judges if it is matched to a given offline muon.

Parameters
muOffline muon around which L2MuonSA candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_newfast_ivarmedium_L1MU20, etc.
passTrue if the matched candidate passed the hypothesis step.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.

Definition at line 286 of file MuonMatchingTool.cxx.

286 {
287 ATH_MSG_DEBUG("MuonMonitoring::matchFastRecoSA()");
288 float reqdR = m_L2SAreqdR;
290 reqdR = reqdRL1byPt(mu->pt());
291 const Amg::Vector3D extPos = offlineMuonAtPivot(ctx, mu);
292 if(extPos.norm()>ZERO_LIMIT){
293 return match<xAOD::Muon>( &extPos, trig, reqdR, pass);
294 }
295 }
296 return match<xAOD::Muon>( mu, trig, reqdR, pass, "HLT_FastMuonsInfo");
297}
const float ZERO_LIMIT
static double reqdRL1byPt(double mupt)
Function compute dR used for matching offline muons and level 1 RoIs at the pivot plane.
const Amg::Vector3D offlineMuonAtPivot(const EventContext &ctx, const xAOD::Muon *mu) const

◆ matchFastRecoSA() [2/2]

const xAOD::Muon * MuonMatchingTool::matchFastRecoSA ( const xAOD::TruthParticle * mu,
const std::string & trigger,
bool & pass ) const

Function that searches for a EF fast reco standalone muon (PhaseII) candidate and judges if it is matched to a given truth particle.

Parameters
muTruth particle around which the candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_newfast_ivarmedium_L1MU20, etc.
passTrue if the matched candidate passed the hypothesis step.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.

Definition at line 304 of file MuonMatchingTool.cxx.

304 {
305 ATH_MSG_DEBUG("MuonMonitoring::matchFastRecoSA() from TruthParticle");
306 return match<xAOD::Muon>( mu, trig, m_L2SAreqdR, pass, "HLT_FastMuonsInfo");
307}

◆ matchFastRecoSAReadHandle()

const xAOD::Muon * MuonMatchingTool::matchFastRecoSAReadHandle ( const EventContext & ctx,
const xAOD::Muon * mu ) const

Function that searches for a EF fast reco standalone muon (PhaseII) candidate by ReadHandle and judges if it is matched to a given offlineSA muon.

Parameters
muOffline muon around which L2MuonSA candidates are searched.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found.

Definition at line 343 of file MuonMatchingTool.cxx.

343 {
344 ATH_MSG_DEBUG("MuonMonitoring::matchFastRecoSAReadHandle()");
345 float reqdR = m_L2SAreqdR;
347 reqdR = reqdRL1byPt(mu->pt());
348 const Amg::Vector3D extPos = offlineMuonAtPivot(ctx, mu);
349 if(extPos.norm()>ZERO_LIMIT){
350 return matchReadHandle<xAOD::Muon>( &extPos, reqdR, m_EFFastRecoContainerKey, ctx);
351 }
352 }
353 const xAOD::TrackParticle* MuonTrack = nullptr;
354 using Type = xAOD::Muon::TrackParticleType;
355 std::vector<Type> types { Type::ExtrapolatedMuonSpectrometerTrackParticle,
356 Type::MSOnlyExtrapolatedMuonSpectrometerTrackParticle,
357 Type::MuonSpectrometerTrackParticle};
358 for (Type type : types){
359 MuonTrack = mu->trackParticle(type);
360 if (MuonTrack) break;
361 }
362 return MuonTrack ? matchReadHandle<xAOD::Muon>( MuonTrack, reqdR, m_EFFastRecoContainerKey, ctx) : nullptr;
363}

◆ matchFastRecoSAtoOff()

const xAOD::Muon * MuonMatchingTool::matchFastRecoSAtoOff ( const EventContext & ctx,
const xAOD::Muon * samu ) const

Function that searches for an offline muon matched to EF Fast Reco SA muon.

Parameters
ctxReference to the EventContext needed for accessing the Muons container.
samuthe given online muon
Returns
Pointer to the matched offline muon. This is nullptr when there is no muon found.

Definition at line 459 of file MuonMatchingTool.cxx.

459 {
461}
static std::tuple< bool, double, double > PosForMatchSATrack(const xAOD::Muon *mu)
const xAOD::Muon * matchOff(const EventContext &ctx, const T *trig, float reqdR, std::tuple< bool, double, double >(*offlinePosForMatchFunc)(const xAOD::Muon *), std::tuple< bool, double, double >(*trigPosForMatchFunc)(const T *)=&MuonMatchingTool::trigPosForMatch< T >) const
Function that searches for an offline muon candidate matched to online muon of type T.

◆ matchL1() [1/3]

const xAOD::MuonRoI * MuonMatchingTool::matchL1 ( const EventContext & ctx,
const xAOD::Muon * mu,
const std::string & trigger,
bool & pass ) const

Function that searches for a Level 1 muon candidate and judges if it is matched to a given offline muon.

Parameters
muOffline muon around which Level 1 candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
passTrue if a candidate is found.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found.

Definition at line 432 of file MuonMatchingTool.cxx.

432 {
433 double refEta = mu->eta();
434 double refPhi = mu->phi();
435 double reqdR = 0.25;
436
438 reqdR = reqdRL1byPt(mu->pt());
439 const Amg::Vector3D extPos = offlineMuonAtPivot(ctx, mu);
440 if(extPos.norm()>ZERO_LIMIT){
441 refEta = extPos.eta();
442 refPhi = extPos.phi();
443 }
444 }
445 return matchL1(ctx, refEta, refPhi, reqdR, trig, pass);
446}
const xAOD::MuonRoI * matchL1(const EventContext &ctx, const xAOD::Muon *mu, const std::string &trigger, bool &pass) const
Function that searches for a Level 1 muon candidate and judges if it is matched to a given offline mu...

◆ matchL1() [2/3]

const xAOD::MuonRoI * MuonMatchingTool::matchL1 ( const EventContext & ctx,
const xAOD::TruthParticle * mu,
const std::string & trigger,
bool & pass ) const

Function that searches for a Level 1 truth muon candidate and judges if it is matched to a given offline muon.

Parameters
muTruth muon around which Level 1 candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
passTrue if a candidate is found.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found.

Definition at line 448 of file MuonMatchingTool.cxx.

448 {
449 double refEta = mu->eta();
450 double refPhi = mu->phi();
451 double reqdR = 0.25;
452 return matchL1(ctx, refEta, refPhi, reqdR, trig, pass);
453}

◆ matchL1() [3/3]

const xAOD::MuonRoI * MuonMatchingTool::matchL1 ( const EventContext & ctx,
double eta,
double phi,
double dR,
const std::string & trigger,
bool & pass ) const

Function that dR matches L1 muon candidates.

Parameters
etaEta of muon around which Level 1 candidates are searched.
phiPhi of muon around which Level 1 candidates are searched.
dRdR limit within which a match is accepted.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
passTrue if a candidate is found.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found.

Retrieve the chain configuration and the lower name corresponding to the L1 threshold

Definition at line 387 of file MuonMatchingTool.cxx.

387 {
388
390 const TrigConf::HLTChain* chainCfg = m_trigDec->ExperimentalAndExpertMethods().getChainConfigurationDetails(trig);
391 const std::string L1toMatch = chainCfg->lower_chain_name().substr(3);
392
393 SG::ReadHandle<xAOD::MuonRoIContainer> L1rois(m_MuonRoIContainerKey, ctx);
394 const xAOD::MuonRoI *closest = nullptr;
395
396 for (const xAOD::MuonRoI* l1muon : *L1rois){
397
398 // get all L1 thresholds from the L1 menu along with whether the L1roi passed each of those or not
399 const std::vector<std::pair<std::shared_ptr<TrigConf::L1Threshold>, bool> > L1thr_list = m_thresholdTool-> getThresholdDecisions(
400 l1muon->roiWord(), ctx);
401
402 // check the L1 threshold we are looking for
403 bool L1thr_isMatch = false;
404 for(const std::pair<std::shared_ptr<TrigConf::L1Threshold>, bool>& L1thr : L1thr_list){
405 if (L1toMatch == L1thr.first->name()){
406 L1thr_isMatch = L1thr.second;
407 break;
408 }
409 }
410 if (!L1thr_isMatch) continue;
411
412 double l1muonEta = l1muon->eta();
413 double l1muonPhi = l1muon->phi();
414
415 double deta = refEta - l1muonEta;
416 double dphi = xAOD::P4Helpers::deltaPhi(refPhi, l1muonPhi);
417 double dR = std::sqrt(deta*deta + dphi*dphi);
418 ATH_MSG_DEBUG("L1 muon candidate eta=" << l1muonEta << " phi=" << l1muonPhi << " dR=" << dR);
419 if( dR<reqdR ){
420 reqdR = dR;
421 pass = true;
422 closest = l1muon;
423 ATH_MSG_DEBUG("*** L1 muon eta=" << l1muonEta << " phi=" << l1muonPhi << " dR=" << dR << " isPassed=true" );
424 }
425 else{
426 ATH_MSG_DEBUG("*** L1 muon eta=" << l1muonEta << " phi=" << l1muonPhi << " dR=" << dR << " isPassed=false" );
427 }
428 }
429 return closest;
430}
const std::string & lower_chain_name() const
MuonRoI_v1 MuonRoI
Definition MuonRoI.h:15

◆ matchL2CB() [1/2]

const xAOD::L2CombinedMuon * MuonMatchingTool::matchL2CB ( const xAOD::Muon * mu,
std::string trigger,
bool & pass ) const

Function that searches for an L2 combined muon (L2muComb) candidate and judges if it is matched to a given offline muon.

Parameters
muOffline muon around which L2muComb candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
passTrue if the matched candidate passed the hypothesis step.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.

Definition at line 365 of file MuonMatchingTool.cxx.

365 {
366 ATH_MSG_DEBUG("MuonMonitoring::matchL2CB()");
367 return match<xAOD::L2CombinedMuon>( mu, std::move(trig), m_L2CBreqdR, pass, "HLT_MuonL2CBInfo");
368}

◆ matchL2CB() [2/2]

const xAOD::L2CombinedMuon * MuonMatchingTool::matchL2CB ( const xAOD::TruthParticle * mu,
std::string trigger,
bool & pass ) const

Definition at line 370 of file MuonMatchingTool.cxx.

370 {
371 ATH_MSG_DEBUG("MuonMonitoring::matchL2CB() from TruthParticle");
372 return match<xAOD::L2CombinedMuon>( mu, std::move(trig), m_L2CBreqdR, pass, "HLT_MuonL2CBInfo");
373}

◆ matchL2CBReadHandle()

const xAOD::L2CombinedMuon * MuonMatchingTool::matchL2CBReadHandle ( const EventContext & ctx,
const xAOD::Muon * mu ) const

Function that searches for an L2 combined muon (L2muComb) candidate by ReadHandle and judges if it is matched to a given offlineCB muon.

Parameters
muOffline muon around which L2muComb candidates are searched.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found.

Definition at line 381 of file MuonMatchingTool.cxx.

381 {
382 ATH_MSG_DEBUG("MuonMonitoring::matchL2CBReadHandle()");
383 const xAOD::TrackParticle* MuonTrack = mu->trackParticle(xAOD::Muon::TrackParticleType::Primary);
384 return MuonTrack ? matchReadHandle<xAOD::L2CombinedMuon>( MuonTrack, m_L2CBreqdR, m_L2muCombContainerKey, ctx) : nullptr;
385}

◆ matchL2CBtoOff()

const xAOD::Muon * MuonMatchingTool::matchL2CBtoOff ( const EventContext & ctx,
const xAOD::L2CombinedMuon * cbmu ) const

Function that searches for an offline muon matched to L2CB muon.

Parameters
ctxReference to the EventContext needed for accessing the Muons container.
cbmuthe given online muon
Returns
Pointer to the matched offline muon. This is nullptr when there is no muon found.

Definition at line 463 of file MuonMatchingTool.cxx.

463 {
465}
static std::tuple< bool, double, double > PosForMatchCBTrack(const xAOD::Muon *mu)

◆ matchL2SA() [1/2]

const xAOD::L2StandAloneMuon * MuonMatchingTool::matchL2SA ( const EventContext & ctx,
const xAOD::Muon * mu,
const std::string & trigger,
bool & pass ) const

Function that searches for an L2 standalone muon (L2MuonSA) candidate and judges if it is matched to a given offline muon.

Parameters
muOffline muon around which L2MuonSA candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
passTrue if the matched candidate passed the hypothesis step.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.

Definition at line 273 of file MuonMatchingTool.cxx.

273 {
274 ATH_MSG_DEBUG("MuonMonitoring::matchL2SA()");
275 float reqdR = m_L2SAreqdR;
277 reqdR = reqdRL1byPt(mu->pt());
278 const Amg::Vector3D extPos = offlineMuonAtPivot(ctx, mu);
279 if(extPos.norm()>ZERO_LIMIT){
280 return match<xAOD::L2StandAloneMuon>( &extPos, trig, reqdR, pass);
281 }
282 }
283 return match<xAOD::L2StandAloneMuon>( mu, trig, reqdR, pass, "HLT_MuonL2SAInfo");
284}

◆ matchL2SA() [2/2]

const xAOD::L2StandAloneMuon * MuonMatchingTool::matchL2SA ( const xAOD::TruthParticle * mu,
const std::string & trigger,
bool & pass ) const

Function that searches for an L2 standalone muon (L2MuonSA) candidate and judges if it is matched to a given truth particle.

Parameters
muTruth particle around which L2MuonSA candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
passTrue if the matched candidate passed the hypothesis step.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.

Definition at line 299 of file MuonMatchingTool.cxx.

299 {
300 ATH_MSG_DEBUG("MuonMonitoring::matchL2SA() from TruthParticle");
301 return match<xAOD::L2StandAloneMuon>( mu, trig, m_L2SAreqdR, pass, "HLT_MuonL2SAInfo");
302}

◆ matchL2SAReadHandle()

const xAOD::L2StandAloneMuon * MuonMatchingTool::matchL2SAReadHandle ( const EventContext & ctx,
const xAOD::Muon * mu ) const

Function that searches for an L2 standalone muon (L2MuonSA) candidate by ReadHandle and judges if it is matched to a given offlineSA muon.

Parameters
muOffline muon around which L2MuonSA candidates are searched.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found.

Definition at line 321 of file MuonMatchingTool.cxx.

321 {
322 ATH_MSG_DEBUG("MuonMonitoring::matchL2SAReadHandle()");
323 float reqdR = m_L2SAreqdR;
325 reqdR = reqdRL1byPt(mu->pt());
326 const Amg::Vector3D extPos = offlineMuonAtPivot(ctx, mu);
327 if(extPos.norm()>ZERO_LIMIT){
329 }
330 }
331 const xAOD::TrackParticle* MuonTrack = nullptr;
332 using Type = xAOD::Muon::TrackParticleType;
333 std::vector<Type> types { Type::ExtrapolatedMuonSpectrometerTrackParticle,
334 Type::MSOnlyExtrapolatedMuonSpectrometerTrackParticle,
335 Type::MuonSpectrometerTrackParticle};
336 for (Type type : types){
337 MuonTrack = mu->trackParticle(type);
338 if (MuonTrack) break;
339 }
340 return MuonTrack ? matchReadHandle<xAOD::L2StandAloneMuon>( MuonTrack, reqdR, m_L2MuonSAContainerKey, ctx) : nullptr;
341}

◆ matchL2SAtoOff()

const xAOD::Muon * MuonMatchingTool::matchL2SAtoOff ( const EventContext & ctx,
const xAOD::L2StandAloneMuon * samu ) const

Function that searches for an offline muon matched to L2SA muon.

Parameters
ctxReference to the EventContext needed for accessing the Muons container.
samuthe given online muon
Returns
Pointer to the matched offline muon. This is nullptr when there is no muon found.

Definition at line 455 of file MuonMatchingTool.cxx.

455 {
457}

◆ matchLinkInfo()

template<class T, class OFFL>
const TrigCompositeUtils::LinkInfo< DataVector< T > > MuonMatchingTool::matchLinkInfo ( const OFFL * offl,
std::string trigger,
float reqdR,
bool & pass,
const std::string & containerSGKey = "",
std::tuple< bool, double, double >(* trigPosForMatchFunc )(const T *) = &MuonMatchingTool::trigPosForMatch< T > ) const
private

Function that searches for an online muon candidate of type T closest to a given offline muon.

Parameters
offlPosition of the offline muon used for computing dR.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
trigPosForMatchFuncFunction pointer that implements cuts for the online muon candidates.
Returns
LinkInfo to the matched candidate. This is inValid link when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.
See also
MuonMatchingTool.icc for the implementation and MuonMatchingTool.cxx for the instantiation.
Todo
Consider improving the argument list.

◆ matchOff()

template<class T>
const xAOD::Muon * MuonMatchingTool::matchOff ( const EventContext & ctx,
const T * trig,
float reqdR,
std::tuple< bool, double, double >(* offlinePosForMatchFunc )(const xAOD::Muon *),
std::tuple< bool, double, double >(* trigPosForMatchFunc )(const T *) = &MuonMatchingTool::trigPosForMatch< T > ) const
private

Function that searches for an offline muon candidate matched to online muon of type T.

Parameters
trigPosition of the online muon used for computing dR.
reqdRRequirement of dR used for the matching. Note that reqdR is updated with the dR of the found candidate.
offlinePosForMatchFuncFunction pointer that implements cuts for the offline muon candidates.
trigPosForMatchFuncFunction pointer that implements cuts for the online muon candidates.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis, users should check pass for the decision.
See also
MuonMatchingTool.icc for the implementation and MuonMatchingTool.cxx for the instantiation.
Todo
Consider improving the argument list.

◆ matchReadHandle()

template<class T, class OFFL>
const T * MuonMatchingTool::matchReadHandle ( const OFFL * offl,
float reqdR,
SG::ReadHandleKey< DataVector< T > > ReadHandleKey,
const EventContext & ctx,
std::tuple< bool, double, double >(* trigPosForMatchFunc )(const T *) = &MuonMatchingTool::trigPosForMatch< T > ) const
private

Function that searches for an online muon candidate of type T by ReadHandle and judges if it is matched to a given offline muon.

Parameters
offlPosition of the offline muon used for computing dR.
reqdRRequirement of dR used for the matching. Note that reqdR is updated with the dR of the found candidate.
ReadHandleKeySG::ReadHandleKey of online muon.
ctxEventContext.
trigPosForMatchFuncFunction pointer that implements cuts for the online muon candidates.
Returns
Pointer to the matched candidate. This is nullptr when there is no candidate found.
See also
MuonMatchingTool.icc for the implementation and MuonMatchingTool.cxx for the instantiation.
Todo
Consider improving the argument list.

◆ msg()

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ 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 }

◆ offlineMuonAtPivot()

const Amg::Vector3D MuonMatchingTool::offlineMuonAtPivot ( const EventContext & ctx,
const xAOD::Muon * mu ) const
private

Definition at line 39 of file MuonMatchingTool.cxx.

39 {
40 const xAOD::TrackParticle* track = mu->trackParticle(xAOD::Muon::TrackParticleType::Primary);
41 std::unique_ptr<const Trk::TrackParameters> extPars(extTrackToPivot(ctx, track));
42 return extPars ? extPars->position() : Amg::Vector3D(0.,0.,0.);
43}
const Trk::TrackParameters * extTrackToPivot(const EventContext &ctx, const xAOD::TrackParticle *track) const
Function to extrapolate a Inner Detector track to the pivot plane i.e.

◆ 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.

◆ PosForMatchCBTrack()

std::tuple< bool, double, double > MuonMatchingTool::PosForMatchCBTrack ( const xAOD::Muon * mu)
static

Definition at line 65 of file MuonMatchingTool.cxx.

65 {
66 const xAOD::TrackParticle* MuonTrack = mu->trackParticle(xAOD::Muon::TrackParticleType::CombinedTrackParticle);
67 return MuonTrack ? std::forward_as_tuple(true, MuonTrack->eta(), MuonTrack->phi()) : std::forward_as_tuple(false, 0., 0.);
68}
virtual double phi() const override final
The azimuthal angle ( ) of the particle (has range to .).
virtual double eta() const override final
The pseudorapidity ( ) of the particle.

◆ PosForMatchSATrack()

std::tuple< bool, double, double > MuonMatchingTool::PosForMatchSATrack ( const xAOD::Muon * mu)
static

Definition at line 60 of file MuonMatchingTool.cxx.

60 {
61 const xAOD::TrackParticle* MuonTrack = mu->trackParticle(xAOD::Muon::TrackParticleType::ExtrapolatedMuonSpectrometerTrackParticle);
62 return MuonTrack ? std::forward_as_tuple(true, MuonTrack->eta(), MuonTrack->phi()) : std::forward_as_tuple(false, 0., 0.);
63}

◆ 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();
384 }
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)

◆ 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 {
366 }

◆ reqdRL1byPt()

double MuonMatchingTool::reqdRL1byPt ( double mupt)
static

Function compute dR used for matching offline muons and level 1 RoIs at the pivot plane.

This is needed that the accuracy of the extrapolation by extTrackToPivot is dependent on the pt of the offline muon.

Parameters
muptOffline muon pt
Returns
Required dR between the offline muon and Level 1 muons

Definition at line 586 of file MuonMatchingTool.cxx.

586 {
587 double dR = 0.08;
588 if( mupt < 10000. ) {
589 dR = -0.00001*mupt + 0.18;
590 }
591 return dR;
592}

◆ SearchEFTrack()

const xAOD::TrackParticle * MuonMatchingTool::SearchEFTrack ( const EventContext & ctx,
const TrigCompositeUtils::LinkInfo< xAOD::MuonContainer > & muLinkInfo,
const SG::ReadHandleKey< xAOD::TrackParticleContainer > & ReadHandleKey ) const

Function that searches for an EF muon track (e.g.

ExtrapolatedMuonSpectrometerTrackParticle, CombinedTrackParticle) matched to a EF muon.

Parameters
ctxReference to the EventContext needed for accessing the TrackParticle container.
muLinkInfoLinkInfo of EF muon.
ReadHandleKeyof TrackParticle container.
Returns
Pointer to the matched TrackParticle. This is nullpt rwhen there is no TrackParticle found.

Definition at line 235 of file MuonMatchingTool.cxx.

235 {
236 const xAOD::TrackParticle* MatchedTrack = nullptr;
237 const ElementLink<xAOD::MuonContainer> muEL = muLinkInfo.link;
238 float EFEta = (*muEL)->eta();
239 float EFPhi = (*muEL)->phi();
240 float mindR = 999.;
241
242 SG::ReadHandle<xAOD::TrackParticleContainer> trackHandle(ReadHandleKey, ctx);
243 if ( !trackHandle.isValid() ) return MatchedTrack;
244
245 const auto track = m_trigDec->associateToEventView<xAOD::TrackParticleContainer>(trackHandle, muLinkInfo);
248
249 for (xAOD::TrackParticleContainer::const_iterator it = begin; it != end; ++it) {
250
251 float deta = EFEta - (*it)->eta();
252 float dphi = xAOD::P4Helpers::deltaPhi(EFPhi, (*it)->phi() );
253 float dR = std::sqrt(deta*deta + dphi*dphi);
254
255 if( dR< mindR ){
256 mindR = dR;
257 MatchedTrack = (*it);
258 }
259 }
260
261 return MatchedTrack;
262
263}
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".
ElementLink< T > link
Link to the feature.
Definition LinkInfo.h:55

◆ searchFastRecoSALinkInfo()

const TrigCompositeUtils::LinkInfo< xAOD::MuonContainer > MuonMatchingTool::searchFastRecoSALinkInfo ( const xAOD::Muon * mu,
std::string trigger ) const

Function that searches for the EF fast reco standalone candidate closest to a given offline muon.

Parameters
muOffline muon around which L2MuonSA candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_newfast_ivarmedium_L1MU20, etc.
Returns
LinkInfo to the found candidate. This is inValid link when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis and matched, users should check pass for the decision and pass for knowing if it is really matched.
Todo
Consider improving the argument list.

Definition at line 315 of file MuonMatchingTool.cxx.

315 {
316 ATH_MSG_DEBUG("MuonMonitoring::searchFastRecoLinkInfo()");
317 bool pass = false;
318 return matchLinkInfo<xAOD::Muon>( mu, std::move(trig), 1000., pass, "HLT_FastMuonsInfo");
319}

◆ searchL2CBLinkInfo()

const TrigCompositeUtils::LinkInfo< xAOD::L2CombinedMuonContainer > MuonMatchingTool::searchL2CBLinkInfo ( const xAOD::Muon * mu,
std::string trigger ) const

Function that searches for the L2 combined muon (L2muComb) candidate closest to a given offline muon.

Parameters
muOffline muon around which L2MuonSA candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
Returns
LinkInfo to the found candidate. This is inValid link when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis and matched, users should check pass for the decision and pass for knowing if it is really matched.
Todo
Consider improving the argument list.

Definition at line 375 of file MuonMatchingTool.cxx.

375 {
376 ATH_MSG_DEBUG("MuonMonitoring::searchL2CBLinkInfo()");
377 bool pass = false;
378 return matchLinkInfo<xAOD::L2CombinedMuon>( mu, std::move(trig), 1000., pass, "HLT_MuonL2CBInfo");
379}

◆ searchL2SALinkInfo()

const TrigCompositeUtils::LinkInfo< xAOD::L2StandAloneMuonContainer > MuonMatchingTool::searchL2SALinkInfo ( const xAOD::Muon * mu,
std::string trigger ) const

Function that searches for the L2 standalone muon (L2MuonSA) candidate closest to a given offline muon.

Parameters
muOffline muon around which L2MuonSA candidates are searched.
triggerConsidered chain name, e.g. HLT_mu26_ivarmedium_L1MU20, etc.
Returns
LinkInfo to the found candidate. This is inValid link when there is no candidate found. Important: a valid pointer doesn't mean that it passed the hypothesis and matched, users should check pass for the decision and pass for knowing if it is really matched.
Todo
Consider improving the argument list.

Definition at line 309 of file MuonMatchingTool.cxx.

309 {
310 ATH_MSG_DEBUG("MuonMonitoring::searchL2SALinkInfo()");
311 bool pass = false;
312 return matchLinkInfo<xAOD::L2StandAloneMuon>( mu, std::move(trig), 1000., pass, "HLT_MuonL2SAInfo");
313}

◆ 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 asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, and AthCheckedComponent<::AthAlgTool >.

◆ 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.

◆ trigPosForMatch()

template<class T>
std::tuple< bool, double, double > MuonMatchingTool::trigPosForMatch ( const T * trig)
inlinestaticprivate

◆ trigPosForMatchCBTrack()

std::tuple< bool, double, double > MuonMatchingTool::trigPosForMatchCBTrack ( const xAOD::Muon * mu)
static

Definition at line 56 of file MuonMatchingTool.cxx.

56 {
57 return mu->muonType() == xAOD::Muon::MuonType::Combined ? std::forward_as_tuple(true, mu->eta(), mu->phi()) : std::forward_as_tuple(false, 0., 0.);
58}

◆ trigPosForMatchSATrack()

std::tuple< bool, double, double > MuonMatchingTool::trigPosForMatchSATrack ( const xAOD::Muon * mu)
static

Definition at line 52 of file MuonMatchingTool.cxx.

52 {
53 return mu->muonType() == xAOD::Muon::MuonType::MuonStandAlone ? std::forward_as_tuple(true, mu->eta(), mu->phi()) : std::forward_as_tuple(false, 0., 0.);
54}

◆ 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) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_CBtrackContainerKey

SG::ReadHandleKey<xAOD::TrackParticleContainer> MuonMatchingTool::m_CBtrackContainerKey {this, "CBtrackContainerName", "HLT_CBCombinedMuon_RoITrackParticles", "CombinedMuon track container"}
private

Definition at line 509 of file MuonMatchingTool.h.

509{this, "CBtrackContainerName", "HLT_CBCombinedMuon_RoITrackParticles", "CombinedMuon track container"};

◆ 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_EFCBFSMuonContainerKey

SG::ReadHandleKey<xAOD::MuonContainer> MuonMatchingTool::m_EFCBFSMuonContainerKey {this, "EFCBFSMuonContainerName", "HLT_MuonsCB_FS", "EFCBFSMuon container"}
private

Definition at line 507 of file MuonMatchingTool.h.

507{this, "EFCBFSMuonContainerName", "HLT_MuonsCB_FS", "EFCBFSMuon container"};

◆ m_EFCBMuonContainerKey

SG::ReadHandleKey<xAOD::MuonContainer> MuonMatchingTool::m_EFCBMuonContainerKey {this, "EFCBMuonContainerName", "HLT_MuonsCB_RoI", "EFCBMuon container"}
private

Definition at line 505 of file MuonMatchingTool.h.

505{this, "EFCBMuonContainerName", "HLT_MuonsCB_RoI", "EFCBMuon container"};

◆ m_EFFastRecoContainerKey

SG::ReadHandleKey<xAOD::MuonContainer> MuonMatchingTool::m_EFFastRecoContainerKey {this, "EFFastRecoSAContainerName", "HLT_FastMuonsInfo", "EFFastRecoSA container (Phase2)"}
private

Definition at line 502 of file MuonMatchingTool.h.

502{this, "EFFastRecoSAContainerName", "HLT_FastMuonsInfo", "EFFastRecoSA container (Phase2)"};

◆ m_EFreqdR

const float MuonMatchingTool::m_EFreqdR = 0.03
private

Definition at line 424 of file MuonMatchingTool.h.

◆ m_EFSAFSMuonContainerKey

SG::ReadHandleKey<xAOD::MuonContainer> MuonMatchingTool::m_EFSAFSMuonContainerKey {this, "EFSAFSMuonContainerName", "HLT_Muons_FS", "EFSAFSMuon container"}
private

Definition at line 506 of file MuonMatchingTool.h.

506{this, "EFSAFSMuonContainerName", "HLT_Muons_FS", "EFSAFSMuon container"};

◆ m_EFSAMuonContainerKey

SG::ReadHandleKey<xAOD::MuonContainer> MuonMatchingTool::m_EFSAMuonContainerKey {this, "EFSAMuonContainerName", "HLT_Muons_RoI", "EFSAMuon container"}
private

Definition at line 504 of file MuonMatchingTool.h.

504{this, "EFSAMuonContainerName", "HLT_Muons_RoI", "EFSAMuon container"};

◆ 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_extrapolator

PublicToolHandle<Trk::IExtrapolator> MuonMatchingTool::m_extrapolator {"Trk::Extrapolator/AtlasExtrapolator"}
private

Definition at line 519 of file MuonMatchingTool.h.

519{"Trk::Extrapolator/AtlasExtrapolator"};

◆ m_L2CBreqdR

const float MuonMatchingTool::m_L2CBreqdR = 0.03
private

Definition at line 422 of file MuonMatchingTool.h.

◆ m_L2InsideOutreqdR

const float MuonMatchingTool::m_L2InsideOutreqdR = 0.01
private

Definition at line 423 of file MuonMatchingTool.h.

◆ m_L2muCombContainerKey

SG::ReadHandleKey<xAOD::L2CombinedMuonContainer> MuonMatchingTool::m_L2muCombContainerKey {this, "L2CombinedMuonContainerName", "HLT_MuonL2CBInfo", "L2muComb container"}
private

Definition at line 503 of file MuonMatchingTool.h.

503{this, "L2CombinedMuonContainerName", "HLT_MuonL2CBInfo", "L2muComb container"};

◆ m_L2MuonSAContainerKey

SG::ReadHandleKey<xAOD::L2StandAloneMuonContainer> MuonMatchingTool::m_L2MuonSAContainerKey {this, "L2StandAloneMuonContainerName", "HLT_MuonL2SAInfo", "L2MuonSA container"}
private

Definition at line 501 of file MuonMatchingTool.h.

501{this, "L2StandAloneMuonContainerName", "HLT_MuonL2SAInfo", "L2MuonSA container"};

◆ m_L2SAreqdR

const float MuonMatchingTool::m_L2SAreqdR = 0.25
private

Definition at line 421 of file MuonMatchingTool.h.

◆ m_MStrackContainerKey

SG::ReadHandleKey<xAOD::TrackParticleContainer> MuonMatchingTool::m_MStrackContainerKey {this, "ExtrapolatedMStrackConntainner", "HLT_MSExtrapolatedMuons_RoITrackParticles", "ExtrapolatedMuons track container"}
private

Definition at line 508 of file MuonMatchingTool.h.

508{this, "ExtrapolatedMStrackConntainner", "HLT_MSExtrapolatedMuons_RoITrackParticles", "ExtrapolatedMuons track container"};

◆ m_MuonContainerKey

SG::ReadHandleKey<xAOD::MuonContainer> MuonMatchingTool::m_MuonContainerKey {this, "MuonContainerName", "Muons", "Offline muon container"}
private

Definition at line 500 of file MuonMatchingTool.h.

500{this, "MuonContainerName", "Muons", "Offline muon container"};

◆ m_MuonRoIContainerKey

SG::ReadHandleKey<xAOD::MuonRoIContainer> MuonMatchingTool::m_MuonRoIContainerKey {this, "MuonRoIContainerName", "LVL1MuonRoIs", "Level 1 muon container"}
private

Definition at line 499 of file MuonMatchingTool.h.

499{this, "MuonRoIContainerName", "LVL1MuonRoIs", "Level 1 muon container"};

◆ m_thresholdTool

ToolHandle<LVL1::ITrigThresholdDecisionTool> MuonMatchingTool::m_thresholdTool
private
Initial value:
{
this, "TrigThresholdDecisionTool", "LVL1::TrigThresholdDecisionTool/LVL1__TrigThresholdDecisionTool",
"Tool to get pass/fail of each trigger threshold"}

Definition at line 515 of file MuonMatchingTool.h.

515 {
516 this, "TrigThresholdDecisionTool", "LVL1::TrigThresholdDecisionTool/LVL1__TrigThresholdDecisionTool",
517 "Tool to get pass/fail of each trigger threshold"};

◆ m_trigDec

PublicToolHandle<Trig::TrigDecisionTool> MuonMatchingTool::m_trigDec {this, "TrigDecisionTool", "Trig::TrigDecisionTool/TrigDecisionTool", "TrigDecisionTool"}
private

Definition at line 518 of file MuonMatchingTool.h.

518{this, "TrigDecisionTool", "Trig::TrigDecisionTool/TrigDecisionTool", "TrigDecisionTool"};

◆ m_use_extrapolator

Gaudi::Property<bool> MuonMatchingTool::m_use_extrapolator {this, "UseExtrapolator", false, "Flag to enable the extrapolator for matching offline and trigger muons"}
private

Definition at line 512 of file MuonMatchingTool.h.

512{this, "UseExtrapolator", false, "Flag to enable the extrapolator for matching offline and trigger muons"};

◆ 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: