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

#include <MaxMultFilter.h>

Inheritance diagram for MaxMultFilter:
Collaboration diagram for MaxMultFilter:

Public Member Functions

 MaxMultFilter ()
 MaxMultFilter (std::size_t end, double etaMin, double etaMax)
virtual HypoJetVector filter (const HypoJetVector &jv, const std::unique_ptr< ITrigJetHypoInfoCollector > &) const override
virtual std::string toString () const override

Private Attributes

const std::size_t m_end {0}
const double m_etaMin {0.}
const double m_etaMax {5.}
const long unsigned int m_nToSort {0u}

Detailed Description

Definition at line 12 of file MaxMultFilter.h.

Constructor & Destructor Documentation

◆ MaxMultFilter() [1/2]

MaxMultFilter::MaxMultFilter ( )
inline

Definition at line 15 of file MaxMultFilter.h.

15{};

◆ MaxMultFilter() [2/2]

MaxMultFilter::MaxMultFilter ( std::size_t end,
double etaMin,
double etaMax )

Definition at line 11 of file MaxMultFilter.cxx.

11 :
12 m_end(end), m_etaMin(etaMin), m_etaMax(etaMax), m_nToSort(end) {}
const double m_etaMax
const long unsigned int m_nToSort
const std::size_t m_end
const double m_etaMin

Member Function Documentation

◆ filter()

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

Implements IHypoJetVectorFilter.

Definition at line 15 of file MaxMultFilter.cxx.

16 {
17
18 auto filtered = HypoJetVector();
19 std::copy_if(jv.begin(), jv.end(), std::back_inserter(filtered),
20 [this](const pHypoJet& jp){
21 return (std::abs(jp->eta())<this->m_etaMax && std::abs(jp->eta())>this->m_etaMin);} );
22
23 auto nToSort = std::min(m_nToSort, filtered.size());
24
25 std::partial_sort(filtered.begin(),
26 filtered.begin() + nToSort,
27 filtered.end(),
28 HypoJetPtGreater());
29
30 filtered.resize(nToSort);
31
32 return filtered;
33}
std::vector< pHypoJet > HypoJetVector
Definition HypoJetDefs.h:27
std::shared_ptr< const HypoJet::IJet > pHypoJet
Definition HypoJetDefs.h:25
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 MaxMultFilter::toString ( ) const
overridevirtual

Implements IHypoJetVectorFilter.

Definition at line 35 of file MaxMultFilter.cxx.

35 {
36 std::stringstream ss;
37 const void* address = static_cast<const void*>(this);
38 ss << "MaxMultFilter: (" << address << ") "
39 << " eta range [" << m_etaMin << ", " << m_etaMax << "]:"
40 << " end " << m_end << '\n';
41 return ss.str();
42}
static Double_t ss

Member Data Documentation

◆ m_end

const std::size_t MaxMultFilter::m_end {0}
private

Definition at line 26 of file MaxMultFilter.h.

26{0};

◆ m_etaMax

const double MaxMultFilter::m_etaMax {5.}
private

Definition at line 28 of file MaxMultFilter.h.

28{5.};

◆ m_etaMin

const double MaxMultFilter::m_etaMin {0.}
private

Definition at line 27 of file MaxMultFilter.h.

27{0.};

◆ m_nToSort

const long unsigned int MaxMultFilter::m_nToSort {0u}
private

Definition at line 29 of file MaxMultFilter.h.

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

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