Skip to content

Commit 29ce9d9

Browse files
committed
feat: support for clas12root clas12reader
- new `Algorithm::CreateBank` to _just_ create a new Iguana bank, to be owned by the caller - algorithm-specific `Run` functions, which operate on lvalue references to banks (compatible with `clas12reader`s raw pointers to `hipo::bank`-derived objects)
1 parent b309bbd commit 29ce9d9

File tree

4 files changed

+35
-5
lines changed

4 files changed

+35
-5
lines changed

src/iguana/algorithms/Algorithm.cc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,15 @@ namespace iguana {
251251

252252
///////////////////////////////////////////////////////////////////////////////
253253

254+
hipo::bank Algorithm::CreateBank(std::string const& bank_name) const noexcept(false) {
255+
hipo::banklist new_banks;
256+
hipo::banklist::size_type new_bank_idx;
257+
CreateBank(new_banks, new_bank_idx, bank_name);
258+
return new_banks.at(0);
259+
}
260+
261+
///////////////////////////////////////////////////////////////////////////////
262+
254263
void Algorithm::ShowBanks(hipo::banklist& banks, std::string_view message, Logger::Level const level) const
255264
{
256265
if(m_log->GetLevel() <= level) {

src/iguana/algorithms/Algorithm.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,11 @@ namespace iguana {
164164
hipo::banklist::size_type& bank_idx,
165165
std::string const& bank_name) const noexcept(false);
166166

167+
/// Create a new bank. The bank must be defined in `src/iguana/bankdefs/iguana.json`.
168+
/// @param [in] bank_name the new bank name
169+
/// @returns the new bank
170+
hipo::bank CreateBank(std::string const& bank_name) const noexcept(false);
171+
167172
/// Dump all banks in a `hipo::banklist`
168173
/// @param banks the banks to show
169174
/// @param message if specified, print a header message

src/iguana/algorithms/physics/InclusiveKinematics/Algorithm.cc

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,17 @@ namespace iguana::physics {
7676

7777
void InclusiveKinematics::Run(hipo::banklist& banks) const
7878
{
79-
auto& particle_bank = GetBank(banks, b_particle, "REC::Particle");
80-
auto& config_bank = GetBank(banks, b_config, "RUN::config");
81-
auto& result_bank = GetBank(banks, b_result, GetClassName());
79+
Run(
80+
GetBank(banks, b_particle, "REC::Particle"),
81+
GetBank(banks, b_config, "RUN::config"),
82+
GetBank(banks, b_result, GetClassName()));
83+
}
84+
85+
void InclusiveKinematics::Run(
86+
hipo::bank& particle_bank,
87+
hipo::bank& config_bank,
88+
hipo::bank& result_bank) const
89+
{
8290
ShowBank(particle_bank, Logger::Header("INPUT PARTICLES"));
8391

8492
auto key = PrepareEvent(config_bank.getInt("run",0));

src/iguana/algorithms/physics/InclusiveKinematics/Algorithm.h

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ namespace iguana::physics {
1010
/// @brief_algo Calculate inclusive kinematics quantities
1111
///
1212
/// @begin_doc_algo{physics::InclusiveKinematics | Creator}
13-
/// @input_banks{REC::Particle, RUN::config}
14-
/// @output_banks{%physics::InclusiveKinematics}
13+
/// see this algorithm's Run function(s) for the input and output bank names
1514
/// @end_doc
1615
///
1716
/// @begin_doc_config{physics/InclusiveKinematics}
@@ -34,6 +33,15 @@ namespace iguana::physics {
3433
void Run(hipo::banklist& banks) const override;
3534
void Stop() override;
3635

36+
/// run function
37+
/// @param [in] particle_bank `REC::Particle`
38+
/// @param [in] config_bank `RUN::config`
39+
/// @param [out] result_bank `%physics::InclusiveKinematics`
40+
void Run(
41+
hipo::bank& particle_bank,
42+
hipo::bank& config_bank,
43+
hipo::bank& result_bank) const;
44+
3745
/// @action_function{reload} prepare the event
3846
/// @when_to_call{for each event}
3947
/// @param runnum the run number

0 commit comments

Comments
 (0)