|
ATLAS Offline Software
|
Go to the documentation of this file.
30 METMakerAlg::METMakerAlg(
const std::string&
name,
31 ISvcLocator* pSvcLocator )
35 m_muonSelTool(this,
""),
36 m_elecSelLHTool(this,
""),
37 m_photonSelIsEMTool(this,
""),
77 return StatusCode::FAILURE;
82 return StatusCode::FAILURE;
87 return StatusCode::FAILURE;
92 return StatusCode::FAILURE;
97 return StatusCode::FAILURE;
108 return StatusCode::SUCCESS;
115 return StatusCode::SUCCESS;
124 auto ctx = getContext();
126 ATH_CHECK( metHandle.record (std::make_unique<xAOD::MissingETContainer>(), std::make_unique<xAOD::MissingETAuxContainer>()) );
132 return StatusCode::FAILURE;
142 return StatusCode::FAILURE;
148 if (!
Jets.isValid()) {
150 return StatusCode::FAILURE;
157 return StatusCode::FAILURE;
162 if (!
Gamma.isValid()) {
164 return StatusCode::FAILURE;
171 return StatusCode::FAILURE;
176 if (!
Muons.isValid()) {
178 return StatusCode::FAILURE;
188 for(
const auto *
const el : *Electrons) {
196 metHelper, objScale).isFailure() ) {
199 ATH_MSG_DEBUG(
"Selected " << metElectrons.size() <<
" MET electrons. "
200 << acc_constitObjLinks(*(*newMet)[
"RefEle"]).
size() <<
" are non-overlapping.");
206 for(
const auto *
const ph : *
Gamma) {
213 metHelper, objScale).isFailure() ) {
216 ATH_MSG_DEBUG(
"Selected " << metPhotons.size() <<
" MET photons. "
217 << acc_constitObjLinks(*(*newMet)[
"RefGamma"]).
size() <<
" are non-overlapping.");
223 for(
const auto *
const tau : *TauJets) {
230 metHelper, objScale).isFailure() ){
234 << acc_constitObjLinks(*(*newMet)[
"RefTau"]).
size() <<
" are non-overlapping.");
240 for(
const auto *
const mu : *
Muons) {
249 metHelper, objScale).isFailure() ) {
252 ATH_MSG_DEBUG(
"Selected " << metMuons.size() <<
" MET muons. "
253 << acc_constitObjLinks(*(*newMet)[
"Muons"]).
size() <<
" are non-overlapping.");
257 Jets.cptr(), coreMet.
cptr(), metHelper,
false ).isFailure() ) {
261 << acc_constitObjLinks(*(*newMet)[
"RefJet"]).
size() <<
" are non-overlapping, "
266 if(
buildMETSum(
"FinalTrk", newMet, trksource).isFailure() ){
271 if(
buildMETSum(
"FinalClus", newMet, clsource).isFailure() ) {
275 return StatusCode::SUCCESS;
282 if(
mu->pt()<2.5e3 ||
mu->pt()/cosh(
mu->eta())<4
e3 )
return false;
288 if( fabs(
el->eta())>2.47 ||
el->pt()<10
e3 )
return false;
294 if( !(ph->
author()&20) || fabs(ph->
eta())>2.47 || ph->
pt()<10
e3 )
return false;
Electron_v1 Electron
Definition of the current "egamma version".
ToolHandle< IAsgPhotonIsEMSelector > m_photonSelIsEMTool
@ PhysicsObject
Physics object based.
@ TruthParticle
Truth particle based.
const_pointer_type cptr()
Dereference the pointer.
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
virtual StatusCode execute() override
virtual ~METMakerAlg()
Destructor:
uint16_t author(uint16_t bitmask=EgammaParameters::AuthorALL) const
Get author.
SG::ReadHandleKey< xAOD::PhotonContainer > m_PhotonContainerKey
@ LCTopo
Indicator for MET contribution from TopoClusters with LCW calibration applied.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
virtual StatusCode finalize() override
Helper class to provide constant type-safe access to aux data.
#define ATH_MSG_VERBOSE(x)
uint64_t bitmask_t
Type for status word bit mask.
bool empty() const
Test if the key is blank.
const DV * asDataVector() const
Return a pointer to this object, as a const DataVector.
ToolHandle< TauAnalysisTools::ITauSelectionTool > m_tauSelTool
StatusCode buildMETSum(const std::string &totalName, xAOD::MissingETContainer *metCont)
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
ToolHandle< IAsgElectronLikelihoodTool > m_elecSelLHTool
std::string m_softtrkname
::StatusCode StatusCode
StatusCode definition for legacy code.
SG::WriteHandleKey< xAOD::MissingETContainer > m_metKey
Class describing a tau jet.
virtual bool accept(const xAOD::Electron *el)
SG::ReadHandleKey< xAOD::TauJetContainer > m_TauJetContainerKey
SG::ReadHandleKey< xAOD::MissingETAssociationMap > m_metMapKey
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
virtual StatusCode initialize() override
Athena algorithm's Hooks.
SG::ReadHandleKey< xAOD::MuonContainer > m_MuonContainerKey
virtual bool isValid() override final
Can the handle be successfully dereferenced?
SG::ReadHandleKey< xAOD::MissingETContainer > m_CoreMetKey
Policy
Policies on usage checks.
Container for xAOD::MissingET_v1 objects.
ToolHandle< CP::IMuonSelectionTool > m_muonSelTool
@ OnlyTrack
Track based only.
value_type push_back(value_type pElem)
Add an element to the end of the collection.
virtual const std::string & key() const override final
Return the StoreGate ID for the referenced object.
Photon_v1 Photon
Definition of the current "egamma version".
struct TBPatternUnitContext Muon
@ Track
Indicator for MET contribution from reconstructed charged particle tracks.
#define ATH_MSG_WARNING(x)
DataVector adapter that acts like it holds const pointers.
SG::ReadHandleKey< xAOD::JetContainer > m_JetContainerKey
virtual double pt() const override final
The transverse momentum ( ) of the particle.
@ Tau
The object is a tau (jet)
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
SG::ReadHandleKey< xAOD::ElectronContainer > m_ElectronContainerKey
ToolHandle< IMETMaker > m_metmaker
Athena configured tools.