GCC Code Coverage Report


Directory: ./
File: src/iguana/algorithms/clas12/CalorimeterLinker/Algorithm.h
Date: 2025-11-25 17:57:04
Coverage Exec Excl Total
Lines: 80.0% 4 0 5
Functions: 100.0% 3 0 3
Branches: 42.9% 6 0 14

Line Branch Exec Source
1 #pragma once
2
3 #include "iguana/algorithms/Algorithm.h"
4
5 namespace iguana::clas12 {
6
7 /// @algo_brief{Link particle bank to bank `REC::Calorimeter`}
8 /// @algo_type_creator
9 ///
10 /// This algorithm reads `REC::Calorimeter` and produces a new bank, `REC::Particle::Calorimeter`,
11 /// to make it easier to access commonly used `REC::Calorimeter` information for each particle.
12 ///
13 /// If this algorithm does not provide information you need, ask the maintainers or open a pull request.
14 class CalorimeterLinker : public Algorithm
15 {
16
17
6/14
✓ Branch 2 → 3 taken 4 times.
✗ Branch 2 → 6 not taken.
✗ Branch 5 → 7 not taken.
✓ Branch 5 → 8 taken 4 times.
✓ Branch 9 → 10 taken 4 times.
✗ Branch 9 → 32 not taken.
✓ Branch 10 → 11 taken 4 times.
✗ Branch 10 → 17 not taken.
✓ Branch 17 → 18 taken 4 times.
✗ Branch 17 → 40 not taken.
✓ Branch 24 → 25 taken 4 times.
✗ Branch 24 → 40 not taken.
✗ Branch 32 → 33 not taken.
✗ Branch 32 → 39 not taken.
31 DEFINE_IGUANA_ALGORITHM(CalorimeterLinker, clas12::CalorimeterLinker)
18
19 public:
20
21 void Start(hipo::banklist& banks) override;
22 bool Run(hipo::banklist& banks) const override;
23 void Stop() override;
24
25 /// @run_function
26 /// @param [in] bank_particle `REC::Particle`
27 /// @param [in] bank_calorimeter `REC::Calorimeter`
28 /// @param [out] bank_result `REC::Particle::Calorimeter`, which will be created
29 /// @run_function_returns_true
30 bool Run(
31 hipo::bank const& bank_particle,
32 hipo::bank const& bank_calorimeter,
33 hipo::bank& bank_result) const;
34
35 private:
36
37 /// `hipo::banklist` indices
38 hipo::banklist::size_type b_particle;
39 hipo::banklist::size_type b_calorimeter;
40 hipo::banklist::size_type b_result;
41
42 // `b_result` bank item indices
43 int i_pindex;
44 int i_pcal_found;
45 int i_pcal_sector;
46 int i_pcal_lu;
47 int i_pcal_lv;
48 int i_pcal_lw;
49 int i_pcal_energy;
50 int i_ecin_found;
51 int i_ecin_sector;
52 int i_ecin_lu;
53 int i_ecin_lv;
54 int i_ecin_lw;
55 int i_ecin_energy;
56 int i_ecout_found;
57 int i_ecout_sector;
58 int i_ecout_lu;
59 int i_ecout_lv;
60 int i_ecout_lw;
61 int i_ecout_energy;
62 };
63
64 }
65