4#include "Rivet/Tools/Cuts.fhh"
17 template <
typename ClassToCheck>
18 bool accept(
const ClassToCheck&)
const;
22 template <
typename ClassToCheck>
23 bool operator()(
const ClassToCheck& x)
const {
28 virtual bool operator==(
const Cut&)
const = 0;
31 virtual std::string toString()
const = 0;
34 virtual ~CutBase() { }
40 virtual bool _accept(
const CuttableBase&)
const = 0;
86 extern const Cut& OPEN;
87 extern const Cut& NOCUT;
91 Cut range(
Quantity,
double m,
double n);
92 inline Cut ptIn(
double m,
double n) {
93 return range(pT, m, n);
95 inline Cut etIn(
double m,
double n) {
96 return range(
Et, m, n);
98 inline Cut energyIn(
double m,
double n) {
99 return range(energy, m, n);
101 inline Cut massIn(
double m,
double n) {
102 return range(mass, m, n);
104 inline Cut rapIn(
double m,
double n) {
105 return range(rap, m, n);
107 inline Cut absrapIn(
double m,
double n) {
108 return range(absrap, m, n);
110 inline Cut etaIn(
double m,
double n) {
111 return range(eta, m, n);
113 inline Cut absetaIn(
double m,
double n) {
114 return range(abseta, m, n);
133 return qty == double(i);
136 return qty != double(i);
141 return qty < double(i);
144 return qty > double(i);
147 return qty <= double(i);
150 return qty >= double(i);
182 inline std::ostream&
operator<<(std::ostream& os,
const Cut& cptr) {
183 os << cptr->toString();
double Et(const ParticleBase &p)
Unbound function access to ET.
Definition ParticleBaseUtils.hh:834
Namespace used for ambiguous identifiers.
Definition Cuts.hh:58
const Cut & open()
Fully open cut singleton, accepts everything.
Quantity
Available categories of cut objects.
Definition Cuts.hh:61
Definition LHCbCommon.hh:9
Cut operator|(const Cut &aptr, const Cut &bptr)
Logical OR operation on two cuts.
Cut operator!(const Cut &cptr)
Logical NOT operation on a cut.
bool operator==(const Cut &a, const Cut &b)
Compare two cuts for equality, forwards to the cut-specific implementation.
Definition Cuts.hh:45
Cut operator&&(const Cut &aptr, const Cut &bptr)
Cut operator^(const Cut &aptr, const Cut &bptr)
Logical XOR operation on two cuts.
std::ostream & operator<<(std::ostream &os, const AnalysisInfo &ai)
Stream an AnalysisInfo as a text description.
Definition AnalysisInfo.hh:463
Cut operator&(const Cut &aptr, const Cut &bptr)
Logical AND operation on two cuts.
Cut operator,(const Cut &, const Cut &)=delete
Cut operator~(const Cut &cptr)
Logical NOT operation on a cut.
Cut operator||(const Cut &aptr, const Cut &bptr)