36 {
37
38
40
41 class METMaker
44
45 {
46
48
49
50
52 public:
53
54
55
57 METMaker(const std::string& name);
58
60 virtual ~METMaker();
61
62
64
65 virtual StatusCode rebuildMET(
66 const std::string& metKey,
70 xAOD::MissingETAssociationHelper& helper,
71 MissingETBase::UsageHandler::Policy objScale) const override final;
72
73 virtual StatusCode rebuildMET(
74 xAOD::MissingET* met,
76 xAOD::MissingETAssociationHelper& helper,
77 MissingETBase::UsageHandler::Policy objScale) const override final;
78
79 virtual StatusCode rebuildMET(
80 xAOD::MissingET* met,
82 xAOD::MissingETAssociationHelper& helper,
83 MissingETBase::UsageHandler::Policy p,
84 bool removeOverlap,
85 MissingETBase::UsageHandler::Policy objScale) const override final;
86
87 virtual StatusCode rebuildJetMET(
88 const std::string& metJetKey,
89 const std::string& softClusKey,
90 const std::string& softTrkKey,
94 xAOD::MissingETAssociationHelper& helper,
95 bool doJetJVT) const override final;
96
97 virtual StatusCode rebuildJetMET(
98 const std::string& metJetKey,
99 const std::string& metSoftKey,
103 xAOD::MissingETAssociationHelper& helper,
104 bool doJetJVT) const override final;
105
106 virtual StatusCode rebuildJetMET(
107 xAOD::MissingET* metJet,
109 xAOD::MissingETAssociationHelper& helper,
110 xAOD::MissingET* metSoftClus,
111 const xAOD::MissingET* coreSoftClus,
112 xAOD::MissingET* metSoftTrk,
113 const xAOD::MissingET* coreSoftTrk,
114 bool doJetJVT,
115 bool tracksForHardJets = false,
116 std::vector<const xAOD::IParticle*>* softConst = 0) const override final;
117
118 virtual StatusCode rebuildTrackMET(
119 const std::string& metJetKey,
120 const std::string& softTrkKey,
124 xAOD::MissingETAssociationHelper& helper,
125 bool doJetJVT) const override final;
126
127 virtual StatusCode rebuildTrackMET(xAOD::MissingET* metJet,
129 xAOD::MissingETAssociationHelper& helper,
130 xAOD::MissingET* metSoftTrk,
131 const xAOD::MissingET* coreSoftTrk,
132 bool doJetJVT) const override final;
133
134 virtual StatusCode markInvisible(
136 xAOD::MissingETAssociationHelper& helper,
138
140
143
144 bool acceptTrack(const xAOD::TrackParticle* trk, const xAOD::
Vertex* vx) const;
145 const xAOD::
Vertex* getPV() const;
146
147
149
150
151 std::unique_ptr<SG::ConstAccessor<char > > m_acc_jetRejectionDec;
152
153
154 float m_missObjWarningPtThreshold;
155
156 bool m_jetCorrectPhi{};
157 double m_jetMinEfrac{};
158 double m_jetMinWeightedPt{};
159 std::string m_jetConstitScaleMom;
160 std::string m_jetRejectionDec;
161
162 double m_CenJetPtCut{}, m_FwdJetPtCut{} ;
163 double m_JvtCut{}, m_JvtPtMax{};
164 double m_JetEtaMax{};
165 double m_JetEtaForw{};
166
167 std::string m_jetSelection;
168 std::string m_JvtWP;
169
170
171 double m_customCenJetPtCut{},m_customFwdJetPtCut{};
172 double m_customJvtPtMax{};
173 std::string m_customJvtWP;
174
175 bool m_doPFlow{};
176 bool m_doSoftTruth{};
177 bool m_doConstJet{};
178
179 bool m_useGhostMuons{};
180 bool m_doRemoveMuonJets{};
181 bool m_doRemoveElecTrks{};
182 bool m_doRemoveElecTrksEM{};
183 bool m_doSetMuonJetEMScale{};
184 bool m_skipSystematicJetSelection{};
185
186 bool m_muEloss{};
187 bool m_orCaloTaggedMuon{};
188 bool m_greedyPhotons{};
189 bool m_veryGreedyPhotons{};
190
191
192 int m_jetTrkNMuOlap{};
193 double m_jetWidthMuOlap{};
194 double m_jetPsEMuOlap{};
195 double m_jetEmfMuOlap{};
196 double m_jetTrkPtMuPt{};
197 double m_muIDPTJetPtRatioMuOlap{};
198
199 ToolHandle<InDet::IInDetTrackSelectionTool> m_trkseltool;
200 ToolHandle<IAsgSelectionTool> m_JvtTool;
201
202 SG::ReadHandleKey<xAOD::JetContainer> m_jetContainer{this, "JetContainer", "", "Name of input jet container (required if JVT decisions computed by internal tool)"};
203
205 METMaker();
206
207 };
208
209}
MissingETContainer_v1 MissingETContainer
DataVector< IParticle > IParticleContainer
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
ElementLink implementation for ROOT usage.
::StatusCode StatusCode
StatusCode definition for legacy code.