ATLAS Offline Software
PhysValMET.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // PhysValMET.h
6 // Header file for class PhysValMET
7 // Author: Daniel Buescher <daniel.buescher@cern.ch>, Philipp Mogg <philipp.mogg@cern.ch>
9 #ifndef MISSINGETDQA_PHYSVALMET_H
10 #define MISSINGETDQA_PHYSVALMET_H 1
11 
12 // STL includes
13 #include <string>
14 
15 // FrameWork includes
16 #include "GaudiKernel/ServiceHandle.h"
17 
18 // Local includes
20 
25 #include "METInterface/IMETMaker.h"
27 
28 #include "AsgTools/ToolHandle.h"
29 
30 // Root includes
31 #include "TH1.h"
32 
33 // Forward declaration
34 class IMETMaker;
37 namespace TauAnalysisTools {
38  class ITauSelectionTool;
39 }
40 
41 
42 namespace MissingEtDQA {
43 
45  : public ManagedMonitorToolBase
46 {
48  // Public methods:
50  public:
51 
52  // Copy constructor:
53 
55  PhysValMET( const std::string& type,
56  const std::string& name,
57  const IInterface* parent);
58 
60  virtual ~PhysValMET();
61 
62  // Athena algtool's Hooks
63  virtual StatusCode initialize();
64  virtual StatusCode bookHistograms();
65  virtual StatusCode fillHistograms();
66  virtual StatusCode procHistograms();
67 
68 
70  // Const methods:
72 
74  // Non-const methods:
76 
77 
79  // Private data:
81  private:
82  bool m_doTruth;
85 
88 
89  // Containers
90  std::string m_eleColl;
91  std::string m_gammaColl;
92  std::string m_tauColl;
93  std::string m_muonColl;
94  std::string m_mapname;
95  std::string m_corename;
96 
97  // Methods
98  bool Accept(const xAOD::Electron* el);
99  bool Accept(const xAOD::Photon* ph);
100  bool Accept(const xAOD::TauJet* tau);
101  bool Accept(const xAOD::Muon* muon);
102  bool Accept(const xAOD::Jet* jet, double JvtCut, ToolHandle<IJetUpdateJvt>* jvtTool);
103 
104  // vector of collections
105  std::vector <std::string> m_types;
106 
107  // vector of terms
108  std::vector <std::string> m_terms;
109 
110  // Map for names
111  std::map <std::string,std::string> m_names;
112 
113  // Hists
114  TH1D *m_MET_Track = nullptr, *m_MET_Track_x = nullptr, *m_MET_Track_y = nullptr, *m_MET_Track_phi = nullptr, *m_MET_Track_sum = nullptr;
117  TH1D *m_MET_Calo = nullptr, *m_MET_Calo_x = nullptr, *m_MET_Calo_y = nullptr, *m_MET_Calo_phi = nullptr, *m_MET_Calo_sum = nullptr;
118 
119  //Maps
120  std::map<std::string,std::vector<TH1D*> > m_MET_Ref;
121  std::map<std::string,std::vector<TH1D*> > m_MET_Ref_x;
122  std::map<std::string,std::vector<TH1D*> > m_MET_Ref_y;
123  std::map<std::string,std::vector<TH1D*> > m_MET_Ref_phi;
124  std::map<std::string,std::vector<TH1D*> > m_MET_Ref_sum;
125  std::map<std::string,std::vector<TH1D*> > m_MET_Diff_Ref;
126  std::map<std::string,std::vector<TH1D*> > m_MET_Diff_Ref_x;
127  std::map<std::string,std::vector<TH1D*> > m_MET_Diff_Ref_y;
128  std::map<std::string,std::vector<TH1D*> > m_MET_Diff_Ref_phi;
129  std::map<std::string,std::vector<TH1D*> > m_MET_Diff_Ref_sum;
130  std::map<std::string,std::vector<TH1D*> > m_MET_Cumu_Ref;
131  std::map<std::string,std::vector<TH1D*> > m_MET_Resolution_Ref;
132  std::map<std::string,std::vector<TH1D*> > m_MET_Significance_Ref;
133  std::map<std::string,std::vector<TH1D*> > m_MET_dPhi_Ref;
134  std::map<std::string,std::vector<TH2D*> > m_MET_CorrFinalTrk_Ref;
135  std::map<std::string,std::vector<TH2D*> > m_MET_CorrFinalClus_Ref;
136  std::map<std::string,std::vector<TH1D*> > m_MET_Reb;
137  std::map<std::string,std::vector<TH1D*> > m_MET_Reb_x;
138  std::map<std::string,std::vector<TH1D*> > m_MET_Reb_y;
139  std::map<std::string,std::vector<TH1D*> > m_MET_Reb_phi;
140  std::map<std::string,std::vector<TH1D*> > m_MET_Reb_sum;
141  std::map<std::string,std::vector<TH1D*> > m_MET_Diff_Reb;
142  std::map<std::string,std::vector<TH1D*> > m_MET_Diff_Reb_x;
143  std::map<std::string,std::vector<TH1D*> > m_MET_Diff_Reb_y;
144  std::map<std::string,std::vector<TH1D*> > m_MET_Diff_Reb_phi;
145  std::map<std::string,std::vector<TH1D*> > m_MET_Diff_Reb_sum;
146  std::map<std::string,std::vector<TH1D*> > m_MET_Cumu_Reb;
147  std::map<std::string,std::vector<TH1D*> > m_MET_Resolution_Reb;
148  std::map<std::string,std::vector<TH1D*> > m_MET_Significance_Reb;
149  std::map<std::string,std::vector<TH1D*> > m_MET_dPhi_Reb;
150  std::map<std::string,std::vector<TH2D*> > m_MET_CorrFinalTrk_Reb;
151  std::map<std::string,std::vector<TH2D*> > m_MET_CorrFinalClus_Reb;
152 
153  std::vector<std::string> m_dir_met;
154 
155  ToolHandle<CP::IMuonSelectionTool> m_muonSelTool {this, "MuonSelectionTool", "", "Muon selection tool"};
156  ToolHandle<IAsgElectronLikelihoodTool> m_elecSelLHTool {this, "ElectronLHSelectionTool", "", "Electron likelihood selection tool"};
157  ToolHandle<IAsgPhotonIsEMSelector> m_photonSelIsEMTool {this, "PhotonIsEMSelectionTool" , "", "Photon selection tool"};
158  ToolHandle<IJetUpdateJvt> m_jvtToolEM {this, "JVTToolEMTopo", "", "JVT tool for EMTopo jets"};
159  ToolHandle<IJetUpdateJvt> m_jvtToolPFlow {this, "JVTToolEMPFlow", "", "JVT tool forEMPFlow jets"};
160  ToolHandle<IMETMaker> m_metmakerTopo {this, "METMakerTopo", "", "METMaker for EMTopo jets"};
161  ToolHandle<IMETMaker> m_metmakerPFlow {this, "METMakerPFlow", "", "METMaker for EMPFlow jets"};
162  ToolHandle<TauAnalysisTools::ITauSelectionTool> m_tauSelTool{this, "TauSelectionTool", "", "Tau selection tool"};
163  ToolHandle<IMETMaker>* m_metmaker;
164 };
165 
166 }
167 
168 #endif //> !MISSINGETDQA_PHYSVALMET_H
MissingEtDQA::PhysValMET::m_MET_Reb_phi
std::map< std::string, std::vector< TH1D * > > m_MET_Reb_phi
Definition: PhysValMET.h:139
MissingEtDQA::PhysValMET::m_MET_PVTrack_Nominal_phi
TH1D * m_MET_PVTrack_Nominal_phi
Definition: PhysValMET.h:115
MissingEtDQA::PhysValMET::initialize
virtual StatusCode initialize()
Definition: PhysValMET.cxx:115
TauAnalysisTools
Definition: TruthCollectionMakerTau.h:16
MissingEtDQA::PhysValMET::m_MET_Diff_Reb
std::map< std::string, std::vector< TH1D * > > m_MET_Diff_Reb
Definition: PhysValMET.h:141
xAOD::muon
@ muon
Definition: TrackingPrimitives.h:195
MissingEtDQA::PhysValMET::~PhysValMET
virtual ~PhysValMET()
Destructor:
Definition: PhysValMET.cxx:74
MissingEtDQA::PhysValMET::m_MET_Track_y
TH1D * m_MET_Track_y
Definition: PhysValMET.h:114
MissingEtDQA::PhysValMET::m_muonColl
std::string m_muonColl
Definition: PhysValMET.h:93
IAsgPhotonIsEMSelector.h
ManagedMonitorToolBase
Provides functionality for users to implement and save histograms, ntuples, and summary data,...
Definition: ManagedMonitorToolBase.h:73
MissingEtDQA::PhysValMET::m_MET_Calo_sum
TH1D * m_MET_Calo_sum
Definition: PhysValMET.h:117
MissingEtDQA::PhysValMET::m_MET_Track
TH1D * m_MET_Track
Definition: PhysValMET.h:114
MissingEtDQA::PhysValMET::m_eleColl
std::string m_eleColl
Definition: PhysValMET.h:90
MissingEtDQA::PhysValMET::m_tauColl
std::string m_tauColl
Definition: PhysValMET.h:92
MissingEtDQA::PhysValMET::bookHistograms
virtual StatusCode bookHistograms()
An inheriting class should either override this function or bookHists().
Definition: PhysValMET.cxx:195
MissingEtDQA::PhysValMET::m_elecSelLHTool
ToolHandle< IAsgElectronLikelihoodTool > m_elecSelLHTool
Definition: PhysValMET.h:156
MissingEtDQA::PhysValMET::m_corename
std::string m_corename
Definition: PhysValMET.h:95
MissingEtDQA::PhysValMET::fillHistograms
virtual StatusCode fillHistograms()
An inheriting class should either override this function or fillHists().
Definition: PhysValMET.cxx:566
IMETMaker.h
MissingEtDQA
Definition: PhysValMET.cxx:46
ITauSelectionTool.h
MissingEtDQA::PhysValMET::m_MET_Diff_Reb_y
std::map< std::string, std::vector< TH1D * > > m_MET_Diff_Reb_y
Definition: PhysValMET.h:143
MissingEtDQA::PhysValMET::m_metmakerTopo
ToolHandle< IMETMaker > m_metmakerTopo
Definition: PhysValMET.h:160
MissingEtDQA::PhysValMET::PhysValMET
PhysValMET()
Default constructor:
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
MissingEtDQA::PhysValMET::m_MET_CorrFinalClus_Reb
std::map< std::string, std::vector< TH2D * > > m_MET_CorrFinalClus_Reb
Definition: PhysValMET.h:151
MissingEtDQA::PhysValMET::m_names
std::map< std::string, std::string > m_names
Definition: PhysValMET.h:111
MissingEtDQA::PhysValMET::m_terms
std::vector< std::string > m_terms
Definition: PhysValMET.h:108
MissingEtDQA::PhysValMET::m_MET_dPhi_Ref
std::map< std::string, std::vector< TH1D * > > m_MET_dPhi_Ref
Definition: PhysValMET.h:133
MissingEtDQA::PhysValMET::m_MET_PVTrack_Pileup_y
TH1D * m_MET_PVTrack_Pileup_y
Definition: PhysValMET.h:116
MissingEtDQA::PhysValMET::m_MET_PVTrack_Pileup
TH1D * m_MET_PVTrack_Pileup
Definition: PhysValMET.h:116
IMuonSelectionTool.h
ManagedMonitorToolBase.h
MissingEtDQA::PhysValMET::m_MET_PVTrack_Pileup_x
TH1D * m_MET_PVTrack_Pileup_x
Definition: PhysValMET.h:116
MissingEtDQA::PhysValMET::m_doTruth
bool m_doTruth
Definition: PhysValMET.h:82
IMETMaker
Definition: IMETMaker.h:28
IAsgElectronLikelihoodTool.h
MissingEtDQA::PhysValMET::m_MET_Ref_phi
std::map< std::string, std::vector< TH1D * > > m_MET_Ref_phi
Definition: PhysValMET.h:123
MissingEtDQA::PhysValMET::m_MET_Track_sum
TH1D * m_MET_Track_sum
Definition: PhysValMET.h:114
MissingEtDQA::PhysValMET::m_MET_Diff_Reb_x
std::map< std::string, std::vector< TH1D * > > m_MET_Diff_Reb_x
Definition: PhysValMET.h:142
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
MissingEtDQA::PhysValMET::m_gammaColl
std::string m_gammaColl
Definition: PhysValMET.h:91
MissingEtDQA::PhysValMET::m_MET_Reb_y
std::map< std::string, std::vector< TH1D * > > m_MET_Reb_y
Definition: PhysValMET.h:138
MissingEtDQA::PhysValMET::m_MET_PVTrack_Nominal
TH1D * m_MET_PVTrack_Nominal
Definition: PhysValMET.h:115
MissingEtDQA::PhysValMET::m_metmakerPFlow
ToolHandle< IMETMaker > m_metmakerPFlow
Definition: PhysValMET.h:161
MissingEtDQA::PhysValMET::m_jvtToolPFlow
ToolHandle< IJetUpdateJvt > m_jvtToolPFlow
Definition: PhysValMET.h:159
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
xAOD::TauJet_v3
Class describing a tau jet.
Definition: TauJet_v3.h:41
MissingEtDQA::PhysValMET::m_MET_Significance_Ref
std::map< std::string, std::vector< TH1D * > > m_MET_Significance_Ref
Definition: PhysValMET.h:132
MissingEtDQA::PhysValMET::m_MET_Calo_x
TH1D * m_MET_Calo_x
Definition: PhysValMET.h:117
MissingEtDQA::PhysValMET
Definition: PhysValMET.h:46
MissingEtDQA::PhysValMET::m_MET_Resolution_Reb
std::map< std::string, std::vector< TH1D * > > m_MET_Resolution_Reb
Definition: PhysValMET.h:147
test_pyathena.parent
parent
Definition: test_pyathena.py:15
IAsgPhotonIsEMSelector
Interface to tool to select photons.
Definition: IAsgPhotonIsEMSelector.h:25
plotIsoValidation.el
el
Definition: plotIsoValidation.py:197
MissingEtDQA::PhysValMET::m_MET_Resolution_Ref
std::map< std::string, std::vector< TH1D * > > m_MET_Resolution_Ref
Definition: PhysValMET.h:131
MissingEtDQA::PhysValMET::m_muonSelTool
ToolHandle< CP::IMuonSelectionTool > m_muonSelTool
Definition: PhysValMET.h:155
MissingEtDQA::PhysValMET::m_mapname
std::string m_mapname
Definition: PhysValMET.h:94
MissingEtDQA::PhysValMET::m_MET_dPhi_Reb
std::map< std::string, std::vector< TH1D * > > m_MET_dPhi_Reb
Definition: PhysValMET.h:149
MissingEtDQA::PhysValMET::m_MET_PVTrack_Pileup_sum
TH1D * m_MET_PVTrack_Pileup_sum
Definition: PhysValMET.h:116
MissingEtDQA::PhysValMET::m_MET_Ref
std::map< std::string, std::vector< TH1D * > > m_MET_Ref
Definition: PhysValMET.h:120
MissingEtDQA::PhysValMET::m_MET_PVTrack_Nominal_x
TH1D * m_MET_PVTrack_Nominal_x
Definition: PhysValMET.h:115
MissingEtDQA::PhysValMET::m_MET_Significance_Reb
std::map< std::string, std::vector< TH1D * > > m_MET_Significance_Reb
Definition: PhysValMET.h:148
MissingEtDQA::PhysValMET::m_MET_Reb_x
std::map< std::string, std::vector< TH1D * > > m_MET_Reb_x
Definition: PhysValMET.h:137
MissingEtDQA::PhysValMET::m_MET_Diff_Reb_sum
std::map< std::string, std::vector< TH1D * > > m_MET_Diff_Reb_sum
Definition: PhysValMET.h:145
MissingEtDQA::PhysValMET::m_MET_Track_phi
TH1D * m_MET_Track_phi
Definition: PhysValMET.h:114
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
MissingEtDQA::PhysValMET::m_MET_Diff_Reb_phi
std::map< std::string, std::vector< TH1D * > > m_MET_Diff_Reb_phi
Definition: PhysValMET.h:144
MissingEtDQA::PhysValMET::m_dir_met
std::vector< std::string > m_dir_met
Definition: PhysValMET.h:153
MissingEtDQA::PhysValMET::m_MET_Cumu_Reb
std::map< std::string, std::vector< TH1D * > > m_MET_Cumu_Reb
Definition: PhysValMET.h:146
MissingEtDQA::PhysValMET::m_MET_Cumu_Ref
std::map< std::string, std::vector< TH1D * > > m_MET_Cumu_Ref
Definition: PhysValMET.h:130
MissingEtDQA::PhysValMET::m_jvtToolEM
ToolHandle< IJetUpdateJvt > m_jvtToolEM
Definition: PhysValMET.h:158
MissingEtDQA::PhysValMET::m_metmaker
ToolHandle< IMETMaker > * m_metmaker
Definition: PhysValMET.h:163
MissingEtDQA::PhysValMET::m_MET_Calo
TH1D * m_MET_Calo
Definition: PhysValMET.h:117
MissingEtDQA::PhysValMET::m_photonSelIsEMTool
ToolHandle< IAsgPhotonIsEMSelector > m_photonSelIsEMTool
Definition: PhysValMET.h:157
xAOD::Electron_v1
Definition: Electron_v1.h:34
MissingEtDQA::PhysValMET::m_MET_Ref_sum
std::map< std::string, std::vector< TH1D * > > m_MET_Ref_sum
Definition: PhysValMET.h:124
IAsgElectronLikelihoodTool
Interface to tool to select electrons.
Definition: IAsgElectronLikelihoodTool.h:27
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
MissingEtDQA::PhysValMET::m_MET_Reb
std::map< std::string, std::vector< TH1D * > > m_MET_Reb
Definition: PhysValMET.h:136
xAOD::Photon_v1
Definition: Photon_v1.h:37
MissingEtDQA::PhysValMET::m_MET_Diff_Ref
std::map< std::string, std::vector< TH1D * > > m_MET_Diff_Ref
Definition: PhysValMET.h:125
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
MissingEtDQA::PhysValMET::m_MET_Ref_x
std::map< std::string, std::vector< TH1D * > > m_MET_Ref_x
Definition: PhysValMET.h:121
IJetUpdateJvt.h
MissingEtDQA::PhysValMET::m_MET_Diff_Ref_phi
std::map< std::string, std::vector< TH1D * > > m_MET_Diff_Ref_phi
Definition: PhysValMET.h:128
MissingEtDQA::PhysValMET::m_MET_Track_x
TH1D * m_MET_Track_x
Definition: PhysValMET.h:114
MissingEtDQA::PhysValMET::m_tauSelTool
ToolHandle< TauAnalysisTools::ITauSelectionTool > m_tauSelTool
Definition: PhysValMET.h:162
MissingEtDQA::PhysValMET::m_types
std::vector< std::string > m_types
Definition: PhysValMET.h:105
MissingEtDQA::PhysValMET::m_MET_CorrFinalTrk_Reb
std::map< std::string, std::vector< TH2D * > > m_MET_CorrFinalTrk_Reb
Definition: PhysValMET.h:150
MissingEtDQA::PhysValMET::m_MET_CorrFinalTrk_Ref
std::map< std::string, std::vector< TH2D * > > m_MET_CorrFinalTrk_Ref
Definition: PhysValMET.h:134
MissingEtDQA::PhysValMET::m_MET_CorrFinalClus_Ref
std::map< std::string, std::vector< TH2D * > > m_MET_CorrFinalClus_Ref
Definition: PhysValMET.h:135
MissingEtDQA::PhysValMET::m_MET_Calo_phi
TH1D * m_MET_Calo_phi
Definition: PhysValMET.h:117
MissingEtDQA::PhysValMET::m_doMETRefPlots
bool m_doMETRefPlots
Definition: PhysValMET.h:84
ToolHandle.h
MissingEtDQA::PhysValMET::m_MET_PVTrack_Nominal_y
TH1D * m_MET_PVTrack_Nominal_y
Definition: PhysValMET.h:115
MissingEtDQA::PhysValMET::m_MET_PVTrack_Nominal_sum
TH1D * m_MET_PVTrack_Nominal_sum
Definition: PhysValMET.h:115
MissingEtDQA::PhysValMET::m_MET_Diff_Ref_sum
std::map< std::string, std::vector< TH1D * > > m_MET_Diff_Ref_sum
Definition: PhysValMET.h:129
MissingEtDQA::PhysValMET::m_MET_Reb_sum
std::map< std::string, std::vector< TH1D * > > m_MET_Reb_sum
Definition: PhysValMET.h:140
MissingEtDQA::PhysValMET::m_MET_Calo_y
TH1D * m_MET_Calo_y
Definition: PhysValMET.h:117
MissingEtDQA::PhysValMET::Accept
bool Accept(const xAOD::Electron *el)
Definition: PhysValMET.cxx:1503
MissingEtDQA::PhysValMET::procHistograms
virtual StatusCode procHistograms()
An inheriting class should either override this function or finalHists().
Definition: PhysValMET.cxx:1370
MissingEtDQA::PhysValMET::m_MET_Diff_Ref_x
std::map< std::string, std::vector< TH1D * > > m_MET_Diff_Ref_x
Definition: PhysValMET.h:126
MissingEtDQA::PhysValMET::m_MET_Diff_Ref_y
std::map< std::string, std::vector< TH1D * > > m_MET_Diff_Ref_y
Definition: PhysValMET.h:127
MissingEtDQA::PhysValMET::m_inputIsDAOD
bool m_inputIsDAOD
Definition: PhysValMET.h:83
MissingEtDQA::PhysValMET::m_MET_PVTrack_Pileup_phi
TH1D * m_MET_PVTrack_Pileup_phi
Definition: PhysValMET.h:116
MissingEtDQA::PhysValMET::m_MET_Ref_y
std::map< std::string, std::vector< TH1D * > > m_MET_Ref_y
Definition: PhysValMET.h:122