Skip to content
Snippets Groups Projects
Commit 211d02a7 authored by John Chapman's avatar John Chapman
Browse files

xAODElectronFilter use ReadHandleKeys

parent f78fe7d2
No related branches found
No related tags found
No related merge requests found
......@@ -6,6 +6,7 @@
#define GENERATORFILTERS_XAODELECTRONFILTER_H
#include "GeneratorModules/GenFilter.h"
#include "xAODTruth/TruthParticle.h"
/// @brief Filters and looks for electrons
......@@ -21,10 +22,12 @@ class xAODElectronFilter : public GenFilter {
public:
xAODElectronFilter(const std::string& name, ISvcLocator* pSvcLocator);
virtual StatusCode filterInitialize();
virtual StatusCode filterEvent();
private:
SG::ReadHandleKey<xAOD::TruthParticleContainer> m_truthPartContKey{this, "TruthParticleContainerKey", "TruthElectrons"};
DoubleProperty m_Ptmin{this, "Ptcut", 10000.};
DoubleProperty m_EtaRange{this, "Etacut", 10.0};
......
......@@ -14,27 +14,26 @@ xAODElectronFilter::xAODElectronFilter(const std::string &name, ISvcLocator *pSv
{
}
StatusCode xAODElectronFilter::filterInitialize()
{
ATH_CHECK(m_truthPartContKey.initialize());
return StatusCode::SUCCESS;
}
StatusCode xAODElectronFilter::filterEvent() {
// Retrieve full TruthParticle container
const xAOD::TruthParticleContainer *xTruthParticleContainer;
if (evtStore()->retrieve(xTruthParticleContainer, "TruthElectrons").isFailure())
{
ATH_MSG_ERROR("No TruthParticle collection with name "
<< "TruthElectrons"
<< " found in StoreGate!");
SG::ReadHandle<xAOD::TruthParticleContainer> xTruthParticleContainer{m_truthPartContKey};
if (!xTruthParticleContainer.isValid()) {
ATH_MSG_ERROR("No TruthParticle collection with name " << m_truthPartContKey.key() << " found in StoreGate!");
return StatusCode::FAILURE;
}
unsigned int nParticles = xTruthParticleContainer->size();
for (unsigned int iPart = 0; iPart < nParticles; ++iPart)
{
const xAOD::TruthParticle *part = (*xTruthParticleContainer)[iPart];
//electron
for (const xAOD::TruthParticle* part : *xTruthParticleContainer) {
//electron
if (part->pt() >= m_Ptmin && part->abseta() <= m_EtaRange)
return StatusCode::SUCCESS;
}
setFilterPassed(false);
return StatusCode::SUCCESS;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment