 |
ATLAS Offline Software
|
#include <RecoToTruthAssociationAlg.h>
|
StatusCode | initialize () override |
|
StatusCode | execute (const EventContext &ctx) const override |
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual bool | isClonable () const override |
| Specify if the algorithm is clonable. More...
|
|
virtual unsigned int | cardinality () const override |
| Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
|
|
virtual StatusCode | sysExecute (const EventContext &ctx) override |
| Execute an algorithm. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
virtual bool | filterPassed (const EventContext &ctx) const |
|
virtual void | setFilterPassed (bool state, const EventContext &ctx) const |
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T, V, H > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
void | count_chamber_layers (const xAOD::IParticle *truth_particle, const Trk::Track *ptrk, std::vector< unsigned int > &nprecHitsPerChamberLayer, std::vector< unsigned int > &nphiHitsPerChamberLayer, std::vector< unsigned int > &ntrigEtaHitsPerChamberLayer) const |
|
void | clear_dummys (const std::vector< unsigned long long > &identifiers, std::vector< unsigned int > &vec) const |
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
Definition at line 18 of file RecoToTruthAssociationAlg.h.
◆ StoreGateSvc_t
◆ cardinality()
Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
Override this to return 0 for reentrant algorithms.
Override this to return 0 for reentrant algorithms.
Definition at line 75 of file AthCommonReentrantAlgorithm.cxx.
◆ clear_dummys()
void Muon::RecoToTruthAssociationAlg::clear_dummys |
( |
const std::vector< unsigned long long > & |
identifiers, |
|
|
std::vector< unsigned int > & |
vec |
|
) |
| const |
|
private |
If the identifiers are empty then there is no change that a dummy value could be cleared from this list
Definition at line 353 of file RecoToTruthAssociationAlg.cxx.
357 for (
unsigned int i = 0;
i <
vec.size(); ++
i) {
358 if (
vec[
i] != dummy_unsigned)
continue;
359 for (
unsigned j = 0; j <
identifiers.size(); ++j) {
362 const auto phiIdx =
static_cast<PhiIndex>(
i);
368 const auto chIdx =
static_cast<ChIndex>(
i);
◆ count_chamber_layers()
void Muon::RecoToTruthAssociationAlg::count_chamber_layers |
( |
const xAOD::IParticle * |
truth_particle, |
|
|
const Trk::Track * |
ptrk, |
|
|
std::vector< unsigned int > & |
nprecHitsPerChamberLayer, |
|
|
std::vector< unsigned int > & |
nphiHitsPerChamberLayer, |
|
|
std::vector< unsigned int > & |
ntrigEtaHitsPerChamberLayer |
|
) |
| const |
|
private |
Definition at line 253 of file RecoToTruthAssociationAlg.cxx.
258 if (!truthParticle || !truthMdtHitsAcc.isAvailable(*truthParticle)) {
259 ATH_MSG_DEBUG(
"muon has no truth hits vector in the truth association alg");
260 nprecHitsPerChamberLayer.clear();
261 nphiHitsPerChamberLayer.clear();
262 ntrigEtaHitsPerChamberLayer.clear();
265 const std::vector<unsigned long long>& mdtTruth = truthMdtHitsAcc(*truthParticle);
266 std::vector<unsigned long long> cscTruth;
268 if (
m_idHelperSvc->hasCSC()) cscTruth = truthCscHitsAcc(*truthParticle);
269 const std::vector<unsigned long long>& rpcTruth = truthRpcHitsAcc(*truthParticle);
270 const std::vector<unsigned long long>& tgcTruth = truthTgcHitsAcc(*truthParticle);
273 if (!tsit || !tsit->trackParameters() || !tsit->measurementOnTrack())
continue;
289 for (
unsigned int i = 0;
i < mdtTruth.size(); ++
i) {
290 if (
id == mdtTruth[
i]) {
291 if (
chIndex != ChIndex::ChUnknown) {
292 increment_unsigned(nprecHitsPerChamberLayer.at(
toInt(
chIndex)));
298 for (
unsigned int i = 0;
i < cscTruth.size(); ++
i) {
299 if (
id != cscTruth[
i])
continue;
302 if (
index != PhiIndex::PhiUnknown) {
303 increment_unsigned(nphiHitsPerChamberLayer.at(
toInt(
index)));
306 if (
chIndex != ChIndex::ChUnknown) {
307 increment_unsigned(nprecHitsPerChamberLayer.at(
toInt(
chIndex)));
313 for (
unsigned int i = 0;
i < rpcTruth.size(); ++
i) {
314 if (
id != rpcTruth[
i]) {
continue; }
316 if (
index != PhiIndex::PhiUnknown) {
318 increment_unsigned(nphiHitsPerChamberLayer.at(
toInt(
index)));
320 increment_unsigned(ntrigEtaHitsPerChamberLayer.at(
toInt(
index)));
326 for (
unsigned int i = 0;
i < tgcTruth.size(); ++
i) {
327 if (
id != tgcTruth[
i]) {
continue; }
329 if (
index != PhiIndex::PhiUnknown) {
331 increment_unsigned(nphiHitsPerChamberLayer.at(
toInt(
index)));
333 increment_unsigned(ntrigEtaHitsPerChamberLayer.at(
toInt(
index)));
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode Muon::RecoToTruthAssociationAlg::execute |
( |
const EventContext & |
ctx | ) |
const |
|
override |
Link the truth particle to the muon
Check first if the truth link already exists
May be both muons are reconstructed by the same author but one is commissioning
The last judge is a simple dR cut but this will hopefully never trigger
Zero supression do not want to store meaningless zeros
Decorate the results
Patch for STACO muons: Copy the truth information from the muon back to the combined track to avoid file corruptions reported in ATLASRECTS-6454
one more thing: need to have muonlink set for all truth particles to avoid ELReset errors
Definition at line 78 of file RecoToTruthAssociationAlg.cxx.
81 std::unique_ptr<SG::WriteDecorHandle<xAOD::TruthParticleContainer, ElementLink<xAOD::MuonContainer>>> muonTruthParticleRecoLink{};
83 muonTruthParticleRecoLink = std::make_unique<SG::WriteDecorHandle<xAOD::TruthParticleContainer, ElementLink<xAOD::MuonContainer>>>(
m_muonTruthRecoLink, ctx);
88 if (!muonTruthParticleLink.isValid()) {
90 return StatusCode::FAILURE;
100 bool saw_staco =
false;
101 bool decor_staco =
false;
111 tp =
muon->trackParticle(xAOD::Muon::InnerDetectorTrackParticle);
113 tp =
muon->primaryTrackParticle();
116 bool foundTruth{
false}, setOrigin{
false};
121 if (acc_origin.isAvailable(*
tp) && acc_origin(*
tp) != 0) {
122 muonTruthParticleOrigin(*
muon) = acc_origin(*
tp);
123 muonTruthParticleType(*
muon) = acc_type(*
tp);
128 if (acc_link.isAvailable(*
tp)) {
129 truthLink = acc_link(*
tp);
131 ATH_MSG_DEBUG(
"Could not find any truth link associated with track having pt:"<<
tp->pt()<<
" MeV, eta: "<<
tp->eta()<<
", phi: "<<
tp->phi()<<
", charge: "<<
tp->charge()<<
". d0:"<<
tp->d0()<<
", z0: "<<
tp->z0());
149 truthParticle->
index(),
151 muonTruthLink.toPersistent();
152 muonTruthParticleLink(*
muon) = muonTruthLink;
154 muonTruthParticleOrigin(*
muon) = acc_origin(*
tp);
155 muonTruthParticleType(*
muon) = acc_type(*
tp);
159 if (muonTruthParticleRecoLink && muonTruthParticleRecoLink->operator()(*truthParticle).isValid()){
160 const xAOD::Muon* decor_muon = *muonTruthParticleRecoLink->operator()(*truthParticle);
161 ATH_MSG_VERBOSE(
"Truth particle is already decorated with reco muon "<<decor_muon->
pt()*1.e-3
162 <<
" eta: "<<decor_muon->
eta()<<
" phi: "<<decor_muon->
phi()<<
" charge: "<<
163 decor_muon->
charge()<<
" author: "<<decor_muon->
author()<<
" all authors: "<<
168 ATH_MSG_DEBUG(
"Author of the decorated muon is better than the one of the new candidate");
172 const int com_score = (
muon->allAuthors() & com_bit) - (decor_muon->
allAuthors() &com_bit);
174 ATH_MSG_DEBUG(
"Found two muons reconstructed by an equivalent author. But this one is from the commissioning chain");
185 std::vector<unsigned int> nprecHitsPerChamberLayer(
toInt(ChIndex::ChIndexMax), dummy_unsigned);
186 std::vector<unsigned int> nphiHitsPerChamberLayer(
toInt(PhiIndex::PhiIndexMax), dummy_unsigned);
187 std::vector<unsigned int> ntrigEtaHitsPerChamberLayer(
toInt(PhiIndex::PhiIndexMax), dummy_unsigned);
193 tp->track(), nprecHitsPerChamberLayer, nphiHitsPerChamberLayer, ntrigEtaHitsPerChamberLayer);
195 muonTruthParticleNPrecMatched(*
muon) = nprecHitsPerChamberLayer;
196 muonTruthParticleNPhiMatched(*
muon) = nphiHitsPerChamberLayer;
197 muonTruthParticleNTrigEtaMatched(*
muon) = ntrigEtaHitsPerChamberLayer;
199 if (muonTruthParticleRecoLink) (*muonTruthParticleRecoLink)(*truthParticle) = muonLink;
206 ATH_MSG_WARNING(
"Could not find the appropiate track particle for muon with pT: " <<
muon->pt() * 1.e-3 <<
" GeV, eta: "
207 <<
muon->eta() <<
", phi: " <<
muon->phi()
208 <<
" author: " <<
muon->author());
212 muonTruthParticleOrigin(*
muon) = 0;
213 muonTruthParticleType(*
muon) = 0;
218 muonTruthParticleNPrecMatched(*
muon) = std::vector<unsigned int>{};
219 muonTruthParticleNPhiMatched(*
muon) = std::vector<unsigned int>{};
220 muonTruthParticleNTrigEtaMatched(*
muon) = std::vector<unsigned int>{};
232 decor_staco = !dec_origin.isAvailable (*cmb_trk);
235 dec_origin(*cmb_trk) = acc_origin(*
muon);
236 dec_type(*cmb_trk) = acc_type(*
muon);
237 dec_link(*cmb_trk) = acc_link(*
muon);
243 if (muonTruthParticleRecoLink && !muonTruthParticleRecoLink->isAvailable()) {
250 return StatusCode::SUCCESS;
◆ extraDeps_update_handler()
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()
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 94 of file AthCommonReentrantAlgorithm.cxx.
◆ filterPassed()
◆ initialize()
StatusCode Muon::RecoToTruthAssociationAlg::initialize |
( |
| ) |
|
|
override |
◆ inputHandles()
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.
◆ isClonable()
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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()
◆ renounceArray()
◆ setFilterPassed()
◆ sysExecute()
Execute an algorithm.
We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.
Definition at line 85 of file AthCommonReentrantAlgorithm.cxx.
◆ sysInitialize()
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< Gaudi::Algorithm > >.
Reimplemented in InputMakerBase, and HypoBase.
Definition at line 61 of file AthCommonReentrantAlgorithm.cxx.
110 if (
sc.isFailure()) {
118 if ( cs.retrieve().isFailure() ) {
120 return StatusCode::SUCCESS;
122 if (cs->regHandle(
this,*
h).isFailure()) {
123 sc = StatusCode::FAILURE;
124 ATH_MSG_ERROR(
"unable to register WriteCondHandle " <<
h->fullKey()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_associateWithInDetTP
Gaudi::Property<bool> Muon::RecoToTruthAssociationAlg::m_associateWithInDetTP {this, "AssociateWithInDetTP", false, "force use of ID track particles for association"} |
|
private |
◆ m_assocTrkContainers
Gaudi::Property<std::vector<std::string> > Muon::RecoToTruthAssociationAlg::m_assocTrkContainers |
|
private |
Initial value:{this, "TrackContainers", {"CombinedMuonTrackParticles",
"ExtrapolatedMuonTrackParticles",
"MSOnlyExtrapolatedMuonTrackParticles"},
"Collection of track containers to be decorated before this alg can be scheduled. truthLink decoration exploited "}
Definition at line 63 of file RecoToTruthAssociationAlg.h.
◆ m_detStore
◆ m_evtStore
◆ m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 114 of file AthCommonReentrantAlgorithm.h.
◆ m_idHelperSvc
◆ m_inputDecorKey
Initial value:{
this, "TrkTruthLinkKeys", {},
"Declare the decoration dependencies of this algorithm. Steer via TrackContainers property"}
Definition at line 60 of file RecoToTruthAssociationAlg.h.
◆ m_muonTruthParticleLink
Initial value:{
this,
"MuonTruthParticleLink",
m_recoMuKey,
"truthParticleLink",
"muon truth particle link auxdata name; name will be reset in initialize() based on m_muonName"}
Definition at line 39 of file RecoToTruthAssociationAlg.h.
◆ m_muonTruthParticleNPhiMatched
Initial value:{
this,
"MuonTruthParticleNPhiMatched",
m_recoMuKey,
"nphiMatchedHitsPerChamberLayer",
"muon vector of number of phi matched hits per chamber layer auxdata name; name will be reset in initialize() based on m_muonName"}
Definition at line 52 of file RecoToTruthAssociationAlg.h.
◆ m_muonTruthParticleNPrecMatched
Initial value:{
this,
"MuonTruthParticleNPrecMatched",
m_recoMuKey,
"nprecMatchedHitsPerChamberLayer",
"muon vector of number of precision matched hits per chamber layer auxdata name; name will be reset in initialize() based on "
"m_muonName"}
Definition at line 48 of file RecoToTruthAssociationAlg.h.
◆ m_muonTruthParticleNTrigEtaMatched
Initial value:{
this,
"MuonTruthParticleNTrigEtaMatched",
m_recoMuKey,
"ntrigEtaMatchedHitsPerChamberLayer",
"muon vector of number of phi matched hits per chamber layer auxdata name; name will be reset in initialize() based on m_muonName"}
Definition at line 55 of file RecoToTruthAssociationAlg.h.
◆ m_muonTruthParticleOrigin
Initial value:{
this,
"MuonTruthParticleOrigin",
m_recoMuKey,
"truthOrigin",
"muon truth origin auxdata name; name will be reset in initialize() based on m_muonName"}
Definition at line 45 of file RecoToTruthAssociationAlg.h.
◆ m_muonTruthParticleType
Initial value:{
this,
"MuonTruthParticleType",
m_recoMuKey,
"truthType",
"muon truth type auxdata name; name will be reset in initialize() based on m_muonName"}
Definition at line 42 of file RecoToTruthAssociationAlg.h.
◆ m_muonTruthRecoLink
Initial value:{
"container name for muon truth particles; the full handle name, including the reco muon link auxdata, is set in initialize()"}
Definition at line 36 of file RecoToTruthAssociationAlg.h.
◆ m_recoLink
Gaudi::Property<std::string> Muon::RecoToTruthAssociationAlg::m_recoLink {this, "RecoLinkName", "recoMuonLink" , "Decoration to the truth particle pointing to the muon"} |
|
private |
◆ m_recoMuKey
Initial value:{
this, "MuonContainerName", "Muons",
"container name for muon truth particles; the full handle name, including the reco muon link auxdata, is set in initialize()"}
Definition at line 32 of file RecoToTruthAssociationAlg.h.
◆ m_truthMuKey
Initial value:{
this, "MuonTruthParticleContainerName", "MuonTruthParticles"}
Key to the filtered muon truth particles
Definition at line 29 of file RecoToTruthAssociationAlg.h.
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
uint16_t allAuthors() const
Get all the authors of this Muon.
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_muonTruthParticleNPhiMatched
static AuxTypeRegistry & instance()
Return the singleton registry instance.
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
virtual double phi() const
The azimuthal angle ( ) of the particle.
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)
virtual double eta() const
The pseudorapidity ( ) of the particle.
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_muonTruthParticleNPrecMatched
std::vector< size_t > vec
#define ATH_MSG_VERBOSE(x)
double deltaR2(double rapidity1, double phi1, double rapidity2, double phi2)
from bare rapidity,phi
bool empty() const
Test if the key is blank.
void count_chamber_layers(const xAOD::IParticle *truth_particle, const Trk::Track *ptrk, std::vector< unsigned int > &nprecHitsPerChamberLayer, std::vector< unsigned int > &nphiHitsPerChamberLayer, std::vector< unsigned int > &ntrigEtaHitsPerChamberLayer) const
bool isValid() const
Test to see if the link can be dereferenced.
Gaudi::Property< std::vector< std::string > > m_assocTrkContainers
Gaudi::Property< bool > m_associateWithInDetTP
virtual void setOwner(IDataHandleHolder *o)=0
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_muonTruthParticleType
int authorRank(const xAOD::Muon::Author &a)
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
virtual const DataObjIDColl & extraOutputDeps() const override
Return the list of extra output dependencies.
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
const T * get(const ReadCondHandleKey< T > &key, const EventContext &ctx)
Convenience function to retrieve an object given a ReadCondHandleKey.
ChIndex chIndex(const std::string &index)
convert ChIndex name string to enum
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Class describing a truth particle in the MC record.
Handle class for adding a decoration to an object.
virtual StatusCode sysExecute(const EventContext &ctx) override
Execute an algorithm.
virtual double pt() const
The transverse momentum ( ) of the particle.
SG::ReadHandleKey< xAOD::TruthParticleContainer > m_truthMuKey
Key to the filtered muon truth particles
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
ElementLink implementation for ROOT usage.
SG::ReadHandleKey< xAOD::MuonContainer > m_recoMuKey
represents the track state (measurement, material, fit parameters and quality) at a surface.
constexpr int toInt(const ParamDefs p)
void clear_dummys(const std::vector< unsigned long long > &identifiers, std::vector< unsigned int > &vec) const
const std::vector< const MuonClusterOnTrack * > & containedROTs() const
returns the vector of SCT_ClusterOnTrack objects .
SG::WriteDecorHandleKey< xAOD::TruthParticleContainer > m_muonTruthRecoLink
PhiIndex
enum to classify the different phi layers in the muon spectrometer
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_muonTruthParticleNTrigEtaMatched
bool isStable(const T &p)
Identify if the particle is stable, i.e. has not decayed.
std::vector< Identifier > identifiers(const InDetSimDataCollection &coll)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_muonTruthParticleLink
#define ATH_MSG_WARNING(x)
Identifier identify() const
return the identifier -extends MeasurementBase
index_type index() const
Get the index of the element inside of its container.
SG::ReadDecorHandleKeyArray< xAOD::IParticleContainer > m_inputDecorKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_muonTruthParticleOrigin
virtual StatusCode sysInitialize() override
Override sysInitialize.
@ STACO
Tracks produced by STACO.
ChIndex
enum to classify the different chamber layers in the muon spectrometer
bool is_sim_descendant(const T1 &p1, const T2 &p2)
Method to check if the first particle is a descendant of the second in the simulation,...
Class describing a TrackParticle.
Gaudi::Property< std::string > m_recoLink
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.