ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
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 }

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(),
32 
33  return HypoJetVector(filtered.begin() + m_begin,
34  filtered.begin() + m_end);
35 }

◆ 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 }

Member Data Documentation

◆ m_begin

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

Definition at line 26 of file RangeFilter.h.

◆ m_end

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

Definition at line 27 of file RangeFilter.h.

◆ m_nToSort

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

Definition at line 28 of file RangeFilter.h.


The documentation for this class was generated from the following files:
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
HypoJetVector
std::vector< pHypoJet > HypoJetVector
Definition: HypoJetDefs.h:27
RTTAlgmain.address
address
Definition: RTTAlgmain.py:55
RangeFilter::m_begin
std::size_t m_begin
Definition: RangeFilter.h:26
std::partial_sort
void partial_sort(std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, std::reverse_iterator< DataModel_detail::iterator< DVL > > mid, std::reverse_iterator< DataModel_detail::iterator< DVL > > end, Compare comp)
Specialization of partial_sort for DataVector/List.
Definition: DVL_algorithms.h:811