ATLAS Offline Software
Trigger
TrigHypothesis
TrigHLTJetHypo
src
RangeFilter.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include <algorithm>
6
7
#include "
./RangeFilter.h
"
8
#include "
./HypoJetPreds.h
"
// HypoJetPtGreater
9
10
11
RangeFilter::RangeFilter
(std::size_t
begin
, std::size_t
end
):
12
m_begin(
begin
), m_end(
end
) {
13
if
(
begin
>
end
) {
throw
std::out_of_range(
"RangeFilter begin > end"
);}
14
m_nToSort
=
end
;
15
}
16
17
18
HypoJetVector
19
RangeFilter::filter
(
const
HypoJetVector
& jv,
20
const
std::unique_ptr<ITrigJetHypoInfoCollector>&)
const
{
21
22
if
(
m_nToSort
> jv.size()) {
// too few jets
23
return
HypoJetVector
();
24
}
25
26
auto
filtered =
HypoJetVector
(jv.cbegin(), jv.cend());
27
28
std::partial_sort(filtered.begin(),
29
filtered.begin() +
m_end
,
30
filtered.end(),
31
HypoJetPtGreater
());
32
33
return
HypoJetVector
(filtered.begin() +
m_begin
,
34
filtered.begin() +
m_end
);
35
}
36
37
std::string
RangeFilter::toString
()
const
{
38
std::stringstream
ss
;
39
const
void
*
address
=
static_cast<
const
void
*
>
(
this
);
40
ss
<<
"RangeFilter: ("
<<
address
<<
") "
41
<<
"begin "
<<
m_begin
<<
" end "
<<
m_end
<<
'\n'
;
42
return
ss
.str();
43
}
44
45
46
std::ostream&
operator<<
(std::ostream&
os
,
const
RangeFilter
& cf){
47
os
<< cf.
toString
();
48
return
os
;
49
}
PowhegControl_ttHplus_NLO.ss
ss
Definition:
PowhegControl_ttHplus_NLO.py:83
RangeFilter::m_nToSort
long unsigned int m_nToSort
Definition:
RangeFilter.h:28
RangeFilter::m_end
std::size_t m_end
Definition:
RangeFilter.h:27
HypoJetPtGreater
Definition:
HypoJetPreds.h:19
PlotCalibFromCool.begin
begin
Definition:
PlotCalibFromCool.py:94
mergePhysValFiles.end
end
Definition:
DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
RangeFilter::toString
virtual std::string toString() const override
Definition:
RangeFilter.cxx:37
HypoJetVector
std::vector< pHypoJet > HypoJetVector
Definition:
HypoJetDefs.h:27
ReadFromCoolCompare.os
os
Definition:
ReadFromCoolCompare.py:231
RangeFilter
Definition:
RangeFilter.h:12
RangeFilter.h
RangeFilter::RangeFilter
RangeFilter()
Definition:
RangeFilter.h:15
RTTAlgmain.address
address
Definition:
RTTAlgmain.py:55
RangeFilter::m_begin
std::size_t m_begin
Definition:
RangeFilter.h:26
RangeFilter::filter
virtual HypoJetVector filter(const HypoJetVector &jv, const std::unique_ptr< ITrigJetHypoInfoCollector > &) const override
Definition:
RangeFilter.cxx:19
HypoJetPreds.h
operator<<
std::ostream & operator<<(std::ostream &os, const RangeFilter &cf)
Definition:
RangeFilter.cxx:46
Generated on Tue Jul 2 2024 21:25:05 for ATLAS Offline Software by
1.8.18