ATLAS Offline Software
METMonTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef METMonTool_H
6 #define METMonTool_H
7 
8 
9 // **********************************************************************
10 // METMonTool.cxx
11 // AUTHORS: Michele Consonni
12 // **********************************************************************
13 
14 
17 
18 
21 #include "xAODJet/JetContainer.h"
23 #include "xAODMuon/MuonContainer.h"
24 #include <string>
25 #include <vector>
26 
27 #include "TH1.h"
28 #include "TH2.h"
29 #include "TProfile.h"
30 #include "TProfile2D.h"
31 #include "TDirectory.h"
32 class IInterface;
33 class StatusCode;
34 
35 
46 {
47 
48  public:
49 
50  METMonTool( const std::string& type, const std::string& name, const IInterface* parent );
51  ~METMonTool();
52 
54 
56 
58  StatusCode bookSourcesHistograms( std::string& metName, MonGroup& met_mongroup, bool doProfiles );
62  StatusCode bookProfileHistograms( std::string& metName, const char* objName, MonGroup& met_mongroup, int* index);
63 
68  StatusCode fillProfileHistograms( float et, float phi, float objEta, float objPhi, int i );
69 
71 
72  protected:
73 
74  ToolHandle<GenericMonitoringTool> m_genTool{ this, "GenTool", "", "Generic monitoring tool" };
75 
76 
77  StringProperty m_suffix{ this, "NameSuffix", "", "" };
78  // TB this needs to be converted into the ReadHandles, for now doing c++11 move
79  StringArrayProperty m_metKeys {this, "metKeys", {"MET_Base", "MET_Topo", "MET_Track"}};
80  SG::ReadHandleKeyArray<xAOD::MissingETContainer> m_metKeysFull {this, "metKeysFull", {}, "Don't set this manually, please"};
81  SG::ReadHandleKey<xAOD::MissingETContainer> m_metForCut {this, "metForCut", "MET_Reference_AntiKt4LCTopo", "MET object for cuts"};
82  SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey {this, "eventInfoKey", "EventInfo"};
83  StringProperty m_metFinKey {this, "metFinKey", "MET_RefFinal"};
84  StringProperty m_metCalKey {this, "metCalKey", "MET_Calo"};
85  StringProperty m_metRegKey {this, "metRegKey", "", "Set to MET_TruthRegions if desired"};
86  SG::ReadHandleKey<xAOD::JetContainer> m_jetColKey {this, "jetColKey", "AntiKt4LCTopoJets"};
87  SG::ReadHandleKey<xAOD::ElectronContainer> m_eleColKey {this, "eleColKey", "Electrons"};
89 
90 
91 
92 
93  const size_t m_calIndices = 7;
94  const size_t m_regIndices = 3;
95  const std::vector<std::string> m_calStrings {
96  "PEMB", "EMB", "PEME", "EME", "TILE", "HEC", "FCAL" };
97  std::vector<std::string> m_regStrings {
98  "Central", "EndCap", "Forward" };
99  Gaudi::Property<bool> m_met_cut_80 { this, "doMetCut80", false, "Documentation?" };
100 
101  Gaudi::Property<int> m_etabin{ this, "nEtaBins", 100, "Documentation?" };
102  Gaudi::Property<int> m_phibin{ this, "nPhiBins", 100, "Documentation?" };
103  Gaudi::Property<int> m_etbin { this, "nEtBins", 800, "Documentation?" };
104  Gaudi::Property<float> m_met_cut{ this, "metCut", 0., "Documentation?" };
105  Gaudi::Property<float> m_etrange{ this, "EtRange", 400., "Documentation?" };
106  Gaudi::Property<float> m_etrangeSumFactor{ this, "SumEtRangeFactor", 10., "Documentation?" };
107 
108  Gaudi::Property<std::vector<float>> m_etrangeCalFactors{ this, "EtRangeCalFactors",
109  { 0.2, 0.6, 0.1, 0.5, 0.5, 0.4, 0.3 }, "" };
110 
111  Gaudi::Property<std::vector<float>> m_etrangeRegFactors{ this, "EtRangeRegFactors",
112  { 0.1, 0.1, 0.1 }, "" };
113 
114  Gaudi::Property<bool> m_doFillNegativeSumEt{ this, "FillNegativeSumEt", false , "" };
115  Gaudi::Property<float> m_tos{ this, "YaxisTitleOffset", 1.25, ""};
116  float m_truncatedMean = 200.;
117 
118  std::vector<TH1*> m_et;
119  std::vector<TH1*> m_ex;
120  std::vector<TH1*> m_ey;
121  std::vector<TH1*> m_phi;
122  std::vector<TH1*> m_sumet;
125 
126  std::vector<TProfile*> m_metVsEta;
127  //std::vector<TProfile*> m_metParaVsEta;
128  //std::vector<TProfile*> m_metPerpVsEta;
129  std::vector<TProfile*> m_dphiVsEta;
130  std::vector<TProfile*> m_metVsPhi;
131  //std::vector<TProfile*> m_metParaVsPhi;
132  //std::vector<TProfile*> m_metPerpVsPhi;
133  std::vector<TProfile*> m_dphiVsPhi;
134  std::vector<TProfile2D*> m_metVsEtaPhi;
135 
136  std::vector<TH1*> m_etCal;
137  std::vector<TH1*> m_exCal;
138  std::vector<TH1*> m_eyCal;
139  std::vector<TH1*> m_phiCal;
140  std::vector<TH1*> m_sumetCal;
141 
142  std::vector<TH1*> m_etReg;
143  std::vector<TH1*> m_exReg;
144  std::vector<TH1*> m_eyReg;
145  std::vector<TH1*> m_phiReg;
146  std::vector<TH1*> m_sumetReg;
147 
151 
155 
159 
161 
162 
163 
164  Gaudi::Property<bool> m_doJetcleaning{ this, "doJetcleaning", false, "" };
165  Gaudi::Property<bool> m_badJets{ this, "badJets", false, "" };
166 
168  Gaudi::Property<int> m_maxNumContainerWarnings{ this, "maxNumContainerWarnings", 10, "" };
169 
171  std::vector<int> m_ContainerWarnings_metKeys;
172 
173  ToolHandle<IJetSelector> m_selTool{ this, "JetSelectorTool", "", ""};
174 
175  ITHistSvc * m_thistSvc;
176 };
177 
178 
179 #endif // METMonTool_H
METMonTool::m_regStrings
std::vector< std::string > m_regStrings
Definition: METMonTool.h:97
METMonTool::bookProfileHistograms
StatusCode bookProfileHistograms(std::string &metName, const char *objName, MonGroup &met_mongroup, int *index)
Definition: METMonTool.cxx:665
METMonTool::fillCalosHistograms
StatusCode fillCalosHistograms()
Definition: METMonTool.cxx:1031
METMonTool::m_phiMean
TProfile * m_phiMean
Definition: METMonTool.h:150
METMonTool::m_phiCalMean
TProfile * m_phiCalMean
Definition: METMonTool.h:154
METMonTool::m_iJet
int m_iJet
Definition: METMonTool.h:160
et
Extra patterns decribing particle interation process.
METMonTool::m_eyCal
std::vector< TH1 * > m_eyCal
Definition: METMonTool.h:138
METMonTool::m_iMuo
int m_iMuo
Definition: METMonTool.h:160
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
METMonTool::m_etCal
std::vector< TH1 * > m_etCal
Definition: METMonTool.h:136
METMonTool
METMonTool class.
Definition: METMonTool.h:46
METMonTool::m_truncatedMean
float m_truncatedMean
Definition: METMonTool.h:116
METMonTool::m_exMean
TProfile * m_exMean
Definition: METMonTool.h:148
METMonTool::m_maxNumContainerWarnings
Gaudi::Property< int > m_maxNumContainerWarnings
Set Number of WARNINGs displayed for failure of container retrieval.
Definition: METMonTool.h:168
METMonTool::m_metCalKey
StringProperty m_metCalKey
Definition: METMonTool.h:84
METMonTool::m_metVsSumEt
TProfile * m_metVsSumEt
Definition: METMonTool.h:123
ManagedMonitorToolBase
Provides functionality for users to implement and save histograms, ntuples, and summary data,...
Definition: ManagedMonitorToolBase.h:74
index
Definition: index.py:1
METMonTool::m_ContainerWarnings_Muon
int m_ContainerWarnings_Muon
Definition: METMonTool.h:170
METMonTool::m_phiReg
std::vector< TH1 * > m_phiReg
Definition: METMonTool.h:145
METMonTool::clearHistograms
StatusCode clearHistograms()
Definition: METMonTool.cxx:233
METMonTool::m_metFinKey
StringProperty m_metFinKey
Definition: METMonTool.h:83
METMonTool::m_phibin
Gaudi::Property< int > m_phibin
Definition: METMonTool.h:102
METMonTool::m_ContainerWarnings_Jet
int m_ContainerWarnings_Jet
Definition: METMonTool.h:170
METMonTool::m_eyMean
TProfile * m_eyMean
Definition: METMonTool.h:149
METMonTool::m_eyReg
std::vector< TH1 * > m_eyReg
Definition: METMonTool.h:144
METMonTool::m_etrangeCalFactors
Gaudi::Property< std::vector< float > > m_etrangeCalFactors
Definition: METMonTool.h:108
METMonTool::m_regIndices
const size_t m_regIndices
Definition: METMonTool.h:94
METMonTool::m_suffix
StringProperty m_suffix
Definition: METMonTool.h:77
METMonTool::fillHistograms
StatusCode fillHistograms()
An inheriting class should either override this function or fillHists().
Definition: METMonTool.cxx:784
SG::HandleKeyArray
Definition: StoreGate/StoreGate/HandleKeyArray.h:38
METMonTool::m_metVsPhi
std::vector< TProfile * > m_metVsPhi
Definition: METMonTool.h:130
METMonTool::m_genTool
ToolHandle< GenericMonitoringTool > m_genTool
Definition: METMonTool.h:74
IJetSelector.h
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
METMonTool::m_eyRegMean
TProfile * m_eyRegMean
Definition: METMonTool.h:157
METMonTool::bookSourcesHistograms
StatusCode bookSourcesHistograms(std::string &metName, MonGroup &met_mongroup, bool doProfiles)
Definition: METMonTool.cxx:270
METMonTool::initialize
StatusCode initialize()
Definition: METMonTool.cxx:79
METMonTool::m_dphiVsPhi
std::vector< TProfile * > m_dphiVsPhi
Definition: METMonTool.h:133
METMonTool::m_eventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition: METMonTool.h:82
METMonTool::bookCalosHistograms
StatusCode bookCalosHistograms(MonGroup &met_calos)
Definition: METMonTool.cxx:398
METMonTool::m_ey
std::vector< TH1 * > m_ey
Definition: METMonTool.h:120
METMonTool::m_phi
std::vector< TH1 * > m_phi
Definition: METMonTool.h:121
METMonTool::fillSourcesHistograms
StatusCode fillSourcesHistograms()
Definition: METMonTool.cxx:809
METMonTool::m_eyCalMean
TProfile * m_eyCalMean
Definition: METMonTool.h:153
METMonTool::m_exReg
std::vector< TH1 * > m_exReg
Definition: METMonTool.h:143
METMonTool::m_metForCut
SG::ReadHandleKey< xAOD::MissingETContainer > m_metForCut
Definition: METMonTool.h:81
ManagedMonitorToolBase.h
METMonTool::m_dphiVsEta
std::vector< TProfile * > m_dphiVsEta
Definition: METMonTool.h:129
ManagedMonitorToolBase::MonGroup
A container of information describing a monitoring object.
Definition: ManagedMonitorToolBase.h:138
GenericMonitoringTool.h
METMonTool::m_phiCal
std::vector< TH1 * > m_phiCal
Definition: METMonTool.h:139
METMonTool::m_doFillNegativeSumEt
Gaudi::Property< bool > m_doFillNegativeSumEt
Definition: METMonTool.h:114
METMonTool::m_metRegKey
StringProperty m_metRegKey
Definition: METMonTool.h:85
ElectronContainer.h
METMonTool::m_ex
std::vector< TH1 * > m_ex
Definition: METMonTool.h:119
lumiFormat.i
int i
Definition: lumiFormat.py:92
METMonTool::m_etrangeRegFactors
Gaudi::Property< std::vector< float > > m_etrangeRegFactors
Definition: METMonTool.h:111
METMonTool::m_sumetReg
std::vector< TH1 * > m_sumetReg
Definition: METMonTool.h:146
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
METMonTool::m_calIndices
const size_t m_calIndices
Definition: METMonTool.h:93
METMonTool::m_tos
Gaudi::Property< float > m_tos
Definition: METMonTool.h:115
METMonTool::m_thistSvc
ITHistSvc * m_thistSvc
used only if m_selType == FromTool
Definition: METMonTool.h:175
METMonTool::m_etbin
Gaudi::Property< int > m_etbin
Definition: METMonTool.h:103
test_pyathena.parent
parent
Definition: test_pyathena.py:15
METMonTool::m_doJetcleaning
Gaudi::Property< bool > m_doJetcleaning
Definition: METMonTool.h:164
METMonTool::m_met_cut_80
Gaudi::Property< bool > m_met_cut_80
Definition: METMonTool.h:99
METMonTool::m_exCal
std::vector< TH1 * > m_exCal
Definition: METMonTool.h:137
METMonTool::m_etrangeSumFactor
Gaudi::Property< float > m_etrangeSumFactor
Definition: METMonTool.h:106
METMonTool::m_etReg
std::vector< TH1 * > m_etReg
Definition: METMonTool.h:142
METMonTool::procHistograms
StatusCode procHistograms()
An inheriting class should either override this function or finalHists().
Definition: METMonTool.cxx:1182
METMonTool::m_jetColKey
SG::ReadHandleKey< xAOD::JetContainer > m_jetColKey
Definition: METMonTool.h:86
METMonTool::m_iEle
int m_iEle
Definition: METMonTool.h:160
METMonTool::METMonTool
METMonTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: METMonTool.cxx:74
METMonTool::bookHistograms
StatusCode bookHistograms()
An inheriting class should either override this function or bookHists().
Definition: METMonTool.cxx:160
METMonTool::m_sumet
std::vector< TH1 * > m_sumet
Definition: METMonTool.h:122
METMonTool::fillProfileHistograms
StatusCode fillProfileHistograms(float et, float phi, float objEta, float objPhi, int i)
Definition: METMonTool.cxx:1155
METMonTool::m_exRegMean
TProfile * m_exRegMean
Definition: METMonTool.h:156
METMonTool::m_phiRegMean
TProfile * m_phiRegMean
Definition: METMonTool.h:158
METMonTool::m_eleColKey
SG::ReadHandleKey< xAOD::ElectronContainer > m_eleColKey
Definition: METMonTool.h:87
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
METMonTool::m_metVsEta
std::vector< TProfile * > m_metVsEta
Definition: METMonTool.h:126
TProfile
Definition: rootspy.cxx:515
METMonTool::m_etrange
Gaudi::Property< float > m_etrange
Definition: METMonTool.h:105
MuonContainer.h
METMonTool::~METMonTool
~METMonTool()
Definition: METMonTool.cxx:153
METMonTool::m_metVsEtaPhi
std::vector< TProfile2D * > m_metVsEtaPhi
Definition: METMonTool.h:134
METMonTool::bookSummaryHistograms
StatusCode bookSummaryHistograms(MonGroup &met_summary)
Definition: METMonTool.cxx:583
METMonTool::m_etabin
Gaudi::Property< int > m_etabin
Definition: METMonTool.h:101
JetContainer.h
METMonTool::m_metKeys
StringArrayProperty m_metKeys
Definition: METMonTool.h:79
METMonTool::m_sumetCal
std::vector< TH1 * > m_sumetCal
Definition: METMonTool.h:140
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
METMonTool::fillRegionsHistograms
StatusCode fillRegionsHistograms()
Definition: METMonTool.cxx:1105
METMonTool::m_calStrings
const std::vector< std::string > m_calStrings
Definition: METMonTool.h:95
METMonTool::m_met_cut
Gaudi::Property< float > m_met_cut
Definition: METMonTool.h:104
METMonTool::m_et
std::vector< TH1 * > m_et
Definition: METMonTool.h:118
METMonTool::m_exCalMean
TProfile * m_exCalMean
Definition: METMonTool.h:152
METMonTool::bookRegionsHistograms
StatusCode bookRegionsHistograms(MonGroup &met_regions)
Definition: METMonTool.cxx:490
METMonTool::m_metVsMetPhi
TProfile * m_metVsMetPhi
Definition: METMonTool.h:124
METMonTool::m_ContainerWarnings_Ele
int m_ContainerWarnings_Ele
Definition: METMonTool.h:170
METMonTool::m_ContainerWarnings_metKeys
std::vector< int > m_ContainerWarnings_metKeys
Definition: METMonTool.h:171
METMonTool::m_selTool
ToolHandle< IJetSelector > m_selTool
Definition: METMonTool.h:173
METMonTool::m_muoColKey
SG::ReadHandleKey< xAOD::MuonContainer > m_muoColKey
Definition: METMonTool.h:88
MissingETContainer.h
METMonTool::m_metKeysFull
SG::ReadHandleKeyArray< xAOD::MissingETContainer > m_metKeysFull
Definition: METMonTool.h:80
METMonTool::m_badJets
Gaudi::Property< bool > m_badJets
Definition: METMonTool.h:165