8 #ifndef Pythia8_FastJet3_H
9 #define Pythia8_FastJet3_H
83 #include "fastjet/config.h"
84 #include "fastjet/ClusterSequence.hh"
85 #include "fastjet/Selector.hh"
86 #include "Pythia8/Event.h"
90 #ifndef FASTJET_VERSION
91 #error "FastJet3 is required in order to obtain the features of this interface"
94 FASTJET_BEGIN_NAMESPACE
105 mIndex(particle.index()) {}
106 virtual int index()
const override {
return mIndex;}
115 reset(particle.px(),particle.py(),particle.pz(), particle.e());
116 set_user_index( particle.index() );
123 inline PseudoJet::PseudoJet(
const Pythia8::Vec4 & particle) {
124 reset(particle.px(),particle.py(),particle.pz(), particle.e());
147 _member_fn_ptr(member_fn_ptr), _value(value) {};
156 if (py8_particle == 0) {
159 return (py8_particle->*_member_fn_ptr)() == _value;
174 inline Selector SelectorIsFinal () {
return
176 inline Selector SelectorIsCharged () {
return
178 inline Selector SelectorIsNeutral () {
return
180 inline Selector SelectorIsResonance() {
return
182 inline Selector SelectorIsVisible () {
return
184 inline Selector SelectorIsLepton () {
return
186 inline Selector SelectorIsQuark () {
return
188 inline Selector SelectorIsGluon () {
return
190 inline Selector SelectorIsDiquark () {
return
192 inline Selector SelectorIsParton () {
return
194 inline Selector SelectorIsHadron () {
return
205 inline Selector SelectorId (
int i) {
return
207 inline Selector SelectorIdAbs (
int i) {
return
209 inline Selector SelectorStatus (
int i) {
return
211 inline Selector SelectorStatusAbs(
int i) {
return
216 FASTJET_END_NAMESPACE
218 #endif // Pythia8_FastJet3_H
SelectorWorkerPy8(Py8ParticleFnPtr member_fn_ptr, T value)
bool pass(const PseudoJet &p) const
T(Pythia8::Particle::* Py8ParticleFnPtr)() const
the typedef helps with the notation for member function pointers