ATLAS Offline Software
Loading...
Searching...
No Matches
DerivationFramework::SkimmingToolExample Class Reference

the code used in this implementation is kindly stolen from: atlasoff:: ISF/ISF_Core/ISF_Tools More...

#include <SkimmingToolExample.h>

Inheritance diagram for DerivationFramework::SkimmingToolExample:
Collaboration diagram for DerivationFramework::SkimmingToolExample:

Public Member Functions

virtual StatusCode finalize () override
 Athena algtool's Hooks.
virtual bool eventPassesFilter () const override
 Check that the current event passes this filter.

Private Attributes

Gaudi::Property< std::string > m_muonSGKey {this, "MuonContainerKey", "Muons", "Key for muon container"}
Gaudi::Property< unsigned int > m_nMuons {this, "NumberOfMuons", 2, "Minimum number of muons"}
Gaudi::Property< double > m_muonPtCut {this, "MuonPtCut", 10000.0, "p_T cut on muon in MeV"}
std::atomic< unsigned int > m_ntot {0}
std::atomic< unsigned int > m_npass {0}

Detailed Description

the code used in this implementation is kindly stolen from: atlasoff:: ISF/ISF_Core/ISF_Tools

Author
James Catmore -at- cern.ch

Definition at line 30 of file SkimmingToolExample.h.

Member Function Documentation

◆ eventPassesFilter()

bool DerivationFramework::SkimmingToolExample::eventPassesFilter ( ) const
overridevirtual

Check that the current event passes this filter.

Definition at line 26 of file SkimmingToolExample.cxx.

27{
28 ++m_ntot;
29
30 // Retrieve muon container
31 const xAOD::MuonContainer* muons{nullptr};
32 StatusCode sc = evtStore()->retrieve(muons,m_muonSGKey);
33 if (sc.isFailure()) {
34 ATH_MSG_FATAL("No muon collection with name " << m_muonSGKey << " found in StoreGate!");
35 return false;
36 }
37
38 // Loop over muons, count up and set decision
39 unsigned int nGoodMu{0};
40 for (const xAOD::Muon* muon : *muons) {
41 if ( muon->muonType() == xAOD::Muon::Combined && muon->pt() > m_muonPtCut ) ++nGoodMu;
42 }
43 bool acceptEvent{false};
44 if (nGoodMu >= m_nMuons) {
45 acceptEvent = true;
46 ++m_npass;
47 }
48 return acceptEvent;
49
50}
#define ATH_MSG_FATAL(x)
static Double_t sc
Gaudi::Property< unsigned int > m_nMuons
Gaudi::Property< std::string > m_muonSGKey
::StatusCode StatusCode
StatusCode definition for legacy code.
Muon_v1 Muon
Reference the current persistent version:
MuonContainer_v1 MuonContainer
Definition of the current "Muon container version".

◆ finalize()

StatusCode DerivationFramework::SkimmingToolExample::finalize ( )
overridevirtual

Athena algtool's Hooks.

Definition at line 18 of file SkimmingToolExample.cxx.

19{
20 ATH_MSG_INFO("Processed "<< m_ntot <<" events, "<< m_npass<<" events passed filter ");
21 return StatusCode::SUCCESS;
22}
#define ATH_MSG_INFO(x)

Member Data Documentation

◆ m_muonPtCut

Gaudi::Property<double> DerivationFramework::SkimmingToolExample::m_muonPtCut {this, "MuonPtCut", 10000.0, "p_T cut on muon in MeV"}
private

Definition at line 49 of file SkimmingToolExample.h.

50{this, "MuonPtCut", 10000.0, "p_T cut on muon in MeV"};

◆ m_muonSGKey

Gaudi::Property<std::string> DerivationFramework::SkimmingToolExample::m_muonSGKey {this, "MuonContainerKey", "Muons", "Key for muon container"}
private

Definition at line 43 of file SkimmingToolExample.h.

44{this, "MuonContainerKey", "Muons", "Key for muon container"};

◆ m_nMuons

Gaudi::Property<unsigned int> DerivationFramework::SkimmingToolExample::m_nMuons {this, "NumberOfMuons", 2, "Minimum number of muons"}
private

Definition at line 46 of file SkimmingToolExample.h.

47{this, "NumberOfMuons", 2, "Minimum number of muons"};

◆ m_npass

std::atomic<unsigned int> DerivationFramework::SkimmingToolExample::m_npass {0}
mutableprivate

Definition at line 53 of file SkimmingToolExample.h.

53{0};

◆ m_ntot

std::atomic<unsigned int> DerivationFramework::SkimmingToolExample::m_ntot {0}
mutableprivate

Definition at line 52 of file SkimmingToolExample.h.

52{0};

The documentation for this class was generated from the following files: