|  | 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 theStoreGateSvc.  More...
 | 
|  | 
| const ServiceHandle< StoreGateSvc > & | evtStore () const | 
|  | The standard StoreGateSvc(event store) Returns (kind of) a pointer to theStoreGateSvc.  More...
 | 
|  | 
| const ServiceHandle< StoreGateSvc > & | detStore () const | 
|  | The standard StoreGateSvc/DetectorStoreReturns (kind of) a pointer to theStoreGateSvc.  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.
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.
constexpr int toInt(const EnumType enumVal)