22#include "iguana/algorithms/Algorithm.h"
72 bool Run(hipo::bank& rec, hipo::bank
const& run)
const;
75 void ConfigHook()
override;
76 void StartHook(hipo::banklist& banks)
override;
77 bool RunHook(hipo::banklist& banks)
const override;
78 void StopHook()
override;
80 hipo::banklist::size_type m_b_rec_particle{};
81 hipo::banklist::size_type m_b_run_config{};
84 std::vector<double> c;
102 std::vector<std::pair<int, int>> run_ranges;
107 std::map<std::string, PeriodDef> m_periods{};
109 static bool IsFD(
int status);
110 static bool IsCD(
int status);
112 static double EvalPoly(Poly
const& p,
double x);
114 static double Pmag(
double px,
double py,
double pz);
115 static double ThetaDeg(
double px,
double py,
double pz);
116 static double PhiDeg(
double px,
double py);
118 static void SphericalToCartesian(
double p,
double theta_deg,
double phi_deg,
119 double& px,
double& py,
double& pz);
121 PeriodDef
const* FindPeriod(
int run)
const;
#define DEFINE_IGUANA_ALGORITHM(ALGO_NAME, ALGO_FULL_NAME)
common objects used in algorithms
double vector_element_t
Vector element type.
Algorithm(std::string_view name)
Algorithm: Apply period-dependent momentum/angle corrections to reconstructed protons in REC::Particl...
Momentum3 Transform(int const pid, int const status, int const run, vector_element_t const px, vector_element_t const py, vector_element_t const pz) const
Action Function:
bool Run(hipo::bank &rec, hipo::bank const &run) const
Run Function: Process an event's hipo::bank objects
CLAS12 Run Group A algorithms.