10 #ifndef HEPMC3_SELECTOR_H
11 #define HEPMC3_SELECTOR_H
24 using ConstSelectorPtr = std::shared_ptr<const Selector>;
61 virtual Filter operator > (
int value)
const = 0;
62 virtual Filter operator > (
double value)
const = 0;
64 virtual Filter operator >= (
int value)
const = 0;
65 virtual Filter operator >= (
double value)
const = 0;
67 virtual Filter operator < (
int value)
const = 0;
68 virtual Filter operator < (
double value)
const = 0;
70 virtual Filter operator <= (
int value)
const = 0;
71 virtual Filter operator <= (
double value)
const = 0;
73 virtual Filter operator == (
int value)
const = 0;
74 virtual Filter operator == (
double value)
const = 0;
76 virtual Filter operator != (
int value)
const = 0;
77 virtual Filter operator != (
double value)
const = 0;
79 virtual ConstSelectorPtr abs()
const = 0;
94 template<
typename Feature_type>
101 Filter operator > (
int value)
const override {
102 return m_internal > value;
105 Filter operator > (
double value)
const override {
106 return m_internal > value;
109 Filter operator >= (
int value)
const override {
110 return m_internal >= value;
113 Filter operator >= (
double value)
const override {
114 return m_internal >= value;
117 Filter operator < (
int value)
const override {
118 return m_internal < value;
121 Filter operator < (
double value)
const override {
122 return m_internal < value;
125 Filter operator <= (
int value)
const override {
126 return m_internal <= value;
129 Filter operator <= (
double value)
const override {
130 return m_internal <= value;
133 Filter operator == (
int value)
const override {
134 return m_internal == value;
137 Filter operator == (
double value)
const override {
138 return m_internal == value;
141 Filter operator != (
int value)
const override {
142 return m_internal != value;
145 Filter operator != (
double value)
const override {
146 return m_internal != value;
149 ConstSelectorPtr abs()
const override{
150 SelectorWrapper<Feature_type> *copy =
new SelectorWrapper<Feature_type>(*this);
151 copy->m_internal = m_internal.abs();
152 return ConstSelectorPtr(copy);
157 Feature<Feature_type> m_internal;
161 ConstSelectorPtr
abs(
const Selector &input);
Defines Filter operations for combingin Filters.
Defines Feature interface for selecting Particles according to extracted Features.
Filter for the attributes.
Expose GenericFeature interface to derived Feature class.
Selector is an interface to "standard" Features that are valid for both integral and floating point c...
Feature< Feature_type > abs(const Feature< Feature_type > &input)
Obtain the absolute value of a Feature. This works as you'd expect. If foo is a valid Feature...
Defines AttributeFeature for obtaining Filters to search by Attribute.