11#ifndef METUTILITIES_COLUMNAR_MET_METMAKER_H
12#define METUTILITIES_COLUMNAR_MET_METMAKER_H 1
44namespace ADD_CMODE(met) {
49 class ColumnarMETMaker
65 ColumnarMETMaker(
const std::string& name);
68 virtual ~ColumnarMETMaker();
71 virtual StatusCode
initialize()
override final;
73 virtual StatusCode rebuildMET(
74 const std::string& metKey,
80 StatusCode rebuildMET(
81 const std::string& metKey,
88 virtual StatusCode rebuildMET(
93 StatusCode rebuildMET(
99 virtual StatusCode rebuildMET(
106 StatusCode rebuildMET(
114 virtual StatusCode rebuildJetMET(
115 const std::string& metJetKey,
116 const std::string& softClusKey,
117 const std::string& softTrkKey,
122 bool doJetJVT)
const override final;
123 StatusCode rebuildJetMET(
124 const std::string& metJetKey,
125 const std::string& softClusKey,
126 const std::string& softTrkKey,
131 bool doJetJVT)
const;
133 virtual StatusCode rebuildJetMET(
134 const std::string& metJetKey,
135 const std::string& metSoftKey,
140 bool doJetJVT)
const override final;
141 StatusCode rebuildJetMET(
142 const std::string& metJetKey,
143 const std::string& metSoftKey,
148 bool doJetJVT)
const;
150 virtual StatusCode rebuildJetMET(
159 bool tracksForHardJets =
false,
160 std::vector<const xAOD::IParticle*>* softConst = 0)
const override final;
161 StatusCode rebuildJetMET(
171 bool tracksForHardJets =
false,
172 std::vector<const xAOD::IParticle*>* softConst = 0)
const;
174 virtual StatusCode rebuildTrackMET(
175 const std::string& metJetKey,
176 const std::string& softTrkKey,
181 bool doJetJVT)
const override final;
182 StatusCode rebuildTrackMET(
183 const std::string& metJetKey,
184 const std::string& softTrkKey,
189 bool doJetJVT)
const;
196 bool doJetJVT)
const override final;
203 bool doJetJVT)
const;
205 virtual StatusCode markInvisible(
209 StatusCode markInvisible(
226 float m_missObjWarningPtThreshold;
228 bool m_jetCorrectPhi{};
229 double m_jetMinEfrac{};
230 double m_jetMinWeightedPt{};
231 std::string m_jetConstitScaleMom;
232 std::string m_jetJvtMomentName;
233 std::string m_jetRejectionDec;
235 double m_CenJetPtCut{}, m_FwdJetPtCut{} ;
236 double m_JvtCut{}, m_JvtPtMax{};
237 double m_JetEtaMax{};
238 double m_JetEtaForw{};
240 std::string m_jetSelection;
244 double m_customCenJetPtCut{},m_customFwdJetPtCut{};
245 double m_customJvtPtMax{};
246 std::string m_customJvtWP;
249 bool m_doSoftTruth{};
252 bool m_useGhostMuons{};
253 bool m_doRemoveMuonJets{};
254 bool m_doRemoveElecTrks{};
255 bool m_doRemoveElecTrksEM{};
256 bool m_doSetMuonJetEMScale{};
257 bool m_skipSystematicJetSelection{};
260 bool m_orCaloTaggedMuon{};
261 bool m_greedyPhotons{};
262 bool m_veryGreedyPhotons{};
265 int m_jetTrkNMuOlap{};
266 double m_jetWidthMuOlap{};
267 double m_jetPsEMuOlap{};
268 double m_jetEmfMuOlap{};
269 double m_jetTrkPtMuPt{};
270 double m_muIDPTJetPtRatioMuOlap{};
272 ToolHandle<InDet::IInDetTrackSelectionTool> m_trkseltool;
273 ToolHandle<IAsgSelectionTool> m_JvtTool;
301 Gaudi::Property<std::string> m_inputPreselectionName {
this,
"inputPreselection",
""};
302 std::optional<columnar::ParticleAccessor<char>> m_inputPreselectionAcc;
316 std::optional<columnar::MetHelpers::InputMomentumAccessors<columnar::JetDef>> m_jetConstitScaleMomAcc;
317 std::optional<columnar::MetHelpers::InputMomentumAccessors<columnar::JetDef>> m_jetConstitScaleMomFixedAcc;
318 std::optional<columnar::JetAccessor<char>> m_acc_jetRejectionDec;
325 Gaudi::Property<unsigned> m_columnarOperation {
this,
"columnarOperation", 0};
326 Gaudi::Property<std::string> m_columnarTermName {
this,
"columnarTermName",
""};
327 Gaudi::Property<unsigned> m_columnarParticleType {
this,
"columnarParticleType", 0};
328 Gaudi::Property<std::string> m_columnarJetKey {
this,
"columnarJetKey",
""};
329 Gaudi::Property<std::string> m_columnarSoftClusKey {
this,
"columnarSoftClusKey",
""};
330 Gaudi::Property<bool> m_columnarDoJetJVT {
this,
"columnarDoJetJVT",
false};
ElementLink implementation for ROOT usage.
Property holding a SG store/key/clid from which a ReadHandle is made.
a special "accessor" that allows to do the MET term lookup by name
a special "decorator" for decorating the weight an object contributes to a MET term
Policy
Policies on usage checks.
ObjectRange< Met1Def > Met1Range
AccessorTemplate< CI, CT, ColumnAccessMode::input, CM > ColumnAccessor
ObjectRange< JetDef > JetRange
OptObjectId< Met1Def > OptMet1Id
AccessorTemplate< PhotonDef, CT, ColumnAccessMode::input, CM > PhotonAccessor
ObjectRange< EventContextDef > EventContextRange
AccessorTemplate< ParticleDef, CT, ColumnAccessMode::input, CM > ParticleAccessor
AccessorTemplate< MutableMetDef, CT, ColumnAccessMode::input, CM > MutableMetAccessor
AccessorTemplate< JetDef, CT, ColumnAccessMode::input, CM > JetAccessor
OptObjectId< MutableMetDef > OptMutableMetId
ObjectId< Met1Def > Met1Id
ObjectId< MutableMetDef > MutableMetId
ObjectRange< MutableMetDef > MutableMetRange
AccessorTemplate< ElectronDef, CT, ColumnAccessMode::input, CM > ElectronAccessor
ObjectRange< ParticleDef > ParticleRange
AccessorTemplate< MuonDef, CT, ColumnAccessMode::input, CM > MuonAccessor
AccessorTemplate< Met1Def, CT, ColumnAccessMode::input, CM > Met1Accessor
ObjectType
Type of objects that have a representation in the xAOD EDM.
MissingET_v1 MissingET
Version control by type defintion.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Vertex_v1 Vertex
Define the latest version of the vertex class.
MissingETContainer_v1 MissingETContainer
JetContainer_v1 JetContainer
Definition of the current "jet container version".
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.
a special accessor for the MET momentum
an accessor that allows to access the xAOD object type of an input object