 |
ATLAS Offline Software
|
#include <ColumnarMETMaker.h>
|
| ColumnarMETMaker (const std::string &name) |
| Constructor with parameters: More...
|
|
virtual | ~ColumnarMETMaker () |
| Destructor: More...
|
|
virtual StatusCode | initialize () override final |
| Dummy implementation of the initialisation function. More...
|
|
virtual StatusCode | rebuildMET (const std::string &metKey, xAOD::Type::ObjectType metType, xAOD::MissingETContainer *metCont, const xAOD::IParticleContainer *collection, xAOD::MissingETAssociationHelper &helper, MissingETBase::UsageHandler::Policy objScale) const override final |
|
StatusCode | rebuildMET (const std::string &metKey, xAOD::Type::ObjectType metType, columnar::MutableMetRange metCont, columnar::ParticleRange collection, columnar::MetAssociationHelper<> helper, MissingETBase::UsageHandler::Policy objScale) const |
|
virtual StatusCode | rebuildMET (xAOD::MissingET *met, const xAOD::IParticleContainer *collection, xAOD::MissingETAssociationHelper &helper, MissingETBase::UsageHandler::Policy objScale) const override final |
|
StatusCode | rebuildMET (columnar::MutableMetId met, columnar::ParticleRange collection, columnar::MetAssociationHelper<> helper, MissingETBase::UsageHandler::Policy objScale) const |
|
virtual StatusCode | rebuildMET (xAOD::MissingET *met, const xAOD::IParticleContainer *collection, xAOD::MissingETAssociationHelper &helper, MissingETBase::UsageHandler::Policy p, bool removeOverlap, MissingETBase::UsageHandler::Policy objScale) const override final |
|
StatusCode | rebuildMET (columnar::MutableMetId met, columnar::ParticleRange collection, columnar::MetAssociationHelper<> helper, MissingETBase::UsageHandler::Policy p, bool removeOverlap, MissingETBase::UsageHandler::Policy objScale) const |
|
virtual StatusCode | rebuildJetMET (const std::string &metJetKey, const std::string &softClusKey, const std::string &softTrkKey, xAOD::MissingETContainer *metCont, const xAOD::JetContainer *jets, const xAOD::MissingETContainer *metCoreCont, xAOD::MissingETAssociationHelper &helper, bool doJetJVT) const override final |
|
StatusCode | rebuildJetMET (const std::string &metJetKey, const std::string &softClusKey, const std::string &softTrkKey, columnar::MutableMetRange metCont, columnar::JetRange jets, columnar::Met1Range metCoreCont, columnar::MetAssociationHelper<> helper, bool doJetJVT) const |
|
virtual StatusCode | rebuildJetMET (const std::string &metJetKey, const std::string &metSoftKey, xAOD::MissingETContainer *metCont, const xAOD::JetContainer *jets, const xAOD::MissingETContainer *metCoreCont, xAOD::MissingETAssociationHelper &helper, bool doJetJVT) const override final |
|
StatusCode | rebuildJetMET (const std::string &metJetKey, const std::string &metSoftKey, columnar::MutableMetRange metCont, columnar::JetRange jets, columnar::Met1Range metCoreCont, columnar::MetAssociationHelper<> helper, bool doJetJVT) const |
|
virtual StatusCode | rebuildJetMET (xAOD::MissingET *metJet, const xAOD::JetContainer *jets, xAOD::MissingETAssociationHelper &helper, xAOD::MissingET *metSoftClus, const xAOD::MissingET *coreSoftClus, xAOD::MissingET *metSoftTrk, const xAOD::MissingET *coreSoftTrk, bool doJetJVT, bool tracksForHardJets=false, std::vector< const xAOD::IParticle * > *softConst=0) const override final |
|
StatusCode | rebuildJetMET (columnar::MutableMetId metJet, columnar::MutableMetRange metCont, columnar::JetRange jets, columnar::MetAssociationHelper<> helper, columnar::OptMutableMetId metSoftClus, columnar::OptMet1Id coreSoftClus, columnar::OptMutableMetId metSoftTrk, columnar::OptMet1Id coreSoftTrk, bool doJetJVT, bool tracksForHardJets=false, std::vector< const xAOD::IParticle * > *softConst=0) const |
|
virtual StatusCode | rebuildTrackMET (const std::string &metJetKey, const std::string &softTrkKey, xAOD::MissingETContainer *metCont, const xAOD::JetContainer *jets, const xAOD::MissingETContainer *metCoreCont, xAOD::MissingETAssociationHelper &helper, bool doJetJVT) const override final |
|
StatusCode | rebuildTrackMET (const std::string &metJetKey, const std::string &softTrkKey, columnar::MutableMetRange metCont, columnar::JetRange jets, columnar::Met1Range metCoreCont, columnar::MetAssociationHelper<> helper, bool doJetJVT) const |
|
virtual StatusCode | rebuildTrackMET (xAOD::MissingET *metJet, const xAOD::JetContainer *jets, xAOD::MissingETAssociationHelper &helper, xAOD::MissingET *metSoftTrk, const xAOD::MissingET *coreSoftTrk, bool doJetJVT) const override final |
|
StatusCode | rebuildTrackMET (columnar::MutableMetId metJet, columnar::MutableMetRange metCont, columnar::JetRange jets, columnar::MetAssociationHelper<> helper, columnar::MutableMetId metSoftTrk, columnar::Met1Id coreSoftTrk, bool doJetJVT) const |
|
virtual StatusCode | markInvisible (const xAOD::IParticleContainer *collection, xAOD::MissingETAssociationHelper &helper, xAOD::MissingETContainer *metCont) const override final |
|
StatusCode | markInvisible (columnar::ParticleRange collection, columnar::MetAssociationHelper<> helper, columnar::MutableMetRange metCont) const |
|
virtual void | print () const |
| Print the state of the tool. More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T, V, H > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
bool | acceptTrack (const xAOD::TrackParticle *trk, const xAOD::Vertex *vx) const |
|
const xAOD::Vertex * | getPV () const |
|
| ColumnarMETMaker () |
| Default constructor: More...
|
|
void | callEvents (columnar::EventContextRange events) const override |
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
|
SG::ReadHandleKey< xAOD::VertexContainer > | m_PVkey |
|
float | m_missObjWarningPtThreshold |
|
bool | m_jetCorrectPhi {} |
|
double | m_jetMinEfrac {} |
|
double | m_jetMinWeightedPt {} |
|
std::string | m_jetConstitScaleMom |
|
std::string | m_jetJvtMomentName |
|
std::string | m_jetRejectionDec |
|
double | m_CenJetPtCut {} |
|
double | m_FwdJetPtCut {} |
|
double | m_JvtCut {} |
|
double | m_JvtPtMax {} |
|
double | m_JetEtaMax {} |
|
double | m_JetEtaForw {} |
|
std::string | m_jetSelection |
|
std::string | m_JvtWP |
|
double | m_customCenJetPtCut {} |
|
double | m_customFwdJetPtCut {} |
|
double | m_customJvtPtMax {} |
|
std::string | m_customJvtWP |
|
bool | m_doPFlow {} |
|
bool | m_doSoftTruth {} |
|
bool | m_doConstJet {} |
|
bool | m_useGhostMuons {} |
|
bool | m_doRemoveMuonJets {} |
|
bool | m_doRemoveElecTrks {} |
|
bool | m_doRemoveElecTrksEM {} |
|
bool | m_doSetMuonJetEMScale {} |
|
bool | m_skipSystematicJetSelection {} |
|
bool | m_muEloss {} |
|
bool | m_orCaloTaggedMuon {} |
|
bool | m_greedyPhotons {} |
|
bool | m_veryGreedyPhotons {} |
|
int | m_jetTrkNMuOlap {} |
|
double | m_jetWidthMuOlap {} |
|
double | m_jetPsEMuOlap {} |
|
double | m_jetEmfMuOlap {} |
|
double | m_jetTrkPtMuPt {} |
|
double | m_muIDPTJetPtRatioMuOlap {} |
|
ToolHandle< InDet::IInDetTrackSelectionTool > | m_trkseltool |
|
ToolHandle< IAsgSelectionTool > | m_JvtTool |
|
columnar::MutableMetAccessor< columnar::ObjectColumn > | m_outputMetHandle {*this, "OutputMET"} |
|
columnar::Met1Accessor< columnar::ObjectColumn > | m_inputMetHandle {*this, "METCore"} |
|
columnar::ColumnAccessor< columnar::ContainerId::metAssociation, columnar::ObjectColumn > | m_metAssocHandle {*this, "MetAssoc"} |
|
columnar::ParticleAccessor< columnar::ObjectColumn > | m_particlesHandle {*this, "Particles"} |
|
columnar::JetAccessor< columnar::ObjectColumn > | m_jetsHandle {*this, "Jets"} |
|
columnar::ElectronAccessor< columnar::ObjectColumn > | m_electronsHandle {*this, "Electrons"} |
|
columnar::PhotonAccessor< columnar::ObjectColumn > | m_photonsHandle {*this, "Photons"} |
|
columnar::MuonAccessor< columnar::ObjectColumn > | m_muonsHandle {*this, "Muons"} |
|
columnar::MutableMetAccessor< std::string > | m_outputMetNameAcc {*this, "name"} |
|
columnar::MetHelpers::MapLookupAccessor< columnar::ContainerId::mutableMet > | m_outputMetMapAcc {*this} |
|
columnar::MetHelpers::MetMomentumAccessors< columnar::ContainerId::mutableMet > | m_outputMetMomAcc {*this} |
|
columnar::Met1Accessor< std::string > | m_inputMetNameAcc {*this, "name"} |
|
columnar::MetHelpers::MapLookupAccessor< columnar::ContainerId::met1 > | m_inputMetMapAcc {*this} |
|
columnar::MetHelpers::MetMomentumAccessors< columnar::ContainerId::met1 > | m_inputMetMomAcc {*this} |
|
columnar::Met1Accessor< MissingETBase::Types::bitmask_t > | m_inputMetSourceAcc {*this, "source"} |
|
columnar::MetAssocationAccessors | m_assocAcc {*this} |
|
columnar::MetHelpers::InputMomentumAccessors | m_inputMomAcc {*this} |
|
Gaudi::Property< std::string > | m_inputPreselectionName {this, "inputPreselection", ""} |
|
std::optional< columnar::ParticleAccessor< char > > | m_inputPreselectionAcc |
|
columnar::ParticleAccessor< columnar::RetypeColumn< xAOD::Muon::MuonType, std::uint16_t > > | m_inputMuonTypeAcc {*this, "muonType", {.isOptional = true}} |
|
columnar::MetHelpers::ObjectTypeAccessor< columnar::ContainerId::particle > | m_inputObjTypeAcc {*this, "objectType"} |
|
columnar::MetHelpers::ObjectWeightDecorator | m_outputMetWeightDecRegular {*this, "", true} |
|
columnar::MetHelpers::InputMomentumAccessors< columnar::ContainerId::jet > | m_jetMomAcc {*this} |
|
columnar::JetAccessor< float > | m_acc_emf {*this, "EMFrac"} |
|
columnar::JetAccessor< float > | m_acc_psf {*this, "PSFrac"} |
|
columnar::JetAccessor< float > | m_acc_width {*this, "Width"} |
|
columnar::JetAccessor< std::vector< int > > | m_acc_trkN {*this, "NumTrkPt500"} |
|
columnar::JetAccessor< std::vector< float > > | m_acc_trksumpt {*this, "SumPtTrkPt500"} |
|
columnar::JetAccessor< std::vector< float > > | m_acc_sampleE {*this, "EnergyPerSampling"} |
|
std::optional< columnar::MetHelpers::InputMomentumAccessors< columnar::ContainerId::jet > > | m_jetConstitScaleMomAcc |
|
std::optional< columnar::MetHelpers::InputMomentumAccessors< columnar::ContainerId::jet > > | m_jetConstitScaleMomFixedAcc |
|
std::optional< columnar::JetAccessor< char > > | m_acc_jetRejectionDec |
|
columnar::MetHelpers::ObjectWeightDecorator< columnar::ContainerId::mutableMet, columnar::ContainerId::jet > | m_jetOutputMetWeightDecRegular {*this, "", true} |
|
columnar::MetHelpers::ObjectWeightDecorator< columnar::ContainerId::mutableMet, columnar::ContainerId::jet > | m_jetOutputMetWeightDecSoft {*this, "Soft", false} |
|
columnar::ElectronAccessor< columnar::RetypeColumn< double, float > > | m_electronPtAcc {*this, "pt"} |
|
Gaudi::Property< unsigned > | m_columnarOperation {this, "columnarOperation", 0} |
|
Gaudi::Property< std::string > | m_columnarTermName {this, "columnarTermName", ""} |
|
Gaudi::Property< unsigned > | m_columnarParticleType {this, "columnarParticleType", 0} |
|
Gaudi::Property< std::string > | m_columnarJetKey {this, "columnarJetKey", ""} |
|
Gaudi::Property< std::string > | m_columnarSoftClusKey {this, "columnarSoftClusKey", ""} |
|
Gaudi::Property< bool > | m_columnarDoJetJVT {this, "columnarDoJetJVT", false} |
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
Definition at line 49 of file ColumnarMETMaker.h.
◆ StoreGateSvc_t
◆ ColumnarMETMaker() [1/2]
met::ColumnarMETMaker::ColumnarMETMaker |
( |
const std::string & |
name | ) |
|
Constructor with parameters:
Definition at line 79 of file ColumnarMETMaker.cxx.
119 "EXPERIMENTAL: whether to use simplified OR based on nominal jets "
120 "and for jet-related systematics only. "
121 "WARNING: this property is strictly for doing physics studies of the feasibility "
122 "of this OR scheme, it should not be used in a regular analysis");
◆ ~ColumnarMETMaker()
met::ColumnarMETMaker::~ColumnarMETMaker |
( |
| ) |
|
|
virtualdefault |
◆ ColumnarMETMaker() [2/2]
met::ColumnarMETMaker::ColumnarMETMaker |
( |
| ) |
|
|
private |
◆ acceptTrack()
◆ callEvents()
Definition at line 1243 of file ColumnarMETMaker.cxx.
1254 throw std::runtime_error (
"Failed to rebuild MET");
1259 throw std::runtime_error (
"Failed to rebuild jet MET");
1264 throw std::runtime_error (
"Failed to rebuild track MET");
1267 throw std::runtime_error (
"Unknown columnar operation");
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ getKey()
Get the (hashed) key of an object that is in the event store.
This is a bit of a special one. StoreGateSvc
and xAOD::TEvent
both provide ways for getting the SG::sgkey_t
key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.
In order to allow tools to efficiently perform this operation, they can use this helper function.
- See also
- asg::AsgTool::getName
- Parameters
-
ptr | The bare pointer to the object that the event store should know about |
- Returns
- The hashed key of the object in the store. If not found, an invalid (zero) key.
Definition at line 119 of file AsgTool.cxx.
121 #ifdef XAOD_STANDALONE
127 return (
proxy ==
nullptr ? 0 :
proxy->sgkey() );
128 #endif // XAOD_STANDALONE
◆ getName()
const std::string & asg::AsgTool::getName |
( |
const void * |
ptr | ) |
const |
|
inherited |
Get the name of an object that is / should be in the event store.
This is a bit of a special one. StoreGateSvc
and xAOD::TEvent
both provide ways for getting the std::string
name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.
In order to allow tools to efficiently perform this operation, they can use this helper function.
- See also
- asg::AsgTool::getKey
- Parameters
-
ptr | The bare pointer to the object that the event store should know about |
- Returns
- The string name of the object in the store. If not found, an empty string.
Definition at line 106 of file AsgTool.cxx.
108 #ifdef XAOD_STANDALONE
114 static const std::string
dummy =
"";
116 #endif // XAOD_STANDALONE
◆ getProperty()
template<class T >
const T* asg::AsgTool::getProperty |
( |
const std::string & |
name | ) |
const |
|
inherited |
Get one of the tool's properties.
◆ getPV()
◆ initialize()
StatusCode met::ColumnarMETMaker::initialize |
( |
| ) |
|
|
finaloverridevirtual |
Dummy implementation of the initialisation function.
It's here to allow the dual-use tools to skip defining an initialisation function. Since many are doing so...
Reimplemented from asg::AsgTool.
Definition at line 145 of file ColumnarMETMaker.cxx.
156 ATH_MSG_INFO(
"Custom jet selection configured. *** FOR EXPERT USE ONLY ***");
163 ATH_MSG_INFO(
"Jet selection for hadronic recoil calculation is configured.");
171 ATH_MSG_ERROR(
"Error: No available jet selection found! Please update JetSelection in ColumnarMETMaker. Choose one: Loose, Tight (recommended), Tighter, Tenacious" );
172 return StatusCode::FAILURE;
181 ATH_CHECK(config_jvt.setProperty(
"JvtMomentName",
"NNJvt"));
201 ATH_MSG_INFO(
"Requesting simplified overlap removal procedure in MET calculation");
211 return StatusCode::SUCCESS;
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ markInvisible() [1/2]
◆ markInvisible() [2/2]
◆ msg() [1/2]
◆ msg() [2/2]
◆ msg_level_name()
const std::string & asg::AsgTool::msg_level_name |
( |
| ) |
const |
|
inherited |
A deprecated function for getting the message level's name.
Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:
MSG::name( msg().level() )
This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.
- Returns
- The string name of the current minimum message level that's printed
Definition at line 101 of file AsgTool.cxx.
◆ msgLvl()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ print()
void asg::AsgTool::print |
( |
| ) |
const |
|
virtualinherited |
Print the state of the tool.
Implements asg::IAsgTool.
Reimplemented in JetRecTool, JetFinder, JetModifiedMassDrop, JetFromPseudojet, JetReclusterer, JetReclusteringTool, JetTruthLabelingTool, JetPileupLabelingTool, HI::HIPileupTool, LundVariablesTool, JetDumper, JetBottomUpSoftDrop, JetRecursiveSoftDrop, JetSoftDrop, JetConstituentsRetriever, JetSubStructureMomentToolsBase, JetSplitter, JetToolRunner, JetPruner, JetPseudojetRetriever, JetTrimmer, AsgHelloTool, and KtDeltaRTool.
Definition at line 131 of file AsgTool.cxx.
◆ rebuildJetMET() [1/6]
StatusCode met::ColumnarMETMaker::rebuildJetMET |
( |
columnar::MutableMetId |
metJet, |
|
|
columnar::MutableMetRange |
metCont, |
|
|
columnar::JetRange |
jets, |
|
|
columnar::MetAssociationHelper<> |
helper, |
|
|
columnar::OptMutableMetId |
metSoftClus, |
|
|
columnar::OptMet1Id |
coreSoftClus, |
|
|
columnar::OptMutableMetId |
metSoftTrk, |
|
|
columnar::OptMet1Id |
coreSoftTrk, |
|
|
bool |
doJetJVT, |
|
|
bool |
tracksForHardJets = false , |
|
|
std::vector< const xAOD::IParticle * > * |
softConst = 0 |
|
) |
| const |
Definition at line 625 of file ColumnarMETMaker.cxx.
637 ATH_MSG_WARNING(
"Requested soft track element links, but no track selection tool supplied.");
641 if(
helper.map().empty()) {
642 ATH_MSG_WARNING(
"Incomplete association map received. Cannot rebuild MET.");
643 ATH_MSG_WARNING(
"Note: ColumnarMETMaker should only be run on events containing at least one PV");
644 return StatusCode::SUCCESS;
647 if(doJetJVT &&
m_JvtWP ==
"None"){
653 if(!metSoftClus && !metSoftTrk) {
654 ATH_MSG_WARNING(
"Neither soft cluster nor soft track term has been supplied!");
655 return StatusCode::SUCCESS;
658 std::optional<columnar::MetHelpers::ObjectWeightHandle<columnar::ContainerId::mutableMet,columnar::ContainerId::jet>> metSoftClusLinks;
662 ATH_MSG_ERROR(
"Soft cluster term provided without a core term!");
663 return StatusCode::FAILURE;
673 if(softConst && acc_softConst.isAvailable(*coreSoftClus.getXAODObject())) {
674 for(
const auto& constit : acc_softConst(*coreSoftClus.getXAODObject())) {
675 softConst->push_back(*constit);
677 ATH_MSG_DEBUG(softConst->size() <<
" soft constituents from core term");
680 std::optional<columnar::MetHelpers::ObjectWeightHandle<columnar::ContainerId::mutableMet,columnar::ContainerId::jet>> metSoftTrkLinks;
684 ATH_MSG_ERROR(
"Soft track term provided without a core term!");
685 return StatusCode::FAILURE;
692 if(softConst && acc_softConst.isAvailable(*coreSoftTrk.getXAODObject()) && !
m_doPFlow && !
m_doSoftTruth) {
693 for(
const auto& constit : acc_softConst(*coreSoftTrk.getXAODObject())) {
694 softConst->push_back(*constit);
696 ATH_MSG_DEBUG(softConst->size() <<
" soft constituents from trk core term");
711 auto originalJet = jetsOriginals.getOriginal(
jet);
712 auto assoc =
helper.getJetAssociation(originalJet);
720 if (acc_nominalObject.isAvailable(
jet.getXAODObject())){
722 jet = *
static_cast<const xAOD::Jet*
>(*acc_nominalObject(
jet.getXAODObject()));
725 ATH_MSG_ERROR(
"No nominal calibrated jet available for jet " <<
jet <<
". Cannot simplify overlap removal!");
730 bool JVT_reject(
false);
731 bool isMuFSRJet(
false);
740 ATH_MSG_VERBOSE(
"Jet " << (JVT_reject ?
"fails" :
"passes") <<
" JVT selection");
747 bool caloverlap =
false;
748 caloverlap = calvec.
ce()>0;
749 ATH_MSG_DEBUG(
"Jet " <<
jet <<
" is " << ( caloverlap ?
"" :
"non-") <<
"overlapping");
769 double jpx = constjet.Px();
770 double jpy = constjet.Py();
771 double jpt = constjet.Pt();
772 double opx = jpx - calvec.
cpx();
773 double opy = jpy - calvec.
cpy();
780 ATH_MSG_WARNING(
"Attempted to apply muon Eloss correction, but corresponding MET term does not exist!");
781 return StatusCode::FAILURE;
785 float total_eloss(0);
787 std::vector<columnar::MuonId> muons_in_jet;
788 std::vector<columnar::ElectronId> electrons_in_jet;
789 bool passJetForEl=
false;
791 if(!acc_ghostMuons.isAvailable(
jet.getXAODObject())){
793 return StatusCode::FAILURE;
795 for(
const auto&
el : acc_ghostMuons(
jet.getXAODObject())) {
797 ATH_MSG_ERROR(
"Invalid element link to ghost muon! Quitting.");
798 return StatusCode::FAILURE;
800 muons_in_jet.push_back(*
static_cast<const xAOD::Muon*
>(*
el));
810 if(acc_originalObject.isAvailable(mu_test.getXAODObject())) mu_test = *
static_cast<const xAOD::Muon*
>(*acc_originalObject(mu_test.getXAODObject()));
812 if(
helper.objSelected(mu_test)) {
813 muons_in_jet.push_back(mu_test);
821 if(acc_originalObject.isAvailable(el_test.getXAODObject())) el_test = *
static_cast<const xAOD::Electron*
>(*acc_originalObject(el_test.getXAODObject()));
823 if(
helper.objSelected(*assoc,el_test)){
825 electrons_in_jet.push_back(el_test);
833 float jet_ORtrk_sumpt =
helper.overlapTrkVec(*assoc).sumpt();
834 float jet_all_trk_pt = initialTrkMom.
sumpt();
835 float jet_unique_trk_pt = jet_all_trk_pt - jet_ORtrk_sumpt;
838 for(
const auto& elec : electrons_in_jet) {
842 float el_cal_pt = el_calvec.
cpt();
843 float el_trk_pt = el_trkvec.
cpt();
845 <<
" jetalltrk: " << jet_all_trk_pt
846 <<
" jetORtrk: " << jet_ORtrk_sumpt
847 <<
" electrk-jetORtrk: " << (el_trk_pt-jet_ORtrk_sumpt)
848 <<
" elec cal: " << el_cal_pt
849 <<
" jetalltrk-electrk: " << (jet_all_trk_pt-el_trk_pt)
850 <<
" jetalltrk-jetORtrk: " << (jet_all_trk_pt-jet_ORtrk_sumpt) );
854 if(el_trk_pt>1
e-9 && jet_unique_trk_pt>10.0
e3) passJetForEl=
true;
857 for(
auto mu_in_jet : muons_in_jet) {
858 float mu_Eloss = acc_Eloss(mu_in_jet.getXAODObject());
863 float mu_id_pt = mu_in_jet.getXAODObject().trackParticle(xAOD::Muon::InnerDetectorTrackParticle) ? mu_in_jet.getXAODObject().trackParticle(xAOD::Muon::InnerDetectorTrackParticle)->pt() : 0.;
867 if(0.9999*mu_id_pt>jet_trk_sumpt)
868 jet_trk_sumpt+=mu_id_pt;
881 float mu_id_pt = mu_in_jet.getXAODObject().trackParticle(xAOD::Muon::InnerDetectorTrackParticle) ? mu_in_jet.getXAODObject().trackParticle(xAOD::Muon::InnerDetectorTrackParticle)->pt() : 0.;
884 if(0.9999*mu_id_pt>jet_trk_sumpt)
885 jet_trk_sumpt+=mu_id_pt;
894 ATH_MSG_ERROR(
"Jet PS fraction or sampling energy must be available to calculate MET with doSetMuonJetEMScale");
895 return StatusCode::FAILURE;
903 ATH_MSG_VERBOSE(
"Jet is from muon -- set to EM scale and subtract Eloss.");
906 ATH_MSG_VERBOSE(
"Jet e: " << constjet.E() <<
", mu Eloss: " << mu_Eloss);
907 float elosscorr = mu_Eloss >= constjet.e() ? 0. : 1.-mu_Eloss/constjet.e();
912 ATH_MSG_VERBOSE(
" Jet eloss factor " << elosscorr <<
", final pt: " << sqrt(opx*opx+opy*opy));
919 switch(mu_in_jet.getXAODObject().energyLossType()) {
920 case xAOD::Muon::Parametrized:
921 case xAOD::Muon::MOP:
922 case xAOD::Muon::Tail:
923 case xAOD::Muon::FSRcandidate:
924 case xAOD::Muon::NotIsolated:
928 total_eloss += mu_Eloss;
943 if(
m_muEloss) mu_calovec *= std::max<float>(0.,1-(total_eloss/mu_calovec.
ce()));
949 opx += mu_calovec.
cpx();
950 opy += mu_calovec.
cpy();
951 double opt = sqrt( opx*opx+opy*opy );
953 double uniquefrac = 1. - (calvec.
ce() - mu_calovec.
ce()) / constjet.E();
954 ATH_MSG_VERBOSE(
"Jet constscale px, py, pt, E = " << jpx <<
", " << jpy <<
", " << jpt <<
", " << constjet.E() );
956 ATH_MSG_VERBOSE(
"Jet OR px, py, pt, E = " << opx <<
", " << opy <<
", " <<
opt <<
", " << constjet.E() - calvec.
ce() );
960 ATH_MSG_ERROR(
"Attempted to apply muon Eloss correction, but corresponding MET term does not exist!");
961 return StatusCode::FAILURE;
967 if(selected && !JVT_reject) {
971 if (!tracksForHardJets) {
981 if(!tracksForHardJets) {
1005 metJetWeights.emplace_back(
jet, uniquefrac);
1007 if(metSoftClus && !JVT_reject) {
1011 metSoftClusLinks->emplace_back (
jet, uniquefrac);
1021 for(
size_t iConst=0; iConst<
jet.getXAODObject().numConstituents(); ++iConst) {
1022 const IParticle* constit =
jet.getXAODObject().rawConstituent(iConst);
1023 softConst->push_back(constit);
1029 if(!metSoftTrk || (hardJet && !tracksForHardJets))
continue;
1035 if(jettrkvec.
ce()>1
e-9) {
1036 jpx = jettrkvec.
cpx();
1037 jpy = jettrkvec.
cpy();
1038 jpt = jettrkvec.
sumpt();
1039 jettrkvec -= trkvec;
1040 opx = jettrkvec.
cpx();
1041 opy = jettrkvec.
cpy();
1043 ATH_MSG_VERBOSE(
"Jet track px, py, sumpt = " << jpx <<
", " << jpy <<
", " << jpt );
1046 opx = opy =
opt = 0;
1054 if (metSoftTrkLinks) metSoftTrkLinks->emplace_back (
jet, uniquefrac);
1063 std::vector<const IParticle*> jettracks;
1065 for(
size_t iConst=0; iConst<jettracks.size(); ++iConst) {
1073 ATH_MSG_DEBUG(
"Number of selected jets: " << metJetWeights.size());
1076 ATH_MSG_DEBUG(
"Number of softtrk jets: " << metSoftTrkLinks->size());
1080 ATH_MSG_DEBUG(
"Number of softclus jets: " << metSoftClusLinks->size());
1083 if(softConst)
ATH_MSG_DEBUG(softConst->size() <<
" soft constituents from core term + jets");
1085 auto assoc =
helper.getMiscAssociation();
1086 if(!assoc)
return StatusCode::SUCCESS;
1092 double opx = trkvec.
cpx();
1093 double opy = trkvec.
cpy();
1094 double osumpt = trkvec.
sumpt();
1095 ATH_MSG_VERBOSE(
"Misc track px, py, sumpt = " << opx <<
", " << opy <<
", " << osumpt );
1105 float total_eloss(0.);
1108 double opx = calvec.
cpx();
1109 double opy = calvec.
cpy();
1110 double osumpt = calvec.
sumpt();
1112 auto *
obj = objId.getXAODObject();
1115 if(acc_originalObject.isAvailable(*mu_test)) mu_test =
static_cast<const xAOD::Muon*
>(*acc_originalObject(*mu_test));
1116 if(
helper.objSelected(mu_test)) {
1117 float mu_Eloss = acc_Eloss(*mu_test);
1118 switch(mu_test->energyLossType()) {
1119 case xAOD::Muon::Parametrized:
1120 case xAOD::Muon::MOP:
1121 case xAOD::Muon::Tail:
1122 case xAOD::Muon::FSRcandidate:
1123 case xAOD::Muon::NotIsolated:
1127 total_eloss += mu_Eloss;
1145 mu_calovec *= std::max<float>(0.,1-(total_eloss/mu_calovec.
ce()));
1146 opx += mu_calovec.
cpx();
1147 opy += mu_calovec.
cpy();
1148 osumpt += mu_calovec.
sumpt();
1152 ATH_MSG_VERBOSE(
"Misc cluster px, py, sumpt = " << opx <<
", " << opy <<
", " << osumpt );
1159 return StatusCode::SUCCESS;
◆ rebuildJetMET() [2/6]
Definition at line 461 of file ColumnarMETMaker.cxx.
469 ATH_MSG_VERBOSE(
"Rebuild jet term: " << metJetKey <<
" and soft term: " << softKey);
479 return StatusCode::FAILURE;
482 coreSoftTrk = coreSoft;
486 coreSoftClus = coreSoft;
492 metSoftClus, coreSoftClus,
493 metSoftTrk, coreSoftTrk,
◆ rebuildJetMET() [3/6]
Implements IMETMaker.
Definition at line 439 of file ColumnarMETMaker.cxx.
447 if (!metCont || !metCoreCont)
450 return StatusCode::FAILURE;
454 ATH_MSG_ERROR(
"No input collection provided for MET term \"" << metJetKey <<
"\" and soft term: " << softKey);
455 return StatusCode::FAILURE;
◆ rebuildJetMET() [4/6]
Definition at line 568 of file ColumnarMETMaker.cxx.
585 ATH_MSG_WARNING(
"Invalid cluster soft term key supplied: " << softClusKey);
586 return StatusCode::FAILURE;
589 ATH_MSG_WARNING(
"Invalid track soft term key supplied: " << softTrkKey);
590 return StatusCode::FAILURE;
597 metSoftClus, coreSoftClus,
598 metSoftTrk, coreSoftTrk,
◆ rebuildJetMET() [5/6]
Implements IMETMaker.
Definition at line 545 of file ColumnarMETMaker.cxx.
557 return StatusCode::FAILURE;
561 ATH_MSG_ERROR(
"No input collection provided for MET term \"" << metJetKey <<
"\" and soft term: " << softClusKey <<
" and " << softTrkKey);
562 return StatusCode::FAILURE;
◆ rebuildJetMET() [6/6]
Implements IMETMaker.
Definition at line 602 of file ColumnarMETMaker.cxx.
612 if(!metJet || !
jets) {
614 <<
"MET (" << metJet <<
") or "
615 <<
"jet collection (" <<
jets <<
").");
616 return StatusCode::FAILURE;
622 doJetJVT, tracksForHardJets, softConst);
◆ rebuildMET() [1/6]
◆ rebuildMET() [2/6]
Definition at line 331 of file ColumnarMETMaker.cxx.
337 if(
helper.map().empty()) {
338 ATH_MSG_WARNING(
"Incomplete association map received. Cannot rebuild MET.");
339 ATH_MSG_WARNING(
"Note: ColumnarMETMaker should only be run on events containing at least one PV");
340 return StatusCode::SUCCESS;
345 if(collection.empty())
return StatusCode::SUCCESS;
348 if(collectionOriginals.isShallowCopy() && collectionOriginals.originalInputs()) {
349 ATH_MSG_WARNING(
"Shallow copy provided without \"originalObjectLinks\" decoration! "
350 <<
"Overlap removal cannot be done. "
351 <<
"Will not compute this term.");
352 ATH_MSG_WARNING(
"Please apply xAOD::setOriginalObjectLink() from xAODBase/IParticleHelpers.h");
353 return StatusCode::SUCCESS;
355 ATH_MSG_VERBOSE(
"Original inputs? " << collectionOriginals.originalInputs());
356 for(
const auto obj : collection) {
358 bool selected =
false;
359 auto orig = collectionOriginals.getOriginal(
obj);
360 auto assocs =
helper.getAssociations(orig);
362 std::string
message =
"Object is not in association map. Did you make a deep copy but fail to set the \"originalObjectLinks\" decoration? "
363 "If not, Please apply xAOD::setOriginalObjectLink() from xAODBase/IParticleHelpers.h";
372 metWeights.emplace_back(
obj, 0 );
386 if(
helper.objSelected(orig))
continue;
387 selected =
helper.selectIfNoOverlaps(orig,
p) || !removeOverlap;
389 <<
" is " << ( selected ?
"non-" :
"") <<
"overlapping");
393 for(
auto assoc : assocs){
398 if(!thisObj)
continue;
401 helper.setObjSelectionFlag(assoc, thisObj,
true);
408 for (decltype(
auto) assoc : assocs) {
411 for (
size_t indi = 0; indi < ind.size(); indi++)
if (allObjects[ind[indi]]) {
412 if (allObjects[ind[indi]].isContainer<columnar::ContainerId::electron>()
413 &&
helper.objSelected(assoc, ind[indi])) {
432 metWeights.emplace_back(
obj, 1. );
436 return StatusCode::SUCCESS;
◆ rebuildMET() [3/6]
Definition at line 238 of file ColumnarMETMaker.cxx.
260 ATH_MSG_WARNING(
"Incorrect use of rebuildMET -- use rebuildJetMET for RefJet term");
261 return StatusCode::FAILURE;
264 return StatusCode::FAILURE;
273 return StatusCode::FAILURE;
◆ rebuildMET() [4/6]
◆ rebuildMET() [5/6]
◆ rebuildMET() [6/6]
Implements IMETMaker.
Definition at line 315 of file ColumnarMETMaker.cxx.
321 if(!
met || !collection) {
323 <<
"MET (" <<
met <<
") or "
324 <<
"collection (" << collection <<
").");
325 return StatusCode::FAILURE;
◆ rebuildTrackMET() [1/4]
◆ rebuildTrackMET() [2/4]
Definition at line 519 of file ColumnarMETMaker.cxx.
527 ATH_MSG_VERBOSE(
"Rebuild jet term: " << metJetKey <<
" and soft term: " << softKey);
534 return StatusCode::FAILURE;
536 auto coreSoftTrk = coreSoft.value();
541 metSoftTrk, coreSoftTrk,
◆ rebuildTrackMET() [3/4]
Implements IMETMaker.
Definition at line 497 of file ColumnarMETMaker.cxx.
508 return StatusCode::FAILURE;
512 ATH_MSG_ERROR(
"No input collection provided for MET term \"" << metJetKey <<
"\" and soft term: " << softKey);
513 return StatusCode::FAILURE;
◆ rebuildTrackMET() [4/4]
Implements IMETMaker.
Definition at line 1162 of file ColumnarMETMaker.cxx.
1169 ATH_MSG_ERROR(
"No MET object provided for track MET rebuilding");
1170 return StatusCode::FAILURE;
1173 ATH_MSG_ERROR(
"No MET object provided for soft track MET rebuilding");
1174 return StatusCode::FAILURE;
1177 ATH_MSG_ERROR(
"No jet container provided for track MET rebuilding");
1178 return StatusCode::FAILURE;
◆ renounce()
◆ renounceArray()
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_acc_emf
◆ m_acc_jetRejectionDec
◆ m_acc_psf
◆ m_acc_sampleE
columnar::JetAccessor<std::vector<float> > met::ColumnarMETMaker::m_acc_sampleE {*this, "EnergyPerSampling"} |
|
private |
◆ m_acc_trkN
◆ m_acc_trksumpt
columnar::JetAccessor<std::vector<float> > met::ColumnarMETMaker::m_acc_trksumpt {*this, "SumPtTrkPt500"} |
|
private |
◆ m_acc_width
◆ m_assocAcc
◆ m_CenJetPtCut
double met::ColumnarMETMaker::m_CenJetPtCut {} |
|
private |
◆ m_columnarDoJetJVT
Gaudi::Property<bool> met::ColumnarMETMaker::m_columnarDoJetJVT {this, "columnarDoJetJVT", false} |
|
private |
◆ m_columnarJetKey
Gaudi::Property<std::string> met::ColumnarMETMaker::m_columnarJetKey {this, "columnarJetKey", ""} |
|
private |
◆ m_columnarOperation
Gaudi::Property<unsigned> met::ColumnarMETMaker::m_columnarOperation {this, "columnarOperation", 0} |
|
private |
◆ m_columnarParticleType
Gaudi::Property<unsigned> met::ColumnarMETMaker::m_columnarParticleType {this, "columnarParticleType", 0} |
|
private |
◆ m_columnarSoftClusKey
Gaudi::Property<std::string> met::ColumnarMETMaker::m_columnarSoftClusKey {this, "columnarSoftClusKey", ""} |
|
private |
◆ m_columnarTermName
Gaudi::Property<std::string> met::ColumnarMETMaker::m_columnarTermName {this, "columnarTermName", ""} |
|
private |
◆ m_customCenJetPtCut
double met::ColumnarMETMaker::m_customCenJetPtCut {} |
|
private |
◆ m_customFwdJetPtCut
double met::ColumnarMETMaker::m_customFwdJetPtCut {} |
|
private |
◆ m_customJvtPtMax
double met::ColumnarMETMaker::m_customJvtPtMax {} |
|
private |
◆ m_customJvtWP
std::string met::ColumnarMETMaker::m_customJvtWP |
|
private |
◆ m_detStore
◆ m_doConstJet
bool met::ColumnarMETMaker::m_doConstJet {} |
|
private |
◆ m_doPFlow
bool met::ColumnarMETMaker::m_doPFlow {} |
|
private |
◆ m_doRemoveElecTrks
bool met::ColumnarMETMaker::m_doRemoveElecTrks {} |
|
private |
◆ m_doRemoveElecTrksEM
bool met::ColumnarMETMaker::m_doRemoveElecTrksEM {} |
|
private |
◆ m_doRemoveMuonJets
bool met::ColumnarMETMaker::m_doRemoveMuonJets {} |
|
private |
◆ m_doSetMuonJetEMScale
bool met::ColumnarMETMaker::m_doSetMuonJetEMScale {} |
|
private |
◆ m_doSoftTruth
bool met::ColumnarMETMaker::m_doSoftTruth {} |
|
private |
◆ m_electronPtAcc
◆ m_electronsHandle
◆ m_evtStore
◆ m_FwdJetPtCut
double met::ColumnarMETMaker::m_FwdJetPtCut {} |
|
private |
◆ m_greedyPhotons
bool met::ColumnarMETMaker::m_greedyPhotons {} |
|
private |
◆ m_inputMetHandle
◆ m_inputMetMapAcc
◆ m_inputMetMomAcc
◆ m_inputMetNameAcc
◆ m_inputMetSourceAcc
◆ m_inputMomAcc
◆ m_inputMuonTypeAcc
◆ m_inputObjTypeAcc
◆ m_inputPreselectionAcc
◆ m_inputPreselectionName
Gaudi::Property<std::string> met::ColumnarMETMaker::m_inputPreselectionName {this, "inputPreselection", ""} |
|
private |
◆ m_jetConstitScaleMom
std::string met::ColumnarMETMaker::m_jetConstitScaleMom |
|
private |
◆ m_jetConstitScaleMomAcc
◆ m_jetConstitScaleMomFixedAcc
◆ m_jetCorrectPhi
bool met::ColumnarMETMaker::m_jetCorrectPhi {} |
|
private |
◆ m_jetEmfMuOlap
double met::ColumnarMETMaker::m_jetEmfMuOlap {} |
|
private |
◆ m_JetEtaForw
double met::ColumnarMETMaker::m_JetEtaForw {} |
|
private |
◆ m_JetEtaMax
double met::ColumnarMETMaker::m_JetEtaMax {} |
|
private |
◆ m_jetJvtMomentName
std::string met::ColumnarMETMaker::m_jetJvtMomentName |
|
private |
◆ m_jetMinEfrac
double met::ColumnarMETMaker::m_jetMinEfrac {} |
|
private |
◆ m_jetMinWeightedPt
double met::ColumnarMETMaker::m_jetMinWeightedPt {} |
|
private |
◆ m_jetMomAcc
◆ m_jetOutputMetWeightDecRegular
◆ m_jetOutputMetWeightDecSoft
◆ m_jetPsEMuOlap
double met::ColumnarMETMaker::m_jetPsEMuOlap {} |
|
private |
◆ m_jetRejectionDec
std::string met::ColumnarMETMaker::m_jetRejectionDec |
|
private |
◆ m_jetSelection
std::string met::ColumnarMETMaker::m_jetSelection |
|
private |
◆ m_jetsHandle
◆ m_jetTrkNMuOlap
int met::ColumnarMETMaker::m_jetTrkNMuOlap {} |
|
private |
◆ m_jetTrkPtMuPt
double met::ColumnarMETMaker::m_jetTrkPtMuPt {} |
|
private |
◆ m_jetWidthMuOlap
double met::ColumnarMETMaker::m_jetWidthMuOlap {} |
|
private |
◆ m_JvtCut
double met::ColumnarMETMaker::m_JvtCut {} |
|
private |
◆ m_JvtPtMax
double met::ColumnarMETMaker::m_JvtPtMax {} |
|
private |
◆ m_JvtTool
◆ m_JvtWP
std::string met::ColumnarMETMaker::m_JvtWP |
|
private |
◆ m_metAssocHandle
◆ m_missObjWarningPtThreshold
float met::ColumnarMETMaker::m_missObjWarningPtThreshold |
|
private |
◆ m_muEloss
bool met::ColumnarMETMaker::m_muEloss {} |
|
private |
◆ m_muIDPTJetPtRatioMuOlap
double met::ColumnarMETMaker::m_muIDPTJetPtRatioMuOlap {} |
|
private |
◆ m_muonsHandle
◆ m_orCaloTaggedMuon
bool met::ColumnarMETMaker::m_orCaloTaggedMuon {} |
|
private |
◆ m_outputMetHandle
◆ m_outputMetMapAcc
◆ m_outputMetMomAcc
◆ m_outputMetNameAcc
◆ m_outputMetWeightDecRegular
◆ m_particlesHandle
◆ m_photonsHandle
◆ m_PVkey
◆ m_skipSystematicJetSelection
bool met::ColumnarMETMaker::m_skipSystematicJetSelection {} |
|
private |
◆ m_trkseltool
◆ m_useGhostMuons
bool met::ColumnarMETMaker::m_useGhostMuons {} |
|
private |
◆ m_varHandleArraysDeclared
◆ m_veryGreedyPhotons
bool met::ColumnarMETMaker::m_veryGreedyPhotons {} |
|
private |
◆ m_vhka
The documentation for this class was generated from the following files:
Gaudi::Property< std::string > m_columnarJetKey
virtual StatusCode markInvisible(const xAOD::IParticleContainer *collection, xAOD::MissingETAssociationHelper &helper, xAOD::MissingETContainer *metCont) const override final
columnar::JetAccessor< float > m_acc_psf
std::optional< columnar::MetHelpers::InputMomentumAccessors< columnar::ContainerId::jet > > m_jetConstitScaleMomFixedAcc
columnar::MetAssocationAccessors m_assocAcc
Electron_v1 Electron
Definition of the current "egamma version".
double m_muIDPTJetPtRatioMuOlap
columnar::ParticleAccessor< columnar::ObjectColumn > m_particlesHandle
static Types::bitmask_t muon(Region reg=Region::FullAcceptance)
Standard MET term from reconstructed muons.
virtual StatusCode rebuildJetMET(const std::string &metJetKey, const std::string &softClusKey, const std::string &softTrkKey, xAOD::MissingETContainer *metCont, const xAOD::JetContainer *jets, const xAOD::MissingETContainer *metCoreCont, xAOD::MissingETAssociationHelper &helper, bool doJetJVT) const override final
@ PhysicsObject
Physics object based.
columnar::MetHelpers::MapLookupAccessor< columnar::ContainerId::mutableMet > m_outputMetMapAcc
@ TruthParticle
Truth particle based.
columnar::JetAccessor< std::vector< int > > m_acc_trkN
columnar::Met1Accessor< columnar::ObjectColumn > m_inputMetHandle
columnar::MutableMetAccessor< columnar::ObjectColumn > m_outputMetHandle
std::pair< long int, long int > indices
static Types::bitmask_t electron(Region reg=Region::FullAcceptance)
Standard MET term from reconstructed electrons.
xAODContainer & getXAODObject() const noexcept
static Types::bitmask_t track(Region reg=Region::FullAcceptance)
Bit mask for MET term from Track signal objects.
columnar::MetHelpers::MetMomentumAccessors< columnar::ContainerId::met1 > m_inputMetMomAcc
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
virtual Type::ObjectType type() const =0
The type of the object as a simple enumeration.
a "handle" for recording object weights via ObjectWeightDecorator
columnar::MetHelpers::MetMomentumAccessors< columnar::ContainerId::mutableMet > m_outputMetMomAcc
@ Central
Indicator for MET contribution from the central region.
Gaudi::Property< std::string > m_columnarSoftClusKey
ToolHandle< InDet::IInDetTrackSelectionTool > m_trkseltool
Helper class to provide constant type-safe access to aux data.
a class representing a single optional object (electron, muons, etc.)
#define ATH_MSG_VERBOSE(x)
uint64_t bitmask_t
Type for status word bit mask.
columnar::JetAccessor< std::vector< float > > m_acc_trksumpt
Class providing the definition of the 4-vector interface.
@ OnlyCluster
CaloCluster based only.
static bool isTrackTerm(Types::bitmask_t bits, Region reg=Region::FullAcceptance)
columnar::MutableMetAccessor< std::string > m_outputMetNameAcc
a class representing a continuous sequence of objects (a.k.a. a container)
double met(ObjectId< CI, CM > object) const
double m_jetMinWeightedPt
@ u
Enums for curvilinear frames.
Vector sum of constituents for subtractive overlap removal.
@ Muon
Indicator for the MET term from reconstructed or MC truth muons.
columnar::MetHelpers::MapLookupAccessor< columnar::ContainerId::met1 > m_inputMetMapAcc
Gaudi::Property< unsigned > m_columnarParticleType
virtual StatusCode rebuildTrackMET(const std::string &metJetKey, const std::string &softTrkKey, xAOD::MissingETContainer *metCont, const xAOD::JetContainer *jets, const xAOD::MissingETContainer *metCoreCont, xAOD::MissingETAssociationHelper &helper, bool doJetJVT) const override final
columnar::MetHelpers::ObjectWeightDecorator< columnar::ContainerId::mutableMet, columnar::ContainerId::jet > m_jetOutputMetWeightDecSoft
virtual void setOwner(IDataHandleHolder *o)=0
std::string m_jetSelection
columnar::JetAccessor< std::vector< float > > m_acc_sampleE
TrackParticle_v1 TrackParticle
Reference the current persistent version:
std::string m_jetConstitScaleMom
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
double m_customCenJetPtCut
const xAOD::Vertex * getPV() const
columnar::JetAccessor< columnar::ObjectColumn > m_jetsHandle
columnar::Met1Accessor< MissingETBase::Types::bitmask_t > m_inputMetSourceAcc
std::optional< columnar::JetAccessor< char > > m_acc_jetRejectionDec
columnar::MetHelpers::InputMomentumAccessors m_inputMomAcc
float m_missObjWarningPtThreshold
POOL::TEvent event(POOL::TEvent::kClassAccess)
static constexpr bool isXAOD
Whether this is the xAOD mode.
columnar::JetAccessor< float > m_acc_emf
AccessorTemplate< CI, float, CAM, CM > sumet
static Types::bitmask_t jet(Region reg=Region::FullAcceptance)
Standard MET term from reconstructed jets.
AccessorTemplate< CI, float, CAM, CM > mpy
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
float cpy() const
Returns .
float sumpt() const
Returns sum of component pt.
columnar::ElectronAccessor< columnar::RetypeColumn< double, float > > m_electronPtAcc
@ Calo
Indicator for MET terms reconstructed from calorimeter signals alone.
columnar::ParticleAccessor< columnar::RetypeColumn< xAOD::Muon::MuonType, std::uint16_t > > m_inputMuonTypeAcc
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
AccessorTemplate< CI, float, CAM, CM > mpx
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
SG::ReadHandleKey< xAOD::VertexContainer > m_PVkey
size_t index() const
Return the index of this element within its container.
columnar::MetHelpers::ObjectWeightDecorator m_outputMetWeightDecRegular
virtual void renounce()=0
Gaudi::Property< std::string > m_columnarTermName
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
bool m_skipSystematicJetSelection
Policy
Policies on usage checks.
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > JetFourMom_t
Base 4 Momentum type for Jet.
a class representing a single object (electron, muons, etc.)
Gaudi::Property< bool > m_columnarDoJetJVT
std::optional< columnar::ParticleAccessor< char > > m_inputPreselectionAcc
static Types::bitmask_t tau(Region reg=Region::FullAcceptance)
Standard MET term from reconstructed tau leptons.
std::string to_string(const DetectorType &type)
Gaudi::Property< unsigned > m_columnarOperation
@ OnlyTrack
Track based only.
std::string m_jetRejectionDec
@ ParticleFlow
Particle Flow Object based.
Photon_v1 Photon
Definition of the current "egamma version".
struct TBPatternUnitContext Muon
void addMet(ObjectId< CI, CM > met, const MetMomentumAccessors< CI2, CM > &momAcc, ObjectId< CI2, CM > metSource) const requires(isMutable)
columnar::MetHelpers::InputMomentumAccessors< columnar::ContainerId::jet > m_jetMomAcc
Gaudi::Property< std::string > m_inputPreselectionName
Class describing a Vertex.
columnar::MetHelpers::ObjectTypeAccessor< columnar::ContainerId::particle > m_inputObjTypeAcc
#define ATH_MSG_WARNING(x)
float cpt() const
Returns .
ToolHandle< IAsgSelectionTool > m_JvtTool
virtual StatusCode rebuildMET(const std::string &metKey, xAOD::Type::ObjectType metType, xAOD::MissingETContainer *metCont, const xAOD::IParticleContainer *collection, xAOD::MissingETAssociationHelper &helper, MissingETBase::UsageHandler::Policy objScale) const override final
bool m_doSetMuonJetEMScale
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
@ Tau
The object is a tau (jet)
static Types::bitmask_t photon(Region reg=Region::FullAcceptance)
Standard MET term from reconstructed photons.
std::optional< columnar::MetHelpers::InputMomentumAccessors< columnar::ContainerId::jet > > m_jetConstitScaleMomAcc
const SG::AuxVectorData * container() const
Return the container holding this element.
float cpx() const
Returns .
columnar::ColumnAccessor< columnar::ContainerId::metAssociation, columnar::ObjectColumn > m_metAssocHandle
ObjectType
Type of objects that have a representation in the xAOD EDM.
std::string m_jetJvtMomentName
bool m_doRemoveElecTrksEM
setBGCode setTAP setLVL2ErrorBits bool
bool acceptTrack(const xAOD::TrackParticle *trk, const xAOD::Vertex *vx) const
double m_customFwdJetPtCut
float ce() const
Returns .
Jet_v1 Jet
Definition of the current "jet version".
void addParticle(ObjectId< CI, CM > met, float px, float py, float pt) const requires(isMutable)
std::string m_customJvtWP
columnar::JetAccessor< float > m_acc_width
columnar::MetHelpers::ObjectWeightDecorator< columnar::ContainerId::mutableMet, columnar::ContainerId::jet > m_jetOutputMetWeightDecRegular