ATLAS Offline Software
PhysicsAnalysis
TopPhys
xAOD
TopEventSelectionTools
Root
NElectronSelector.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
TopEventSelectionTools/NElectronSelector.h
"
6
7
#include <algorithm>
8
9
namespace
top
{
10
NElectronSelector::NElectronSelector
(
const
std::string&
params
) :
11
SignValueSelector
(
"EL_N"
,
params
, true) {
12
checkMultiplicityIsInteger
();
13
}
14
15
bool
NElectronSelector::apply
(
const
top::Event
&
event
)
const
{
16
auto
func = [&](
const
xAOD::Electron
* elPtr) {
17
return
elPtr->pt() >
value
();
18
};
19
auto
count
= std::count_if(
event
.m_electrons.begin(),
event
.m_electrons.end(), func);
20
21
return
checkInt
(
count
,
multiplicity
());
22
}
23
24
bool
NElectronSelector::applyParticleLevel
(
const
top::ParticleLevelEvent
&
event
)
const
{
25
// If any of the required collections is a nullptr (i.e. has not been
26
// loaded) return false.
27
if
(!
event
.m_electrons) {
28
return
false
;
29
}
30
31
auto
func = [&](
const
xAOD::TruthParticle
* truElPtr) {
32
return
truElPtr->pt() >
value
();
33
};
34
auto
count
= std::count_if(
event
.m_electrons->begin(),
event
.m_electrons->end(), func);
35
return
checkInt
(
count
,
multiplicity
());
36
}
37
}
top::NElectronSelector::NElectronSelector
NElectronSelector(const std::string ¶ms)
Definition:
NElectronSelector.cxx:10
top::SignValueSelector::checkInt
bool checkInt(int value, int cut) const
Compare a cut supplied by the user with the value calculated in the event.
Definition:
SignValueSelector.cxx:159
top::NElectronSelector::apply
bool apply(const top::Event &event) const override
This does stuff based on the information in an event.
Definition:
NElectronSelector.cxx:15
top
TopConfig A simple configuration that is NOT a singleton.
Definition:
AnalysisTrackingHelper.cxx:58
top::SignValueSelector::multiplicity
double multiplicity() const
Get the cut multiplicity assigned in the constructor.
Definition:
SignValueSelector.cxx:106
top::NElectronSelector::applyParticleLevel
bool applyParticleLevel(const top::ParticleLevelEvent &event) const override
This does stuff based on the information in a particle level event.
Definition:
NElectronSelector.cxx:24
top::SignValueSelector
Many of the tools need a sign (>=) and a value (2).
Definition:
SignValueSelector.h:16
XMLtoHeader.count
count
Definition:
XMLtoHeader.py:85
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
xAOD::TruthParticle_v1
Class describing a truth particle in the MC record.
Definition:
TruthParticle_v1.h:41
top::ParticleLevelEvent
Definition:
ParticleLevelEvent.h:24
top::SignValueSelector::checkMultiplicityIsInteger
void checkMultiplicityIsInteger()
Integers are annoying in C++.
Definition:
SignValueSelector.cxx:82
top::SignValueSelector::value
double value() const
Get the cut value assigned in the constructor.
Definition:
SignValueSelector.cxx:94
xAOD::Electron_v1
Definition:
Electron_v1.h:34
top::Event
Very simple class to hold event data after reading from a file.
Definition:
Event.h:49
PowhegControl_ttFCNC_NLO.params
params
Definition:
PowhegControl_ttFCNC_NLO.py:226
NElectronSelector.h
Generated on Fri Jul 5 2024 21:23:42 for ATLAS Offline Software by
1.8.18