37 void Start(hipo::banklist& banks)
override;
38 void Run(hipo::banklist& banks)
const override;
48 struct calo_row_data {
74 bool PidPurityPhotonFilter(
float const E,
float const Epcal,
float const theta)
const;
83 bool Filter(hipo::bank
const &particleBank, hipo::bank
const &caloBank, std::map<int, PhotonGBTFilter::calo_row_data> calo_map,
int const row,
int const runnum)
const;
90 bool ClassifyPhoton(std::vector<float>
const &input_data,
int const runnum)
const;
96 std::map<int, PhotonGBTFilter::calo_row_data> GetCaloMap(hipo::bank
const &bank)
const;
102 ROOT::Math::XYZVector GetParticleCaloVector(PhotonGBTFilter::calo_row_data calo_row)
const;
108 double GetMass(
int pid)
const;
114 std::function<double(std::vector<float>
const &)> getModelFunction(
int runnum)
const;
117 hipo::banklist::size_type b_particle;
118 hipo::banklist::size_type b_calorimeter;
119 hipo::banklist::size_type b_config;
122 double o_threshold = 0.78;
128 const std::map<std::tuple<int, int, int>, std::function<double(std::vector<float>
const &)>> modelMap = {
129 {{5032, 5332, 1}, [](std::vector<float>
const &data) {
return ApplyCatboostModel_RGA_inbending_pass1(data); }},
130 {{5032, 5332, 2}, [](std::vector<float>
const &data) {
return ApplyCatboostModel_RGA_inbending_pass2(data); }},
131 {{5333, 5666, 1}, [](std::vector<float>
const &data) {
return ApplyCatboostModel_RGA_outbending_pass1(data); }},
132 {{5333, 5666, 2}, [](std::vector<float>
const &data) {
return ApplyCatboostModel_RGA_outbending_pass2(data); }},
133 {{6616, 6783, 1}, [](std::vector<float>
const &data) {
return ApplyCatboostModel_RGA_inbending_pass1(data); }},
134 {{6616, 6783, 2}, [](std::vector<float>
const &data) {
return ApplyCatboostModel_RGA_inbending_pass2(data); }},
135 {{6156, 6603, 1}, [](std::vector<float>
const &data) {
return ApplyCatboostModel_RGA_inbending_pass1(data); }},
136 {{6156, 6603, 2}, [](std::vector<float>
const &data) {
return ApplyCatboostModel_RGA_inbending_pass2(data); }},
137 {{11093, 11283, 1}, [](std::vector<float>
const &data) {
return ApplyCatboostModel_RGA_outbending_pass1(data); }},
138 {{11093, 11283, 2}, [](std::vector<float>
const &data) {
return ApplyCatboostModel_RGA_outbending_pass2(data); }},
139 {{11284, 11300, 1}, [](std::vector<float>
const &data) {
return ApplyCatboostModel_RGA_inbending_pass1(data); }},
140 {{11284, 11300, 2}, [](std::vector<float>
const &data) {
return ApplyCatboostModel_RGA_inbending_pass2(data); }},
141 {{11323, 11571, 1}, [](std::vector<float>
const &data) {
return ApplyCatboostModel_RGA_inbending_pass1(data); }},
142 {{11323, 11571, 2}, [](std::vector<float>
const &data) {
return ApplyCatboostModel_RGA_inbending_pass2(data); }},
143 {{16042, 16772, 1}, [](std::vector<float>
const &data) {
return ApplyCatboostModel_RGC_Summer2022_pass1(data); }},
144 {{16042, 16772, 2}, [](std::vector<float>
const &data) {
return ApplyCatboostModel_RGC_Summer2022_pass1(data); }}