ATLAS Offline Software
Loading...
Searching...
No Matches
RangeFilter Class Reference

#include <RangeFilter.h>

Inheritance diagram for RangeFilter:
Collaboration diagram for RangeFilter:

Public Member Functions

 RangeFilter ()
 RangeFilter (std::size_t begin, std::size_t end)
virtual HypoJetVector filter (const HypoJetVector &jv, const std::unique_ptr< ITrigJetHypoInfoCollector > &) const override
virtual std::string toString () const override

Private Attributes

std::size_t m_begin {0}
std::size_t m_end {0}
long unsigned int m_nToSort {0u}

Detailed Description

Definition at line 12 of file RangeFilter.h.

Constructor & Destructor Documentation

◆ RangeFilter() [1/2]

RangeFilter::RangeFilter ( )
inline

Definition at line 15 of file RangeFilter.h.

15{};

◆ RangeFilter() [2/2]

RangeFilter::RangeFilter ( std::size_t begin,
std::size_t end )

Definition at line 11 of file RangeFilter.cxx.

11 :
12 m_begin(begin), m_end(end) {
13 if (begin > end) {throw std::out_of_range("RangeFilter begin > end");}
14 m_nToSort = end;
15}
std::size_t m_end
Definition RangeFilter.h:27
std::size_t m_begin
Definition RangeFilter.h:26
long unsigned int m_nToSort
Definition RangeFilter.h:28

Member Function Documentation

◆ filter()

HypoJetVector RangeFilter::filter ( const HypoJetVector & jv,
const std::unique_ptr< ITrigJetHypoInfoCollector > &  ) const
overridevirtual

Implements IHypoJetVectorFilter.

Definition at line 19 of file RangeFilter.cxx.

20 {
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}
std::vector< pHypoJet > HypoJetVector
Definition HypoJetDefs.h:27
void partial_sort(DataModel_detail::iterator< DVL > beg, DataModel_detail::iterator< DVL > mid, DataModel_detail::iterator< DVL > end)
Specialization of partial_sort for DataVector/List.

◆ toString()

std::string RangeFilter::toString ( ) const
overridevirtual

Implements IHypoJetVectorFilter.

Definition at line 37 of file RangeFilter.cxx.

37 {
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}
static Double_t ss

Member Data Documentation

◆ m_begin

std::size_t RangeFilter::m_begin {0}
private

Definition at line 26 of file RangeFilter.h.

26{0};

◆ m_end

std::size_t RangeFilter::m_end {0}
private

Definition at line 27 of file RangeFilter.h.

27{0};

◆ m_nToSort

long unsigned int RangeFilter::m_nToSort {0u}
private

Definition at line 28 of file RangeFilter.h.

28{0u};
@ u
Enums for curvilinear frames.
Definition ParamDefs.h:77

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