ATLAS Offline Software
PFMuonFlowElementAssoc.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 /*
6  * PFMuonFlowElementAssoc.h
7  * Header file for class PFEMuonFlowElementAssoc
8  *
9  * Created by M.T. Anthony
10  */
11 
12 
13 #ifndef PFMUONFLOWELEMENTASSOC_H
14 #define PFMUONFLOWELEMENTASSOC_H
15 
18 #include "GaudiKernel/ToolHandle.h"
19 #include "StoreGate/DataHandle.h"
20 #include "xAODMuon/MuonContainer.h"
23 
30 
31 public:
33 
34  PFMuonFlowElementAssoc(const std::string& name, ISvcLocator* pSvcLocator);
35 
37 
38  virtual StatusCode initialize();
39  virtual StatusCode execute(const EventContext & ctx ) const;
40 
41 private:
42 
48  std::pair<double,double> doMuonCellMatching(bool& isCellMatched, const xAOD::CaloCluster& FECluster, const xAOD::CaloCluster& muonCluster) const;
49 
50  // ReadHandleKeys
51  SG::ReadHandleKey<xAOD::MuonContainer> m_muonReadHandleKey{this,"MuonContainer","Muons","ReadHandleKey for Muons"};
52 
53  SG::ReadHandleKey<xAOD::FlowElementContainer> m_neutralFEReadHandleKey{this,"JetEtMissNeutralFlowElementContainer","JetETMissNeutralParticleFlowObjects","ReadHandleKey for neutral FlowElements"};
54 
55  SG::ReadHandleKey<xAOD::FlowElementContainer> m_chargedFEReadHandleKey{this,"JetEtMissChargedFlowElementContainer","JetETMissChargedParticleFlowObjects","ReadHandleKey for charged FlowElements"};
56 
58  SG::WriteDecorHandleKey<xAOD::MuonContainer> m_muonChargedFEWriteHandleKey{this,"MuonContainer_chargedFELinks","Muons.chargedFELinks","WriteHandleKey for muon link to charged FlowElements"};
59 
61  SG::WriteDecorHandleKey<xAOD::FlowElementContainer> m_ChargedFE_energy_match_muonWriteHandleKey{this,"FlowElementContainer_ChargedFE_ennergy_matched_muon","JetETMissChargedParticleFlowObjects.FE_efrac_matched_muon","WriteHandleKey for the fraction of neutral FlowElements cluster energy used to match to Muons"};
62 
63 
65  SG::WriteDecorHandleKey<xAOD::FlowElementContainer> m_ChargedFEmuonWriteHandleKey{this,"JetETMissChargedFlowElements_FE_MuonLinks","JetETMissChargedParticleFlowObjects.FE_MuonLinks","WriteHandleKey for Charged Flow Elements coupled to muons"};
66 
68  SG::WriteDecorHandleKey<xAOD::MuonContainer> m_muonNeutralFEWriteHandleKey{this,"MuonContainer_neutralFELinks","Muons.neutralFELinks","WriteHandleKey for muon links to neutral FlowElement"};
69 
71  SG::WriteDecorHandleKey<xAOD::FlowElementContainer> m_NeutralFEmuonWriteHandleKey{this,"JetETMissNeutralFlowElementContainer_FE_MuonLinks","JetETMissNeutralParticleFlowObjects.FE_MuonLinks","WriteHandleKey for neutral flow Elements to Muons"};
72 
74  SG::WriteDecorHandleKey<xAOD::FlowElementContainer> m_NeutralFE_efrac_match_muonWriteHandleKey{this,"FlowElementContainer_FE_efrac_matched_muon","JetETMissNeutralParticleFlowObjects.FE_efrac_matched_muon","WriteHandleKey for the fraction of neutral FlowElements cluster energy used to match to Muons"};
75 
77  SG::WriteDecorHandleKey<xAOD::MuonContainer> m_muonNeutralFE_muon_efrac_WriteDecorHandleKey{this,"MuonContainer_muon_efrac_matched_FE","Muons.muon_efrac_matched_FE","WriteHandleKey for the fraction of muon cluster energy used to match to neutral Flow Elements"};
78 
80  SG::WriteDecorHandleKey<xAOD::FlowElementContainer> m_NeutralFEmuon_nMatches_WriteDecorHandleKey{this,"FlowElementContainer_nMatchedMuons","JetETMissNeutralParticleFlowObjects.FE_nMatchedMuons","WriteHandleKey for the number of muons matched to a given neutral flow element"};
81 
83  SG::WriteDecorHandleKey<xAOD::MuonContainer>m_muon_ClusterInfo_deltaR_WriteDecorHandleKey{this,"MuonContainer_ClusterInfo_deltaR","Muons.ClusterInfo_deltaR","WriteHandleKey for the delta R between the muon and it's associated calocluster"};
84 
85  SG::ReadDecorHandleKey<xAOD::CaloClusterContainer> m_ClustCollectionLinkKey{this,"ElementLinkName", "MuonClusterCollection.constituentClusterLinks"};
86 
88  Gaudi::Property<bool> m_LinkNeutralFEClusters{this,"LinkNeutralFEClusters",false,"Toggle usage of linkage of Neutral FlowElements - false by default (EXPERIMENTAL)"};
89 
95  Gaudi::Property<bool> m_useMuonTopoClusters{this,"useMuonTopoClusters",false,"Toggle usage of linker of muon associated topoclusters to flow elements - false by default (EXPERIMENTAL)"};
96 };
97 #endif // PFMUONFLOWELEMENTASSOC.H
SG::WriteDecorHandleKey
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
Definition: StoreGate/StoreGate/WriteDecorHandleKey.h:89
PFMuonFlowElementAssoc::m_LinkNeutralFEClusters
Gaudi::Property< bool > m_LinkNeutralFEClusters
Gaudi Property to configure linkage of Neutral Flow Elements to Muon clusters (EXPERIMENTAL - default...
Definition: PFMuonFlowElementAssoc.h:88
FlowElementContainer.h
PFMuonFlowElementAssoc::PFMuonFlowElementAssoc
PFMuonFlowElementAssoc(const std::string &name, ISvcLocator *pSvcLocator)
Definition: PFMuonFlowElementAssoc.cxx:25
PFMuonFlowElementAssoc::m_ChargedFEmuonWriteHandleKey
SG::WriteDecorHandleKey< xAOD::FlowElementContainer > m_ChargedFEmuonWriteHandleKey
Write key for adding Muon link decorations to charged Flow Elements.
Definition: PFMuonFlowElementAssoc.h:65
PFMuonFlowElementAssoc::m_NeutralFEmuonWriteHandleKey
SG::WriteDecorHandleKey< xAOD::FlowElementContainer > m_NeutralFEmuonWriteHandleKey
Write key for adding Muon link decorations to neutral Flow Elements.
Definition: PFMuonFlowElementAssoc.h:71
PFMuonFlowElementAssoc::doMuonCellMatching
std::pair< double, double > doMuonCellMatching(bool &isCellMatched, const xAOD::CaloCluster &FECluster, const xAOD::CaloCluster &muonCluster) const
Function that flags whether the FE cluster has any cell that is also in the muon list of cells.
Definition: PFMuonFlowElementAssoc.cxx:325
PFMuonFlowElementAssoc::m_muon_ClusterInfo_deltaR_WriteDecorHandleKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_muon_ClusterInfo_deltaR_WriteDecorHandleKey
Write key to measure dR between calo clusters and the muon -EXPERIMENTAL.
Definition: PFMuonFlowElementAssoc.h:83
PFMuonFlowElementAssoc
AthReentrantAlgorithm to associate Flow Elements (FEs) to Muons.
Definition: PFMuonFlowElementAssoc.h:29
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
DataHandle.h
PFMuonFlowElementAssoc::m_ChargedFE_energy_match_muonWriteHandleKey
SG::WriteDecorHandleKey< xAOD::FlowElementContainer > m_ChargedFE_energy_match_muonWriteHandleKey
Write key for adding fraction of nFlowElement cluster energy used in cell matching decoration of Flow...
Definition: PFMuonFlowElementAssoc.h:61
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
AthAlgorithm.h
PFMuonFlowElementAssoc::m_muonNeutralFE_muon_efrac_WriteDecorHandleKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_muonNeutralFE_muon_efrac_WriteDecorHandleKey
Write key for adding fraction of Muon cluster energy used in cell matching decoration of MuonContaine...
Definition: PFMuonFlowElementAssoc.h:77
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:59
PFMuonFlowElementAssoc::~PFMuonFlowElementAssoc
virtual ~PFMuonFlowElementAssoc()
AthReentrantAlgorithm::AthReentrantAlgorithm
AthReentrantAlgorithm()
Default constructor:
PFMuonFlowElementAssoc::m_muonReadHandleKey
SG::ReadHandleKey< xAOD::MuonContainer > m_muonReadHandleKey
Definition: PFMuonFlowElementAssoc.h:51
PFMuonFlowElementAssoc::execute
virtual StatusCode execute(const EventContext &ctx) const
Definition: PFMuonFlowElementAssoc.cxx:61
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
WriteDecorHandle.h
Handle class for adding a decoration to an object.
PFMuonFlowElementAssoc::m_muonChargedFEWriteHandleKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_muonChargedFEWriteHandleKey
Write key for adding charged Flow Element link decorations to muons.
Definition: PFMuonFlowElementAssoc.h:58
AthReentrantAlgorithm.h
PFMuonFlowElementAssoc::m_NeutralFEmuon_nMatches_WriteDecorHandleKey
SG::WriteDecorHandleKey< xAOD::FlowElementContainer > m_NeutralFEmuon_nMatches_WriteDecorHandleKey
Write key to count number of muons matched to a given neutral FE - EXPERIMENTAL.
Definition: PFMuonFlowElementAssoc.h:80
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
PFMuonFlowElementAssoc::m_chargedFEReadHandleKey
SG::ReadHandleKey< xAOD::FlowElementContainer > m_chargedFEReadHandleKey
Definition: PFMuonFlowElementAssoc.h:55
PFMuonFlowElementAssoc::initialize
virtual StatusCode initialize()
Definition: PFMuonFlowElementAssoc.cxx:33
PFMuonFlowElementAssoc::m_muonNeutralFEWriteHandleKey
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_muonNeutralFEWriteHandleKey
Write key for adding neutral Flow Element link decorations to muons.
Definition: PFMuonFlowElementAssoc.h:68
PFMuonFlowElementAssoc::m_useMuonTopoClusters
Gaudi::Property< bool > m_useMuonTopoClusters
(EXPERIMENTAL) Gaudi Property to configure linkage of Neutral FEs to TopoClusters associated to Muons...
Definition: PFMuonFlowElementAssoc.h:95
MuonContainer.h
PFMuonFlowElementAssoc::m_neutralFEReadHandleKey
SG::ReadHandleKey< xAOD::FlowElementContainer > m_neutralFEReadHandleKey
Definition: PFMuonFlowElementAssoc.h:53
SG::ReadDecorHandleKey
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Definition: StoreGate/StoreGate/ReadDecorHandleKey.h:85
PFMuonFlowElementAssoc::m_ClustCollectionLinkKey
SG::ReadDecorHandleKey< xAOD::CaloClusterContainer > m_ClustCollectionLinkKey
Definition: PFMuonFlowElementAssoc.h:85
PFMuonFlowElementAssoc::m_NeutralFE_efrac_match_muonWriteHandleKey
SG::WriteDecorHandleKey< xAOD::FlowElementContainer > m_NeutralFE_efrac_match_muonWriteHandleKey
Write key for adding fraction of nFlowElement cluster energy used in cell matching decoration of Flow...
Definition: PFMuonFlowElementAssoc.h:74