ATLAS Offline Software
Loading...
Searching...
No Matches
xAODMaker::MuonCnvAlg Class Reference

Algorithm creating xAOD::Muons from Muons. More...

#include <MuonCnvAlg.h>

Inheritance diagram for xAODMaker::MuonCnvAlg:
Collaboration diagram for xAODMaker::MuonCnvAlg:

Public Member Functions

 MuonCnvAlg (const std::string &name, ISvcLocator *svcLoc)
 Regular algorithm constructor.
virtual StatusCode initialize ()
 Function initialising the algorithm.
virtual StatusCode execute ()
 Function executing the algorithm.
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
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 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

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

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

void setLinks (const Analysis::Muon &aodmuon, xAOD::Muon &xaodmuon) const
void setMuonHitContent (const Analysis::Muon &aodmuon, xAOD::Muon &xaodmuon)
ElementLink< xAOD::TrackParticleContainergetNewLink (const ElementLink< Rec::TrackParticleContainer > &oldLink, const std::string &name) const
xAOD::Muon::Author convertAuthor (MuonParameters::Author aodAuthor)
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 void setParameters (const Analysis::Muon &aodmuon, xAOD::Muon &xaodmuon)
static void checkAndSetParameter (MuonParameters::ParamDef aodParameter, xAOD::Muon::ParamDef xaodParameter, const Analysis::Muon &aodmuon, xAOD::Muon &xaodmuon)
static void setIsolations (const Analysis::Muon &aodmuon, xAOD::Muon &xaodmuon)
static void checkAndSetIsolation (MuonParameters::ParamDef aodParameter, xAOD::Iso::IsolationType xaodParameter, const Analysis::Muon &aodmuon, xAOD::Muon &xaodmuon)

Private Attributes

std::string m_aodContainerName
 The key of the input CaloClusterContainer.
std::string m_xaodContainerName
 The key for the output xAOD::CaloClusterContainer.
std::string m_inDetTrackParticles
 Location/Key for xAOD::TrackParticles from ID.
std::string m_saTrackParticles
 Location/Key for MS SA (extrap to beamline) xAOD::TrackParticles.
std::string m_cbTrackParticles
 Location/Key for combined fit xAOD::TrackParticles.
std::string m_mgTrackParticles
 Location/Key for MuGirl combined fit xAOD::TrackParticles; needed in conversion from release 17.
ToolHandle< xAOD::IMuonDressingToolm_muonDressingTool
DataObjIDColl m_extendedExtraObjects
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

Algorithm creating xAOD::Muons from Muons.

   This algorithm can be used to translate the Muons coming
   from an AOD, and create xAOD::Muon objects out of them
   for an output xAOD.
Author
Edward Moyse Edwar.nosp@m.d.Mo.nosp@m.yse@c.nosp@m.ern..nosp@m.ch

Definition at line 41 of file MuonCnvAlg.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ MuonCnvAlg()

xAODMaker::MuonCnvAlg::MuonCnvAlg ( const std::string & name,
ISvcLocator * svcLoc )

Regular algorithm constructor.

Definition at line 19 of file MuonCnvAlg.cxx.

21 : AthAlgorithm( name, svcLoc ),
22 m_muonDressingTool("MuonCombined::MuonDressingTool/MuonDressingTool")
23 {
24
25 declareProperty( "AODContainerName", m_aodContainerName = "Muons" );
26 declareProperty( "xAODContainerName", m_xaodContainerName = "Muons" );
27 declareProperty( "xAODInDetTrackParticleContainerName", m_inDetTrackParticles = "InDetTrackParticles" );
28 declareProperty( "xAODSATrackParticleContainerName", m_saTrackParticles = "ExtrapolatedMuonTrackParticles" );
29 declareProperty( "xAODCombinedTrackParticleContainerName", m_cbTrackParticles = "" );
30 }
AthAlgorithm()
Default constructor:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
std::string m_aodContainerName
The key of the input CaloClusterContainer.
Definition MuonCnvAlg.h:54
std::string m_cbTrackParticles
Location/Key for combined fit xAOD::TrackParticles.
Definition MuonCnvAlg.h:69
std::string m_xaodContainerName
The key for the output xAOD::CaloClusterContainer.
Definition MuonCnvAlg.h:56
ToolHandle< xAOD::IMuonDressingTool > m_muonDressingTool
Definition MuonCnvAlg.h:73
std::string m_inDetTrackParticles
Location/Key for xAOD::TrackParticles from ID.
Definition MuonCnvAlg.h:67
std::string m_saTrackParticles
Location/Key for MS SA (extrap to beamline) xAOD::TrackParticles.
Definition MuonCnvAlg.h:68

Member Function Documentation

◆ checkAndSetIsolation()

void xAODMaker::MuonCnvAlg::checkAndSetIsolation ( MuonParameters::ParamDef aodParameter,
xAOD::Iso::IsolationType xaodParameter,
const Analysis::Muon & aodmuon,
xAOD::Muon & xaodmuon )
staticprivate

Definition at line 178 of file MuonCnvAlg.cxx.

178 {
179 double result = aodmuon.parameter(aodParameter);
180 if (result>-999.) {
181 float isolation = static_cast<float>(aodmuon.parameter(aodParameter));
182 xaodmuon.setIsolation(isolation, xaodParameter);
183 }
184 }
double parameter(MuonParameters::ParamDef x) const
get a parameter for this Muon - isolation energy in some cone for example
Definition Muon.cxx:485
void setIsolation(float value, const Iso::IsolationType information)
Set method for Isolation values.
Definition Muon_v1.cxx:272

◆ checkAndSetParameter()

void xAODMaker::MuonCnvAlg::checkAndSetParameter ( MuonParameters::ParamDef aodParameter,
xAOD::Muon::ParamDef xaodParameter,
const Analysis::Muon & aodmuon,
xAOD::Muon & xaodmuon )
staticprivate

Definition at line 151 of file MuonCnvAlg.cxx.

151 {
152 double result = aodmuon.parameter(aodParameter);
153 if (result>-999.) {
154 float parameter = static_cast<float>(result);
155 xaodmuon.setParameter(parameter, xaodParameter);
156 }
157 }
void setParameter(float value, const ParamDef parameter)
Set method for parameter values.

◆ convertAuthor()

xAOD::Muon::Author xAODMaker::MuonCnvAlg::convertAuthor ( MuonParameters::Author aodAuthor)
private

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Algorithm > >::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 }

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Algorithm > >::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< Algorithm > >::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< Algorithm > >::evtStore ( )
inlineinherited

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

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode xAODMaker::MuonCnvAlg::execute ( )
virtual

Function executing the algorithm.

Definition at line 41 of file MuonCnvAlg.cxx.

41 {
42
43 // Retrieve the AOD particles:
44 const Analysis::MuonContainer* aod = evtStore()->tryConstRetrieve<Analysis::MuonContainer>(m_aodContainerName);
45 if (!aod) {
46 ATH_MSG_DEBUG("No MuonContainer with key " << m_aodContainerName << " found. Do nothing.");
47 return StatusCode::SUCCESS;
48 }
49
50
51 ATH_MSG_DEBUG( "Retrieved particles with key: " << m_aodContainerName );
52
53 // Create the xAOD container and its auxiliary store:
55 CHECK( evtStore()->record( xaod, m_xaodContainerName ) );
57 CHECK( evtStore()->record( aux, m_xaodContainerName + "Aux." ) );
58 xaod->setStore( aux );
59 ATH_MSG_DEBUG( "Recorded Muons with key: "
61
62 // Create the xAOD objects:
65 for( ; itr != end; ++itr ) {
66 // Create the xAOD object:
67 xAOD::Muon* muon = new xAOD::Muon();
68 xaod->push_back( muon );
69
70 // p4
71 muon->setP4((*itr)->pt(),(*itr)->eta(),(*itr)->phi());
72
73 // author(s)
74 muon->setAuthor( static_cast<xAOD::Muon_v1::Author>((*itr)->author()));//FIXME - error prone. Only works if they have the same indices
75 muon->setAllAuthors( (*itr)->allAuthors());
76
77 //type
78 if ((*itr)->isCombinedMuon())
79 muon->setMuonType(xAOD::Muon::Combined);
80 else if ((*itr)->isStandAloneMuon())
81 muon->setMuonType(xAOD::Muon::MuonStandAlone);
82 else if ((*itr)->isSegmentTaggedMuon())
83 muon->setMuonType(xAOD::Muon::SegmentTagged);
84 else if ((*itr)->isCaloMuonId())
85 muon->setMuonType(xAOD::Muon::CaloTagged);
86 else if ((*itr)->isSiliconAssociatedForwardMuon())
87 muon->setMuonType(xAOD::Muon::SiliconAssociatedForwardMuon);
88 else
89 ATH_MSG_WARNING("Unknown type of AOD Muon");
90
91 //setQuality
92 xAOD::Muon::Quality tightness;
93 if ((*itr)->isTight()) {
94 tightness=xAOD::Muon::Tight;
95 } else if ((*itr)->isMedium()) {
96 tightness=xAOD::Muon::Medium;
97 } else {
98 tightness=xAOD::Muon::Loose;
99 }
100 muon->setQuality( tightness );
101
102 //setParameters
103 setParameters(**itr,*muon);
104
105 //setIsolations
106 setIsolations(**itr,*muon);
107
108 // set Links
109 setLinks(**itr,*muon);
110
111 // ATH_MSG_VERBOSE(" AOD Muon pt " << (*itr)->pt() << " eta " << (*itr)->eta() << " phi " << (*itr)->phi());
112 ATH_MSG_VERBOSE(" xAOD Muon pt " << muon->pt() << " eta " << muon->eta() << " phi " << muon->phi());
113 ATH_MSG_VERBOSE(" author " << muon->author() << " type " << muon->muonType()
114 << " links CB " << muon->combinedTrackParticleLink().isValid()
115 << " ID " << muon->inDetTrackParticleLink().isValid()
116 << " MS " << muon->muonSpectrometerTrackParticleLink().isValid()
117 << " Primary " << muon->primaryTrackParticleLink().isValid()
118 );
119
120 setMuonHitContent(**itr,*muon);
121 }
122
123 // Return gracefully:
124 return StatusCode::SUCCESS;
125 }
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
#define CHECK(...)
Evaluate an expression and check for errors.
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
value_type push_back(value_type pElem)
Add an element to the end of the collection.
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
void setLinks(const Analysis::Muon &aodmuon, xAOD::Muon &xaodmuon) const
void setMuonHitContent(const Analysis::Muon &aodmuon, xAOD::Muon &xaodmuon)
static void setIsolations(const Analysis::Muon &aodmuon, xAOD::Muon &xaodmuon)
static void setParameters(const Analysis::Muon &aodmuon, xAOD::Muon &xaodmuon)
Muon_v1 Muon
Reference the current persistent version:
MuonAuxContainer_v5 MuonAuxContainer
Definition of the current Muon auxiliary container.
MuonContainer_v1 MuonContainer
Definition of the current "Muon container version".

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::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

◆ extraOutputDeps()

const DataObjIDColl & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 50 of file AthAlgorithm.cxx.

51{
52 // If we didn't find any symlinks to add, just return the collection
53 // from the base class. Otherwise, return the extended collection.
54 if (!m_extendedExtraObjects.empty()) {
56 }
57 return Algorithm::extraOutputDeps();
58}
DataObjIDColl m_extendedExtraObjects

◆ getNewLink()

ElementLink< xAOD::TrackParticleContainer > xAODMaker::MuonCnvAlg::getNewLink ( const ElementLink< Rec::TrackParticleContainer > & oldLink,
const std::string & name ) const
private

Definition at line 211 of file MuonCnvAlg.cxx.

211 {
212 ElementLink<xAOD::TrackParticleContainer> newLink;
213 std::string destname = name;
214 if (destname.empty())
215 destname = oldLink.dataID();
216 newLink.resetWithKeyAndIndex( destname, oldLink.index() );
217 ATH_MSG_VERBOSE("MuonCnvAlg::getNewLink - Old link is "<<(oldLink.isValid()?"VALID":"INVALID")<< " with SGKey = "<<oldLink.dataID()<< " & index = "<<oldLink.index()
218 <<" and new link is "<<(newLink.isValid()?"VALID":"INVALID")<< " with SGKey = "<<newLink.dataID()<< " & index = "<<newLink.index());
219 return newLink;
220 }

◆ initialize()

StatusCode xAODMaker::MuonCnvAlg::initialize ( )
virtual

Function initialising the algorithm.

Definition at line 32 of file MuonCnvAlg.cxx.

32 {
33
34 ATH_MSG_DEBUG( "AODContainerName = " << m_aodContainerName << " xAODContainerName = " << m_xaodContainerName );
35 ATH_CHECK(m_muonDressingTool.retrieve());
36
37 // Return gracefully:
38 return StatusCode::SUCCESS;
39 }
#define ATH_CHECK
Evaluate an expression and check for errors.

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Algorithm > >::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.

◆ msg()

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msgLvl()

bool AthCommonMsg< Algorithm >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ setIsolations()

void xAODMaker::MuonCnvAlg::setIsolations ( const Analysis::Muon & aodmuon,
xAOD::Muon & xaodmuon )
staticprivate

Definition at line 159 of file MuonCnvAlg.cxx.

159 {
160 //checkAndSetIsolation(MuonParameters::etcone10 , xAOD::Iso::etcone10 , aodmuon, xaodmuon);
164 //checkAndSetIsolation(MuonParameters::nucone10 , xAOD::Iso::nucone10 , aodmuon, xaodmuon);
165 //checkAndSetIsolation(MuonParameters::nucone20 , xAOD::Iso::nucone20 , aodmuon, xaodmuon);
166 //checkAndSetIsolation(MuonParameters::nucone30 , xAOD::Iso::nucone30 , aodmuon, xaodmuon);
167 //checkAndSetIsolation(MuonParameters::nucone40 , xAOD::Iso::nucone40 , aodmuon, xaodmuon);
168 //checkAndSetIsolation(MuonParameters::ptcone10 , xAOD::Iso::ptcone10 , aodmuon, xaodmuon);
172 //checkAndSetIsolation(MuonParameters::etconeNoEm10 , xAOD::Iso::etconeNoEm10 , aodmuon, xaodmuon);
173 //checkAndSetIsolation(MuonParameters::etconeNoEm20 , xAOD::Iso::etconeNoEm20 , aodmuon, xaodmuon);
174 //checkAndSetIsolation(MuonParameters::etconeNoEm30 , xAOD::Iso::etconeNoEm30 , aodmuon, xaodmuon);
175 //checkAndSetIsolation(MuonParameters::etconeNoEm40 , xAOD::Iso::etconeNoEm40 , aodmuon, xaodmuon);
176 }
static void checkAndSetIsolation(MuonParameters::ParamDef aodParameter, xAOD::Iso::IsolationType xaodParameter, const Analysis::Muon &aodmuon, xAOD::Muon &xaodmuon)
@ etcone20
Calorimeter isolation.
@ ptcone20
Track isolation.

◆ setLinks()

void xAODMaker::MuonCnvAlg::setLinks ( const Analysis::Muon & aodmuon,
xAOD::Muon & xaodmuon ) const
private

Definition at line 186 of file MuonCnvAlg.cxx.

186 {
187 // Need to reset links from old TrackParticle to xAOD::TrackParticles
188 // ElementLink<xAOD::TrackParticleContainer > newLink = getNewLink(aodmuon.inDetTrackLink(), m_inDetTrackParticles);
189 xaodmuon.setTrackParticleLink(xAOD::Muon_v1::InnerDetectorTrackParticle, getNewLink(aodmuon.inDetTrackLink(), m_inDetTrackParticles) );
190 // ElementLink<xAOD::TrackParticleContainer > newLink2 = getNewLink(aodmuon.muonExtrapTrackLink(), m_saTrackParticles);
191 xaodmuon.setTrackParticleLink(xAOD::Muon_v1::MuonSpectrometerTrackParticle,getNewLink(aodmuon.muonExtrapTrackLink(), m_saTrackParticles) );
192 // ElementLink<xAOD::TrackParticleContainer > newLink3 = getNewLink(aodmuon.muonExtrapTrackLink(), m_cbTrackParticles);
193 xaodmuon.setTrackParticleLink(xAOD::Muon_v1::CombinedTrackParticle, getNewLink(aodmuon.combinedTrackLink(), m_cbTrackParticles) );
194
195 // Sanity checks - can remove at some stage
196 if (!xaodmuon.primaryTrackParticleLink().isValid()){
197 ATH_MSG_WARNING(" xAOD::Muon with no primary TrackParticle! Type: " << xaodmuon.muonType());
198 ATH_MSG_WARNING(" author " << xaodmuon.author() << " type " << xaodmuon.muonType()
199 << " links CB " << xaodmuon.combinedTrackParticleLink().isValid()
200 << " ID " << xaodmuon.inDetTrackParticleLink().isValid()
201 << " MS " << xaodmuon.muonSpectrometerTrackParticleLink().isValid()
202 << " Primary " << xaodmuon.primaryTrackParticleLink().isValid()
203 );
204 ATH_MSG_WARNING(" AOD::Muon links CB " << aodmuon.combinedTrackLink().isValid()
205 << " ID " << aodmuon.combinedTrackLink().isValid()
206 << " MS " << aodmuon.muonExtrapTrackLink().isValid()
207 );
208 }
209 }
const ElementLink< Rec::TrackParticleContainer > & muonExtrapTrackLink() const
Access to the smart pointer to the muon track extrapolated to the vertex.
const ElementLink< Rec::TrackParticleContainer > & inDetTrackLink() const
Access to the smart pointer to inner detector track.
const ElementLink< Rec::TrackParticleContainer > & combinedTrackLink() const
Access to the smart pointer to the muon combined track.
ElementLink< xAOD::TrackParticleContainer > getNewLink(const ElementLink< Rec::TrackParticleContainer > &oldLink, const std::string &name) const
const ElementLink< TrackParticleContainer > & combinedTrackParticleLink() const
Returns an ElementLink to the InnerDetector TrackParticle used in identification of this muon.
const ElementLink< TrackParticleContainer > & inDetTrackParticleLink() const
Returns an ElementLink to the InnerDetector TrackParticle used in identification of this muon.
void setTrackParticleLink(TrackParticleType type, const ElementLink< TrackParticleContainer > &link)
Set method for TrackParticle links.
Definition Muon_v1.cxx:501
Author author() const
MuonType muonType() const
const ElementLink< TrackParticleContainer > & muonSpectrometerTrackParticleLink() const
Returns an ElementLink to the InnerDetector TrackParticle used in identification of this muon.
const ElementLink< TrackParticleContainer > & primaryTrackParticleLink() const
Definition Muon_v1.cxx:356

◆ setMuonHitContent()

void xAODMaker::MuonCnvAlg::setMuonHitContent ( const Analysis::Muon & aodmuon,
xAOD::Muon & xaodmuon )
private

Definition at line 143 of file MuonCnvAlg.cxx.

143 {
144
145 const Rec::TrackParticle* aTrackParticle = aodmuon.track();
146 if( !aTrackParticle->trackSummary() ) return;
147 m_muonDressingTool->addMuonHitSummary(xaodmuon,aTrackParticle->trackSummary());
148 }
const Rec::TrackParticle * track() const
return the primary track of this muon
Definition Muon.cxx:1135
const TrackSummary * trackSummary() const
accessor function for TrackSummary.

◆ setParameters()

void xAODMaker::MuonCnvAlg::setParameters ( const Analysis::Muon & aodmuon,
xAOD::Muon & xaodmuon )
staticprivate

Definition at line 127 of file MuonCnvAlg.cxx.

127 {
128 // We're not doing all AOD parameters here because some are dropped, and some are moved elsewhere.
129 checkAndSetParameter(MuonParameters::spectrometerFieldIntegral , xAOD::Muon::spectrometerFieldIntegral , aodmuon, xaodmuon);
130 checkAndSetParameter(MuonParameters::scatteringCurvatureSignificance , xAOD::Muon::scatteringCurvatureSignificance , aodmuon, xaodmuon);
131 checkAndSetParameter(MuonParameters::scatteringNeighbourSignificance , xAOD::Muon::scatteringNeighbourSignificance , aodmuon, xaodmuon);
132 checkAndSetParameter(MuonParameters::momentumBalanceSignificance , xAOD::Muon::momentumBalanceSignificance , aodmuon, xaodmuon);
133 checkAndSetParameter(MuonParameters::segmentDeltaEta , xAOD::Muon::segmentDeltaEta , aodmuon, xaodmuon);
134 checkAndSetParameter(MuonParameters::segmentDeltaPhi , xAOD::Muon::segmentDeltaPhi , aodmuon, xaodmuon);
135 checkAndSetParameter(MuonParameters::t0 , xAOD::Muon::t0 , aodmuon, xaodmuon);
136 checkAndSetParameter(MuonParameters::beta , xAOD::Muon::beta , aodmuon, xaodmuon);
137 checkAndSetParameter(MuonParameters::annBarrel , xAOD::Muon::annBarrel , aodmuon, xaodmuon);
138 checkAndSetParameter(MuonParameters::annEndCap , xAOD::Muon::annEndCap , aodmuon, xaodmuon);
139 checkAndSetParameter(MuonParameters::innAngle , xAOD::Muon::innAngle , aodmuon, xaodmuon);
140 checkAndSetParameter(MuonParameters::midAngle , xAOD::Muon::midAngle , aodmuon, xaodmuon);
141 }
static void checkAndSetParameter(MuonParameters::ParamDef aodParameter, xAOD::Muon::ParamDef xaodParameter, const Analysis::Muon &aodmuon, xAOD::Muon &xaodmuon)
@ spectrometerFieldIntegral
Discriminators and further variables.
@ innAngle
common MuGirl and MuTag parameters
@ scatteringNeighbourSignificance
@ scatteringCurvatureSignificance
@ t0
MuGirl parameter.
@ segmentDeltaEta
MuTag parameters.

◆ sysInitialize()

StatusCode AthAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, AthHistogramAlgorithm, and PyAthena::Alg.

Definition at line 66 of file AthAlgorithm.cxx.

66 {
68
69 if (sc.isFailure()) {
70 return sc;
71 }
72 ServiceHandle<ICondSvc> cs("CondSvc",name());
73 for (auto h : outputHandles()) {
74 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75 // do this inside the loop so we don't create the CondSvc until needed
76 if ( cs.retrieve().isFailure() ) {
77 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78 return StatusCode::SUCCESS;
79 }
80 if (cs->regHandle(this,*h).isFailure()) {
81 sc = StatusCode::FAILURE;
82 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83 << " with CondSvc");
84 }
85 }
86 }
87 return sc;
88}
#define ATH_MSG_ERROR(x)
static Double_t sc
virtual StatusCode sysInitialize() override
Override sysInitialize.
AthCommonDataStore(const std::string &name, T... args)
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
::StatusCode StatusCode
StatusCode definition for legacy code.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Algorithm > >::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< Algorithm > >::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_aodContainerName

std::string xAODMaker::MuonCnvAlg::m_aodContainerName
private

The key of the input CaloClusterContainer.

Definition at line 54 of file MuonCnvAlg.h.

◆ m_cbTrackParticles

std::string xAODMaker::MuonCnvAlg::m_cbTrackParticles
private

Location/Key for combined fit xAOD::TrackParticles.

Definition at line 69 of file MuonCnvAlg.h.

◆ m_detStore

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

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

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

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_inDetTrackParticles

std::string xAODMaker::MuonCnvAlg::m_inDetTrackParticles
private

Location/Key for xAOD::TrackParticles from ID.

Definition at line 67 of file MuonCnvAlg.h.

◆ m_mgTrackParticles

std::string xAODMaker::MuonCnvAlg::m_mgTrackParticles
private

Location/Key for MuGirl combined fit xAOD::TrackParticles; needed in conversion from release 17.

Definition at line 70 of file MuonCnvAlg.h.

◆ m_muonDressingTool

ToolHandle<xAOD::IMuonDressingTool> xAODMaker::MuonCnvAlg::m_muonDressingTool
private

Definition at line 73 of file MuonCnvAlg.h.

◆ m_saTrackParticles

std::string xAODMaker::MuonCnvAlg::m_saTrackParticles
private

Location/Key for MS SA (extrap to beamline) xAOD::TrackParticles.

Definition at line 68 of file MuonCnvAlg.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.

◆ m_xaodContainerName

std::string xAODMaker::MuonCnvAlg::m_xaodContainerName
private

The key for the output xAOD::CaloClusterContainer.

Definition at line 56 of file MuonCnvAlg.h.


The documentation for this class was generated from the following files: