GCC Code Coverage Report


Directory: ./
File: src/iguana/algorithms/clas12/rga/FiducialFilterPass1/Validator.h
Date: 2025-11-25 17:57:04
Coverage Exec Excl Total
Lines: 100.0% 4 0 4
Functions: 100.0% 3 0 3
Branches: 46.2% 12 0 26

Line Branch Exec Source
1 #pragma once
2
3 #include "Algorithm.h"
4 #include "iguana/algorithms/TypeDefs.h"
5 #include "iguana/algorithms/Validator.h"
6 #include "iguana/algorithms/clas12/CalorimeterLinker/Algorithm.h"
7 #include "iguana/algorithms/clas12/EventBuilderFilter/Algorithm.h"
8 #include "iguana/algorithms/clas12/TrajLinker/Algorithm.h"
9
10 #include <TCanvas.h>
11 #include <TFile.h>
12 #include <TH2.h>
13
14 namespace iguana::clas12::rga {
15
16 /// @brief `iguana::clas12::rga::FiducialFilterPass1` validator
17 class FiducialFilterPass1Validator : public Validator
18 {
19
20
12/26
✓ Branch 2 → 3 taken 1 time.
✗ Branch 2 → 6 not taken.
✗ Branch 5 → 7 not taken.
✓ Branch 5 → 8 taken 1 time.
✓ Branch 9 → 10 taken 1 time.
✗ Branch 9 → 38 not taken.
✓ Branch 10 → 11 taken 1 time.
✗ Branch 10 → 17 not taken.
✓ Branch 17 → 18 taken 1 time.
✗ Branch 17 → 72 not taken.
✓ Branch 18 → 19 taken 1 time.
✗ Branch 18 → 70 not taken.
✓ Branch 19 → 20 taken 1 time.
✗ Branch 19 → 68 not taken.
✓ Branch 20 → 21 taken 1 time.
✗ Branch 20 → 66 not taken.
✓ Branch 21 → 22 taken 1 time.
✗ Branch 21 → 64 not taken.
✓ Branch 22 → 23 taken 1 time.
✗ Branch 22 → 60 not taken.
✓ Branch 23 → 24 taken 1 time.
✗ Branch 23 → 46 not taken.
✓ Branch 30 → 31 taken 1 time.
✗ Branch 30 → 46 not taken.
✗ Branch 38 → 39 not taken.
✗ Branch 38 → 45 not taken.
11 DEFINE_IGUANA_VALIDATOR(FiducialFilterPass1Validator, clas12::rga::FiducialFilterPass1Validator)
21
22 public:
23
24 void Start(hipo::banklist& banks) override;
25 bool Run(hipo::banklist& banks) const override;
26 void Stop() override;
27
28 private:
29
30 iguana::clas12::EventBuilderFilter m_algo_eb;
31 iguana::clas12::TrajLinker m_algo_traj;
32 iguana::clas12::CalorimeterLinker m_algo_cal;
33 iguana::clas12::rga::FiducialFilterPass1 m_algo_fidu;
34
35 hipo::banklist::size_type b_particle;
36 hipo::banklist::size_type b_traj;
37 hipo::banklist::size_type b_cal;
38
39 double const DC1xleft = -200;
40 double const DC1xright = 200;
41 double const DC1ybottom = -200;
42 double const DC1ytop = 200;
43 double const DC2xleft = -200;
44 double const DC2xright = 200;
45 double const DC2ybottom = -200;
46 double const DC2ytop = 200;
47 double const DC3xleft = -200;
48 double const DC3xright = 200;
49 double const DC3ybottom = -200;
50 double const DC3ytop = 200;
51
52 std::vector<int> const u_pdg_list = {
53 particle::PDG::electron,
54 particle::PDG::pi_plus,
55 particle::PDG::pi_minus,
56 particle::PDG::proton};
57
58 TString m_output_file_basename;
59 TFile* m_output_file;
60 mutable std::unordered_map<int, TH2D*> u_DC1_before;
61 mutable std::unordered_map<int, TH2D*> u_DC2_before;
62 mutable std::unordered_map<int, TH2D*> u_DC3_before;
63
64 mutable std::unordered_map<int, TH2D*> u_DC1_after;
65 mutable std::unordered_map<int, TH2D*> u_DC2_after;
66 mutable std::unordered_map<int, TH2D*> u_DC3_after;
67 };
68
69 }
70