ATLAS Offline Software
Generators
GeneratorFilters
src
MultiMuonFilter.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
GeneratorFilters/MultiMuonFilter.h
"
6
#include "
TruthUtils/HepMCHelpers.h
"
7
8
9
MultiMuonFilter::MultiMuonFilter
(
const
std::string&
name
, ISvcLocator* pSvcLocator)
10
:
GenFilter
(
name
,pSvcLocator)
11
{
12
declareProperty
(
"Ptcut"
,
m_Ptmin
= 10000.);
13
declareProperty
(
"Etacut"
,
m_EtaRange
= 10.0);
14
declareProperty
(
"NMuons"
,
m_NMuons
= 2);
15
}
16
17
18
StatusCode
MultiMuonFilter::filterEvent
() {
19
McEventCollection::const_iterator
itr;
20
int
numMuons = 0;
21
for
(itr =
events
()->
begin
(); itr !=
events
()->end(); ++itr) {
22
const
HepMC::GenEvent* genEvt = *itr;
23
for
(
const
auto
& pitr: *genEvt) {
24
if
(!
MC::isStable
(pitr) || !
MC::isMuon
(pitr) )
continue
;
25
if
( (pitr->momentum().perp() <
m_Ptmin
) || std::abs(pitr->momentum().pseudoRapidity()) >
m_EtaRange
)
continue
;
26
numMuons++;
27
}
28
}
29
30
ATH_MSG_DEBUG
(
"Found "
<< numMuons <<
" Muons"
);
31
setFilterPassed(numMuons >=
m_NMuons
);
32
return
StatusCode::SUCCESS;
33
}
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition:
DVLIterator.h:82
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition:
AthCommonDataStore.h:145
MultiMuonFilter::filterEvent
virtual StatusCode filterEvent()
Definition:
MultiMuonFilter.cxx:18
PlotCalibFromCool.begin
begin
Definition:
PlotCalibFromCool.py:94
MultiMuonFilter::m_NMuons
int m_NMuons
Definition:
MultiMuonFilter.h:21
python.DataFormatRates.events
events
Definition:
DataFormatRates.py:105
GenFilter
Base class for event generator filtering modules.
Definition:
GenFilter.h:30
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition:
PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition:
AthMsgStreamMacros.h:29
name
std::string name
Definition:
Control/AthContainers/Root/debug.cxx:195
MultiMuonFilter::m_EtaRange
double m_EtaRange
Definition:
MultiMuonFilter.h:20
MultiMuonFilter.h
MC::isStable
bool isStable(const T &p)
Definition:
HepMCHelpers.h:30
MultiMuonFilter::MultiMuonFilter
MultiMuonFilter(const std::string &name, ISvcLocator *pSvcLocator)
Definition:
MultiMuonFilter.cxx:9
MultiMuonFilter::m_Ptmin
double m_Ptmin
Definition:
MultiMuonFilter.h:19
HepMCHelpers.h
isMuon
bool isMuon(const T &p)
Definition:
AtlasPID.h:145
Generated on Fri Jul 5 2024 21:22:30 for ATLAS Offline Software by
1.8.18