14#ifndef STANDARDPRESELECTOR_HPP_
15#define STANDARDPRESELECTOR_HPP_
18#include "../../MEC.hpp"
19#include "../FilterRuleClasses.hpp"
25 namespace PreselectorClass
35 int const soughtParticleCode,
36 double const transverseMomentumCut = 0.0,
37 double const pseudorapidityCut = -1.0 );
44 std::vector< int >
const& soughtParticleCodes,
45 double const transverseMomentumCut = 0.0,
46 double const pseudorapidityCut = -1.0 );
51 double const transverseMomentumCut = 0.0,
52 double const pseudorapidityCut = -1.0 );
65 std::list< LHPC::LHEF::ParticleLine const* >&
76 std::vector< int >
const& soughtParticleCodes,
77 double const transverseMomentumCut,
78 double const pseudorapidityCut );
89 if( ( 0 > elementIndex )
91 ( filteredLines.size() <= (
unsigned int)elementIndex ) )
93 throw std::out_of_range(
94 "StandardPreselector::operator[] index out of range" );
96 std::list< LHPC::LHEF::ParticleLine const* >::iterator
97 lineIterator( filteredLines.begin() );
98 while( 0 <= (--elementIndex ) )
102 return *(*lineIterator);
117 inline std::list< LHPC::LHEF::ParticleLine const* >&
std::list< LHPC::LHEF::ParticleLine const * > & filteredLines
ParticleLine const & operator[](int elementIndex) const
StandardPreselector(LhefParser &lhefParser, int const soughtParticleCode, double const transverseMomentumCut=0.0, double const pseudorapidityCut=-1.0)
void setUpFilter(LhefParser &lhefParser, std::vector< int > const &soughtParticleCodes, double const transverseMomentumCut, double const pseudorapidityCut)
AutomaticEventFilter lineFilter
virtual ~StandardPreselector()
std::list< LHPC::LHEF::ParticleLine const * > & getList()
std::vector< FilterRule * > filterRules