3#include "iguana/algorithms/Algorithm.h"
4#include "iguana/services/ConcurrentParam.h"
25 void Start(hipo::banklist& banks)
override;
26 void Run(hipo::banklist& banks)
const override;
62 hipo::banklist::size_type b_particle, b_config;
68 mutable std::unique_ptr<ConcurrentParam<int>> o_runnum;
71 mutable std::unique_ptr<ConcurrentParam<std::vector<double>>> o_electron_vz_cuts;
#define DEFINE_IGUANA_ALGORITHM(ALGO_NAME, ALGO_FULL_NAME)
Base class for all algorithms to inherit from.
Algorithm: Filter the REC::Particle (or similar) bank by cutting on Z Vertex
int GetRunNum(concurrent_key_t const key) const
void Start(hipo::banklist &banks) override
Initialize this algorithm before any events are processed, with the intent to process banks
bool Filter(double const zvertex, int const pid, int const status, concurrent_key_t const key) const
Action Function: checks if the Z Vertex is within specified bounds if pid is one for which the filter...
concurrent_key_t PrepareEvent(int const runnum) const
Action Function: prepare the event
void SetElectronZcuts(double zcut_lower, double zcut_upper, concurrent_key_t const key)
sets the z-vertex cuts
std::vector< double > GetElectronZcuts(concurrent_key_t const key) const
void Stop() override
Finalize this algorithm after all events are processed.
void Run(hipo::banklist &banks) const override
Run this algorithm for an event.
std::size_t concurrent_key_t
concurrent hash key type