 |
ATLAS Offline Software
|
Go to the documentation of this file.
9 #include "GaudiKernel/SystemOfUnits.h"
12 static const std::map<std::string, std::pair<std::string, std::string> > key2SubSkeyMap( {
13 {
"MET_RefFinal", {
"MET_Reference_AntiKt4EMTopo",
"FinalTrk" } },
14 {
"MET_RefEle", {
"MET_Reference_AntiKt4EMTopo",
"RefEle" } },
15 {
"MET_RefGamma", {
"MET_Reference_AntiKt4EMTopo",
"RefGamma" } } ,
16 {
"MET_RefTau", {
"MET_Reference_AntiKt4EMTopo",
"RefTau" } },
17 {
"MET_SoftClus", {
"MET_Reference_AntiKt4EMTopo",
"SoftClus" } },
18 {
"MET_SoftTrk", {
"MET_Reference_AntiKt4EMTopo",
"FinalTrk" } },
19 {
"MET_PVSoftTrk", {
"MET_Reference_AntiKt4EMTopo",
"PVSoftTrk" } },
20 {
"MET_RefJet_JVFCut", {
"MET_Reference_AntiKt4EMTopo",
"RefJet" } },
21 {
"MET_RefJet", {
"MET_Reference_AntiKt4EMTopo",
"RefJet" } },
22 {
"MET_Muon", {
"MET_Reference_AntiKt4EMTopo",
"Muons" } },
23 {
"MET_PFlow", {
"MET_Reference_AntiKt4EMPFlow",
"FinalTrk" } },
24 {
"MET_PFlow_RefEle", {
"MET_Reference_AntiKt4EMPFlow",
"RefEle" } },
25 {
"MET_PFlow_RefGamma", {
"MET_Reference_AntiKt4EMPFlow",
"RefGamma" } },
26 {
"MET_PFlow_RefTau", {
"MET_Reference_AntiKt4EMPFlow",
"RefTau" } },
27 {
"MET_PFlow_SoftClus", {
"MET_Reference_AntiKt4EMPFlow",
"SoftClus" } },
28 {
"MET_PFlow_SoftTrk", {
"MET_Reference_AntiKt4EMPFlow",
"FinalTrk" } },
29 {
"MET_PFlow_PVSoftTrk", {
"MET_Reference_AntiKt4EMPFlow",
"PVSoftTrk" } },
30 {
"MET_PFlow_RefJet_JVFCut", {
"MET_Reference_AntiKt4EMPFlow",
"RefJet" } },
31 {
"MET_PFlow_RefJet", {
"MET_Reference_AntiKt4EMPFlow",
"RefJet" } },
32 {
"MET_PFlow_Muon", {
"MET_Reference_AntiKt4EMPFlow",
"Muons" } },
33 {
"MET_LocalHadTopo", {
"MET_LocHadTopo",
"LocHadTopo" } },
34 {
"MET_LocHadTopo", {
"MET_LocHadTopo",
"LocHadTopo" } },
35 {
"MET_Topo", {
"MET_EMTopo",
"EMTopo" } },
36 {
"MET_Track", {
"MET_Track",
"Track" } },
37 {
"MET_PFlow", {
"MET_Reference_AntiKt4EMPFlow",
"FinalClus" } } } );
49 auto foundIterator = key2SubSkeyMap.find(
key );
50 if ( foundIterator == key2SubSkeyMap.end() ) {
52 return StatusCode::FAILURE;
55 ATH_MSG_FATAL(
"Mismatch of requested MET key " <<
key <<
", which comes from "
56 << foundIterator->second.first
59 return StatusCode::FAILURE;
86 return StatusCode::FAILURE;
89 if (!metCaloContainer.
isValid() ) {
91 return StatusCode::FAILURE;
95 if (!metCaloContainer.
isValid() ) {
97 return StatusCode::FAILURE;
101 bool isMETtopocalo =
false;
103 if (
key ==
"MET_Topo") isMETtopocalo =
true;
114 if (trigDecTool !=0 && !(trigDecTool->isPassed(
"L1_jXE100")))
115 return StatusCode::SUCCESS;
120 const std::string& xaod_subkey = key2SubSkeyMap.at(metKey).second;
123 std::string
name = metKey +
"_et";
125 name = metKey +
"_ex";
127 name = metKey +
"_ey";
129 name = metKey +
"_phi";
131 name = metKey +
"_sumet";
133 ex = xMissEt->
mpx() /
GeV;
134 ey = xMissEt->
mpy() /
GeV;
158 std::string
name =
"MET_"+calString +
"_et";
160 name =
"MET_" + calString +
"_ex";
162 name =
"MET_" +calString +
"_ey";
164 name =
"MET_" +calString +
"_phi";
166 name =
"MET_" +calString +
"_sumet";
168 ex = xmetCal->
mpx() /
GeV;
169 ey = xmetCal->
mpy() /
GeV;
191 return StatusCode::SUCCESS;
199 if (! jetContainer.
isValid() ) {
METMonitoringAlg(const std::string &name, ISvcLocator *pSvcLocator)
Extra patterns decribing particle interation process.
Scalar phi() const
phi method
virtual ~METMonitoringAlg()
bool isGoodEvent(const EventContext &ctx) const
Gaudi::Property< std::string > m_metTotalKey
float sumet() const
Returns.
Gaudi::Property< bool > m_dotrig
float phi() const
Returns .
const ToolHandle< Trig::TrigDecisionTool > & getTrigDecisionTool() const
Get the trigger decision tool member.
Gaudi::Property< double > m_metcut
Gaudi::Property< std::vector< std::string > > m_metKeys
SG::ReadHandleKey< xAOD::MissingETContainer > m_metContainerKey
StatusCode initialize() override
initialize
Base class for Athena Monitoring Algorithms.
Gaudi::Property< bool > m_doJetCleaning
SG::ReadHandleKey< xAOD::MissingETContainer > m_metAKt4EMTopoContainerKey
Generic monitoring tool for athena components.
::StatusCode StatusCode
StatusCode definition for legacy code.
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Principal data object for Missing ET.
float mpx() const
Returns .
Gaudi::Property< bool > m_doBadJets
void fill(const ToolHandle< GenericMonitoringTool > &groupHandle, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &&variables) const
Fills a vector of variables to a group by reference.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
ToolHandle< IJetSelector > m_jetCleaningTool
SG::ReadHandleKey< xAOD::MissingETContainer > m_metCaloContainerKey
Gaudi::Property< std::vector< std::string > > m_calStrings
Header file to be included by clients of the Monitored infrastructure.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
virtual StatusCode initialize() override
initialize
Gaudi::Property< bool > m_dometcut
Declare a monitored scalar variable.
float mpy() const
Returns .
SG::ReadHandleKey< xAOD::JetContainer > m_jetContainerKey
Gaudi::Property< bool > m_alltrigger
float met() const
Returns .