Generation of Gaudi wrapper algorithms for Allen algorithms
This MR produces automatic Gaudi wrappers to all Allen algorithms when Allen is compiled in non-STANDALONE mode.
- Automatic algorithm wrappers are generated for all Allen algorithms.
- Gaudi versions of Allen algorithms invoke the Allen algorithms'
set_arguments_size
andoperator()
consecutively. - Input and outputs are
[const] std::vectors
of the underlying Allen type. The exception isbool
, which instead usesstd::vector<char>
as backend to avoidstd::vector
bool storage shenanigans. - Properties are properly populated in the Gaudi wrappers, initialized to the same (parsed) Allen defaults upon initialization.
What this enables in short
All Allen configurations introduced with the MES are now usable from within Gaudi, and all Allen algorithms are now usable as Gaudi algorithms.
A Gaudi configuration like the following is now possible. It works both in Allen and Gaudi:
from AllenConf.hlt1_reconstruction import hlt1_reconstruction
hlt1_reco = hlt1_reconstruction()
velo_tracks = hlt1_reco['velo_tracks']
ut_tracks = hlt1_reco['ut_tracks']
forward_tracks = hlt1_reco['forward_tracks']
kf_tracks = hlt1_reco['kalman_velo_only']
Here is an example of such a configuration.
This works because all Allen algorithms are translated to Gaudi algorithms with automatically compile-time generated wrappers. In addition, the following two python paths are installed as part of Allen:
- https://gitlab.cern.ch/lhcb/Allen/-/tree/dcampora_nnolte_gaudi_conversion/configuration/python
- https://gitlab.cern.ch/lhcb/Allen/-/tree/dcampora_nnolte_gaudi_conversion/Rec/Allen/python
The above only occurs when Allen is compiled with -DSTANDALONE=OFF
, so the STANDALONE
build is not affected.
List of changes
- At configure-time the list of algorithm wrappers that will be built is generated.
- A new custom CMake target
gaudi_wrappers_of_allen_algorithms
generates Gaudi wrappers of Allen algorithms (see below for an example). - The generation of Gaudi wrappers is only triggered if building with
-DSTANDALONE=OFF
. - The
verbosity_t
property of all algorithms has nowpublic
visibility to allow Gaudi algorithms access. - Added a new function
set_property_value(const R& value)
to Allen Algorithm class. - Implemented parsing of default datatypes of Allen algorithms.
- Refactored
ParseAlgorithms.py
. Now it accepts three possible generations with option--generate
:views
(default, generates the Python view of all Allen algorithms),wrapperlist
(which generates the list of files used at configure-time) andwrappers
(which generates.cpp
wrappers). - Added two new Gaudi algorithms under
Rec/Allen/
:ProvideConstants
andProvideRuntimeOptions
. These two algorithms are required in any invocation to a wrapper algorithm. - Added two new Gaudi algorithms for data conversions:
GaudiAllenVeloToV2Tracks
andGaudiAllenForwardToV2Tracks
. These two algorithms convert Allen data received in the form ofstd::vectors
to v2 tracks. - Two types of algorithms can be generated:
Consumer
andMultiTransformer
. All AllenProducer
algorithms becomeMultiTransformer
since they now require aconstants
andruntime_options
parameter. - Moved
configuration/sequences/AllenConf
toconfiguration/python/AllenConf
. - Created
Rec/Allen/python/AllenCore/generator.py
which providesmake_algorithm
in Gaudi. - Created
Rec/Allen/python/AllenConf/algorithms.py
which acts as a proxy forPyConf.Algorithms
. - Packages
configuration
andRec/Allen
export now theirpython
directory usinggaudi_install_python_modules
.
Functionality this enables
- This MR streamlines the creation of Gaudi tests for Allen algorithms.
- It allows the creation of subsequences that run as independent algorithms.
- Concretely, all Allen-to-Gaudi conversions can now become proper Gaudi algorithms.
- It is a step to removing
host_buffers
in all Allen algorithms, which was required to persist objects after the Allen sequence was run.
Example - Search by triplet generated conversion
#include "AlgorithmConversionTools.h"
#include </home/nnolte/lb-stack-setup/stack5/Allen/device/velo/search_by_triplet/include/SearchByTriplet.cuh>
#include <GaudiAlg/Transformer.h>
#include <vector>
// output type
using output_t = std::tuple<
Allen::parameter_vector<velo_search_by_triplet::Parameters::dev_tracks_t>,
Allen::parameter_vector<velo_search_by_triplet::Parameters::dev_tracklets_t>,
Allen::parameter_vector<velo_search_by_triplet::Parameters::dev_tracks_to_follow_t>,
Allen::parameter_vector<velo_search_by_triplet::Parameters::dev_three_hit_tracks_t>,
Allen::parameter_vector<velo_search_by_triplet::Parameters::dev_hit_used_t>,
Allen::parameter_vector<velo_search_by_triplet::Parameters::dev_atomics_velo_t>,
Allen::parameter_vector<velo_search_by_triplet::Parameters::dev_rel_indices_t>,
Allen::parameter_vector<velo_search_by_triplet::Parameters::dev_number_of_velo_tracks_t>>;
// algorithm definition
struct velo_search_by_triplet_t_gaudi final
: Gaudi::Functional::MultiTransformer<output_t(
Allen::parameter_vector<velo_search_by_triplet::Parameters::host_number_of_events_t> const&,
Allen::parameter_vector<velo_search_by_triplet::Parameters::host_total_number_of_velo_clusters_t> const&,
Allen::parameter_vector<velo_search_by_triplet::Parameters::dev_event_list_t> const&,
Allen::parameter_vector<velo_search_by_triplet::Parameters::dev_number_of_events_t> const&,
Allen::parameter_vector<velo_search_by_triplet::Parameters::dev_sorted_velo_cluster_container_t> const&,
Allen::parameter_vector<velo_search_by_triplet::Parameters::dev_offsets_estimated_input_size_t> const&,
Allen::parameter_vector<velo_search_by_triplet::Parameters::dev_module_cluster_num_t> const&,
Allen::parameter_vector<velo_search_by_triplet::Parameters::dev_hit_phi_t> const&,
Allen::parameter_vector<velo_search_by_triplet::Parameters::dev_velo_clusters_t> const&,
const RuntimeOptions&,
Constants const* const&)> {
// wrapped algorithm body
velo_search_by_triplet_t_gaudi(std::string const& name, ISvcLocator* pSvc) :
MultiTransformer(
name,
pSvc,
{KeyValue("host_number_of_events_t", {""}),
KeyValue("host_total_number_of_velo_clusters_t", {""}),
KeyValue("dev_event_list_t", {""}),
KeyValue("dev_number_of_events_t", {""}),
KeyValue("dev_sorted_velo_cluster_container_t", {""}),
KeyValue("dev_offsets_estimated_input_size_t", {""}),
KeyValue("dev_module_cluster_num_t", {""}),
KeyValue("dev_hit_phi_t", {""}),
KeyValue("dev_velo_clusters_t", {""}),
KeyValue("runtime_options_t", {""}),
KeyValue("constants_t", {""})},
{KeyValue("dev_tracks_t", {""}),
KeyValue("dev_tracklets_t", {""}),
KeyValue("dev_tracks_to_follow_t", {""}),
KeyValue("dev_three_hit_tracks_t", {""}),
KeyValue("dev_hit_used_t", {""}),
KeyValue("dev_atomics_velo_t", {""}),
KeyValue("dev_rel_indices_t", {""}),
KeyValue("dev_number_of_velo_tracks_t", {""})})
{}
// operator()
output_t operator()(
Allen::parameter_vector<velo_search_by_triplet::Parameters::host_number_of_events_t> const&
host_number_of_events_t_arg,
Allen::parameter_vector<velo_search_by_triplet::Parameters::host_total_number_of_velo_clusters_t> const&
host_total_number_of_velo_clusters_t_arg,
Allen::parameter_vector<velo_search_by_triplet::Parameters::dev_event_list_t> const& dev_event_list_t_arg,
Allen::parameter_vector<velo_search_by_triplet::Parameters::dev_number_of_events_t> const&
dev_number_of_events_t_arg,
Allen::parameter_vector<velo_search_by_triplet::Parameters::dev_sorted_velo_cluster_container_t> const&
dev_sorted_velo_cluster_container_t_arg,
Allen::parameter_vector<velo_search_by_triplet::Parameters::dev_offsets_estimated_input_size_t> const&
dev_offsets_estimated_input_size_t_arg,
Allen::parameter_vector<velo_search_by_triplet::Parameters::dev_module_cluster_num_t> const&
dev_module_cluster_num_t_arg,
Allen::parameter_vector<velo_search_by_triplet::Parameters::dev_hit_phi_t> const& dev_hit_phi_t_arg,
Allen::parameter_vector<velo_search_by_triplet::Parameters::dev_velo_clusters_t> const& dev_velo_clusters_t_arg,
const RuntimeOptions& runtime_options,
Constants const* const& constants) const override
{
output_t output_container {};
// TES wrappers
Allen::TESWrapperInput<velo_search_by_triplet::Parameters::host_number_of_events_t>
host_number_of_events_t_wrapper {host_number_of_events_t_arg, "host_number_of_events_t"};
Allen::TESWrapperInput<velo_search_by_triplet::Parameters::host_total_number_of_velo_clusters_t>
host_total_number_of_velo_clusters_t_wrapper {
host_total_number_of_velo_clusters_t_arg, "host_total_number_of_velo_clusters_t"};
Allen::TESWrapperInput<velo_search_by_triplet::Parameters::dev_event_list_t> dev_event_list_t_wrapper {
dev_event_list_t_arg, "dev_event_list_t"};
Allen::TESWrapperInput<velo_search_by_triplet::Parameters::dev_number_of_events_t> dev_number_of_events_t_wrapper {
dev_number_of_events_t_arg, "dev_number_of_events_t"};
Allen::TESWrapperInput<velo_search_by_triplet::Parameters::dev_sorted_velo_cluster_container_t>
dev_sorted_velo_cluster_container_t_wrapper {
dev_sorted_velo_cluster_container_t_arg, "dev_sorted_velo_cluster_container_t"};
Allen::TESWrapperInput<velo_search_by_triplet::Parameters::dev_offsets_estimated_input_size_t>
dev_offsets_estimated_input_size_t_wrapper {
dev_offsets_estimated_input_size_t_arg, "dev_offsets_estimated_input_size_t"};
Allen::TESWrapperInput<velo_search_by_triplet::Parameters::dev_module_cluster_num_t>
dev_module_cluster_num_t_wrapper {dev_module_cluster_num_t_arg, "dev_module_cluster_num_t"};
Allen::TESWrapperInput<velo_search_by_triplet::Parameters::dev_hit_phi_t> dev_hit_phi_t_wrapper {
dev_hit_phi_t_arg, "dev_hit_phi_t"};
Allen::TESWrapperOutput<velo_search_by_triplet::Parameters::dev_tracks_t> dev_tracks_t_wrapper {
std::get<0>(output_container), "dev_tracks_t"};
Allen::TESWrapperOutput<velo_search_by_triplet::Parameters::dev_tracklets_t> dev_tracklets_t_wrapper {
std::get<1>(output_container), "dev_tracklets_t"};
Allen::TESWrapperOutput<velo_search_by_triplet::Parameters::dev_tracks_to_follow_t> dev_tracks_to_follow_t_wrapper {
std::get<2>(output_container), "dev_tracks_to_follow_t"};
Allen::TESWrapperOutput<velo_search_by_triplet::Parameters::dev_three_hit_tracks_t> dev_three_hit_tracks_t_wrapper {
std::get<3>(output_container), "dev_three_hit_tracks_t"};
Allen::TESWrapperOutput<velo_search_by_triplet::Parameters::dev_hit_used_t> dev_hit_used_t_wrapper {
std::get<4>(output_container), "dev_hit_used_t"};
Allen::TESWrapperOutput<velo_search_by_triplet::Parameters::dev_atomics_velo_t> dev_atomics_velo_t_wrapper {
std::get<5>(output_container), "dev_atomics_velo_t"};
Allen::TESWrapperOutput<velo_search_by_triplet::Parameters::dev_rel_indices_t> dev_rel_indices_t_wrapper {
std::get<6>(output_container), "dev_rel_indices_t"};
Allen::TESWrapperOutput<velo_search_by_triplet::Parameters::dev_number_of_velo_tracks_t>
dev_number_of_velo_tracks_t_wrapper {std::get<7>(output_container), "dev_number_of_velo_tracks_t"};
Allen::TESWrapperInput<velo_search_by_triplet::Parameters::dev_velo_clusters_t> dev_velo_clusters_t_wrapper {
dev_velo_clusters_t_arg, "dev_velo_clusters_t"};
// Inputs to set_arguments_size and operator()
std::array<std::reference_wrapper<ArgumentData>, 17> tes_wrappers_references {
host_number_of_events_t_wrapper,
host_total_number_of_velo_clusters_t_wrapper,
dev_event_list_t_wrapper,
dev_number_of_events_t_wrapper,
dev_sorted_velo_cluster_container_t_wrapper,
dev_offsets_estimated_input_size_t_wrapper,
dev_module_cluster_num_t_wrapper,
dev_hit_phi_t_wrapper,
dev_tracks_t_wrapper,
dev_tracklets_t_wrapper,
dev_tracks_to_follow_t_wrapper,
dev_three_hit_tracks_t_wrapper,
dev_hit_used_t_wrapper,
dev_atomics_velo_t_wrapper,
dev_rel_indices_t_wrapper,
dev_number_of_velo_tracks_t_wrapper,
dev_velo_clusters_t_wrapper};
HostBuffers host_buffers {};
Allen::Context context {};
// set arguments size invocation
m_algorithm.set_arguments_size(tes_wrappers_references, runtime_options, *constants, host_buffers);
// algorithm operator() invocation
m_algorithm(tes_wrappers_references, runtime_options, *constants, host_buffers, context);
return output_container;
}
private:
velo_search_by_triplet::velo_search_by_triplet_t m_algorithm {};
Gaudi::Property<int> m_verbosity_t {
this,
"verbosity",
3,
[=](auto&) { m_algorithm.set_property_value<Allen::Algorithm::verbosity_t, int>(m_verbosity_t.value()); },
Gaudi::Details::Property::ImmediatelyInvokeHandler {true},
"verbosity of algorithm"};
Gaudi::Property<float> m_phi_tolerance_t {
this,
"phi_tolerance",
0.045f,
[=](auto&) {
m_algorithm.set_property_value<velo_search_by_triplet::Parameters::phi_tolerance_t, float>(
m_phi_tolerance_t.value());
},
Gaudi::Details::Property::ImmediatelyInvokeHandler {true},
"tolerance in phi"};
Gaudi::Property<float> m_max_scatter_t {
this,
"max_scatter",
0.08f,
[=](auto&) {
m_algorithm.set_property_value<velo_search_by_triplet::Parameters::max_scatter_t, float>(m_max_scatter_t.value());
},
Gaudi::Details::Property::ImmediatelyInvokeHandler {true},
"maximum scatter for seeding and forwarding"};
Gaudi::Property<unsigned int> m_max_skipped_modules_t {
this,
"max_skipped_modules",
1,
[=](auto&) {
m_algorithm.set_property_value<velo_search_by_triplet::Parameters::max_skipped_modules_t, unsigned int>(
m_max_skipped_modules_t.value());
},
Gaudi::Details::Property::ImmediatelyInvokeHandler {true},
"skipped modules"};
Gaudi::Property<unsigned int> m_block_dim_x_t {
this,
"block_dim_x",
64,
[=](auto&) {
m_algorithm.set_property_value<velo_search_by_triplet::Parameters::block_dim_x_t, unsigned int>(
m_block_dim_x_t.value());
},
Gaudi::Details::Property::ImmediatelyInvokeHandler {true},
"block dimension x"};
};
DECLARE_COMPONENT(velo_search_by_triplet_t_gaudi)
This MR is built on top of !393 (merged) and !429 (merged).
Should go together with Moore!609 (merged).
Merge request reports
Activity
thanks, your description has some circular dependence. Do you mean Moore!609 (merged) ?
We have significantly updated this MR and rebased it off the latest MES changes, and it now includes a test as well which runs the HLT1 reconstruction algorithms and checks the MC efficiency. We set the MES branch as the target just to have a clean list of changes. This will be updated to master once the MES is merged.
Any comments or suggestions highly appreciated.
Hi @dcampora,
cool stuff!
Any comments or suggestions highly appreciated.
Since you asked for it
I think it would be super cool if we could start having a more realistic HLT2 test. And if I understand correctly this MR would allow a first step into that direction
So running the Allen CPU HLT1 + HLT2.
As a first step this could just be adding the Allen HLT1 CPU ControlFlow Node and the HLT2 reco one to the scheduler and letting these two run independent. Future work will probably then have to figure out how to glue them together in a better way.But if you could come up with that test config, I'm happy to make this into a nightly test to run a throughput test for this!
@chasse should we do that as a next step? This MR already brings a lot of functionality (which is tested), and I feel like adding an Allen CPU HLT1 + HLT2 configuration is something that deserves reviewing on its own. I would like to avoid stalling this MR for much longer as there are already a couple of developments that rely on it.
I personally think that it's quite important to start checking throughput numbers, but I'm happy to resolve it as an issue and let RTA management decide when this should become a priority.
From a maintainer standpoint, I'm happy to move this forward because you've implemented tests for this in Moore!609 (merged)
But it probably does make sense to have someone review it, at least a bit. And given how large the MR is that may take a bit of time.
Currently, @rmatev is assigned as reviewer, which I think is a good choice, but he is currently on vacation.One question from my side, if you now create an algorithm wrapper for every algorithm, what's the added compilation overhead due to this MR?
Can I understand which throughput test you are talking about @chasse ? I'm a bit lost what is proposed to happen in HLT1 and what in HLT2.
@gligorov, essentially what I was proposing is to run part of the Allen HLT1 reconstruction through these wrappers on CPU and check what the throughput of that is.
The idea was to figure out what additional cost on top of HLT2 would arise if one re-runs part of the Allen HLT1 reconstruction on CPU inside HLT2.
Edited by Christoph Hassesounds good to me
One question from my side, if you now create an algorithm wrapper for every algorithm, what's the added compilation overhead due to this MR?
@dcampora @nnolte any numbers for this one available? I guess aside from the compilation, we also pay for the entire libclang algo traversal stuff etc., right?
The time to traverse algorithms is negligible and it does not take additional time to parse in this branch. In addition, this branch introduces saving the parsed algorithms in a pickle file for reuse for the various steps that require the generated
algorithms.py
, and in fact this feature means that the sequence is now only parsed once (in master it is parsed several times).There are however as many new compilation sources as there are algorithms. These compilation sources take about the same time to compile as the algorithm sources of the algorithms they wrap, as they include the same files and add no significant logic. Naturally this results in a bit longer to compile, however the compilation is still dominated by the Stream.cpp compilation - which, conversely, depends on the configured
SEQUENCE
. Given that with Gaudi-Allen wrappers theSEQUENCE
chosen in Allen is irrelevant, one could select the smallest existing Allen sequence, yielding a much faster compilation time and less memory consumption.Therefore:
- The compilation time with the same
SEQUENCE
as before is a bit longer. This could be measured. - Peak memory consumption in compilation still depends on the
SEQUENCE
and therefore it is the same as before. - If one doesn't need to use the
RunAllen
wrapper, then the AllenSEQUENCE
is irrelevant and by choosing a tiny configuration like thevelo
results in a much faster and much lower consumption compilation.
Edited by Daniel Hugo Campora Perez- The compilation time with the same
mentioned in merge request Moore!609 (merged)
mentioned in issue #211 (closed)
added 959 commits
-
006ef1de...f10a43d2 - 880 commits from branch
master
- bd7e6f62 - Added missing files.
- 4b2aff29 - velo sequence compiles and runs.
- c04fb254 - Added weight for mep_layout and dec_reporter.
- 8b88ed8f - Fixed formatting
- 4e9ba3ad - Added no gec configuration. Added printout of generated sequence with masks....
- e242c838 - Added MASK_INPUT and MASK_OUTPUT types. Used mask_t to distinguish mask types...
- 1b059e51 - Added thin test infrastructure for python tests of multi event scheduler.
- 15636cc8 - Added copyright to python test. Made test run only manually or in master, and set needs: [].
- 57ab3686 - Fixed formatting
- a0bc1f2b - Add combiners in printout.
- cd274a11 - Added basic building blocks for multi event scheduler testing.
- d9868102 - fix parse_boolean function to work recursively and correctly
- 0cf1f74c - Added missing library HostCombiners.
- a8af072e - Made hlt1 pp default configuration resemble more previous configuration.
- 879fc5ce - Remove unused score function. Closely resemble hlt1 pp default.
- 599de059 - doc & tests
- 40be314f - Documented event_list_utils functions.
- 9094dc70 - Aaddded scifi_v6 and no_ut_cut configurations.
- e29d1c97 - Added more cftree ops tests.
- 699e66bf - add test for make_independent
- a37909a7 - Add GPL license to minipyconf files.
- b9cd24a4 - Added pregenerated sequences. Fixed issues with sequence configurations....
- 370b97fe - Added check in components for excess arguments. Fixed sequences with excess arguments.
- 0f76b856 - remove minipyconf
- dc013d8d - python3 required
- fabe11b3 - fix the last iteration
- f86b375c - put cftree_ops back into sequences and adapt to pyconf
- da209fd5 - improve git clone
- dd271615 - Use GIT_EXECUTABLE in GenerateConfiguration.
- 758e6b8d - Add example test for a complex sequence validation
- 5b93d98e - Updated test_phys_eff_job to deal with any kind of output.
- f7016ef9 - Fixed formatting
- f219d8b8 - Added copyright.
- 64b35278 - Require always SEQUENCE_GENERATION.
- 777aa205 - Moved AllenConf components into its own folder, and tests out of configuration/sequences.
- 068d4a21 - Fixed formatting
- 24bb7132 - Add sequence name to reference files.
- 70631773 - Rename validation files to scifiv6 to have a shorter name of the jobs compatible with CI.
- 3312a543 - Update validation files.
- 7ef73ed6 - add some tests
- 9dfc758b - fix c_test
- 730f4296 - Apply 3 suggestion(s) to 2 file(s)
- b6f0e8ec - Obtain cleaner typedef in AlgorithmTraversalLibClang.
- 68fe5866 - add test for event_list_utils
- e80cf9d1 - upsi
- 6ab837dd - add_event_list_combiners in shorter
- bb1e928d - remove debug print
- a01fe158 - removed the leaf
- 91324363 - fix previous errors
- c0d6892c - change name of gec
- 5e3fcb2a - Add copyright.
- c76783e3 - Fixed formatting
- dd7e2a34 - change argnames force_order, combine_logic
- 2b88ba2f - dont rely on internal algorithm store
- 85598bf1 - format
- 52f2d107 - rename selection categories: alignment -> calibration, technical -> monitoring
- 98559a53 - Refactored AllenSequenceGenerator.
- d36485fa - Fixed formatting
- d0b6363f - Fixed rebase with master.
- 122e2314 - Added generation of algorithms.py as a build step. Moved parsing algorithms to...
- 07a5066a - Remove configuration/ files from gitignores. They should not be there and it's...
- e1c1417f - move test and remove it from gitlabci
- b5328ae8 - add static asserts to the sequence generation to check that host and device...
- cedb930e - Changed name of subdetector reconstruction sequences removing the _reconstruction.
- 779b356e - Fixed formatting
- 16c11b52 - update readme
- dd0cba89 - fix docu
- 3257f296 - make event_list combiners inputs mask_t
- 054c5ffe - update formatting
- 194024c5 - improve error message in case of circular dependency
- 6b9b351b - Added basic files for conversion from other MR.
- 81db4eed - try stuff
- 7b59ed10 - Add ability to parse default property values.
- 48916677 - Refactored ParseAlgorithms. Add a custom build step to generate .cpp conversions.
- 40461a22 - continue with building automatic conversions
- f3426fb5 - Update generation of wrappers.
- ab74bccd - Made Consumer work. Fixed MatchUpstreamMuon functions making them inline.
- 9f21f3bb - Added ProvideConstants and ProvideRuntimeOptions.
- 4c667520 - Adapt ProvideRuntimeOptions to updated RuntimeOptions object. Move to std::shared_ptr for provider.
Toggle commit list-
006ef1de...f10a43d2 - 880 commits from branch
added enhancement new feature labels
removed enhancement label
added Build enhancement labels
added 1 commit
- c787234c - Modified AllenVeloToV2Tracks to accept std::vectors and output std::vector<LHCb::Event::v2::Track>.
added 1 commit
- 3a980457 - Automatic translation of python configurations Allen-Gaudi.
added 19 commits
-
3a980457...9528b121 - 5 commits from branch
dcampora_nnolte_multi_evt_scheduler_v2
- bc8ae291 - Added basic files for conversion from other MR.
- a7cf5331 - try stuff
- e70e0ae8 - Add ability to parse default property values.
- 3e0f988a - Refactored ParseAlgorithms. Add a custom build step to generate .cpp conversions.
- be139b15 - continue with building automatic conversions
- 392bb468 - Update generation of wrappers.
- 09b71ea5 - Made Consumer work. Fixed MatchUpstreamMuon functions making them inline.
- 3750f379 - Added ProvideConstants and ProvideRuntimeOptions.
- 3303697a - Adapt ProvideRuntimeOptions to updated RuntimeOptions object. Move to std::shared_ptr for provider.
- 61932c07 - Fix CMake warning about sare runtime environment
- a5d69c2c - Pick changes from master
- 5dd79c9c - Simplify TESProvider to remove hardcoded bankTypes from RunAllen.
- 43f8ea64 - Modified AllenVeloToV2Tracks to accept std::vectors and output std::vector<LHCb::Event::v2::Track>.
- 91a37d40 - Automatic translation of python configurations Allen-Gaudi.
Toggle commit list-
3a980457...9528b121 - 5 commits from branch
added 2 commits
added 1 commit
- dc2576cd - Updated AllenConf to AllenCore in generated.
added 1 commit
- 13f30a76 - format and change gaudialg generation to Gaudi::Algorithm
added 119 commits
-
13f30a76...7315d2a3 - 99 commits from branch
dcampora_nnolte_multi_evt_scheduler_v2
- 6c241bba - Added basic files for conversion from other MR.
- 0a8f9b79 - try stuff
- c4afaf71 - Add ability to parse default property values.
- 183d0f86 - Refactored ParseAlgorithms. Add a custom build step to generate .cpp conversions.
- 2c62313f - continue with building automatic conversions
- d9b560e3 - Update generation of wrappers.
- 1652c79a - Made Consumer work. Fixed MatchUpstreamMuon functions making them inline.
- b3e40b99 - Added ProvideConstants and ProvideRuntimeOptions.
- 1d7cbec6 - Adapt ProvideRuntimeOptions to updated RuntimeOptions object. Move to std::shared_ptr for provider.
- 7716bdca - Fix CMake warning about sare runtime environment
- 93098862 - Simplify TESProvider to remove hardcoded bankTypes from RunAllen.
- e4c7dd83 - Modified AllenVeloToV2Tracks to accept std::vectors and output std::vector<LHCb::Event::v2::Track>.
- 4509724d - Automatic translation of python configurations Allen-Gaudi.
- c5e720c1 - Fixed formatting
- fe8e3ed0 - Added copyright.
- 8e790141 - Updated AllenConf to AllenCore in generated.
- b9de6488 - many changes
- 1197110c - works now
- b24eec92 - first working eff checker
- 64c187e6 - format and change gaudialg generation to Gaudi::Algorithm
Toggle commit list-
13f30a76...7315d2a3 - 99 commits from branch
added 2 commits
mentioned in merge request !552 (merged)
mentioned in merge request !560 (merged)
added 202 commits
-
7f94abdc...11a37195 - 178 commits from branch
dcampora_nnolte_multi_evt_scheduler_v2
- 1c2414f4 - Added MASK_INPUT and MASK_OUTPUT types. Used mask_t to distinguish mask types...
- a4c35676 - Added basic files for conversion from other MR.
- 82665c76 - try stuff
- 00a89cc8 - Add ability to parse default property values.
- 8b86eaf2 - Refactored ParseAlgorithms. Add a custom build step to generate .cpp conversions.
- d916f94b - continue with building automatic conversions
- 7fe889af - Update generation of wrappers.
- bfbab244 - Made Consumer work. Fixed MatchUpstreamMuon functions making them inline.
- 57a444b0 - Added ProvideConstants and ProvideRuntimeOptions.
- 44d5fe50 - Adapt ProvideRuntimeOptions to updated RuntimeOptions object. Move to std::shared_ptr for provider.
- 56331715 - Fix CMake warning about sare runtime environment
- 867e5aea - Simplify TESProvider to remove hardcoded bankTypes from RunAllen.
- aab3c373 - Modified AllenVeloToV2Tracks to accept std::vectors and output std::vector<LHCb::Event::v2::Track>.
- 2762eb7d - Automatic translation of python configurations Allen-Gaudi.
- fcbadb53 - Fixed formatting
- 59d2b460 - Added copyright.
- cc4f0e10 - Updated AllenConf to AllenCore in generated.
- 5b84f878 - many changes
- 70a37f51 - works now
- 32228860 - first working eff checker
- 2bffc1f0 - format and change gaudialg generation to Gaudi::Algorithm
- 5be0e1a7 - Fixed formatting
- 1245c932 - Added copyright.
- 4e530252 - Adapted to latest rebase.
Toggle commit list-
7f94abdc...11a37195 - 178 commits from branch
added 1 commit
- 31cb715b - Adapted libraries against which AllenAlgorithms links.
added 27 commits
-
31cb715b...0f09ce3d - 2 commits from branch
dcampora_nnolte_multi_evt_scheduler_v2
- 92cb4d0f - Added MASK_INPUT and MASK_OUTPUT types. Used mask_t to distinguish mask types...
- 8f447ac9 - Added basic files for conversion from other MR.
- e160369d - try stuff
- ff416b6d - Add ability to parse default property values.
- 99d06e63 - Refactored ParseAlgorithms. Add a custom build step to generate .cpp conversions.
- 1ad1f591 - continue with building automatic conversions
- a37c9792 - Update generation of wrappers.
- 703939fa - Made Consumer work. Fixed MatchUpstreamMuon functions making them inline.
- 9e68f871 - Added ProvideConstants and ProvideRuntimeOptions.
- 7a810160 - Adapt ProvideRuntimeOptions to updated RuntimeOptions object. Move to std::shared_ptr for provider.
- 9fb6e013 - Fix CMake warning about sare runtime environment
- a7f05b59 - Simplify TESProvider to remove hardcoded bankTypes from RunAllen.
- abc2b206 - Modified AllenVeloToV2Tracks to accept std::vectors and output std::vector<LHCb::Event::v2::Track>.
- dd4eee62 - Automatic translation of python configurations Allen-Gaudi.
- a81aa8c3 - Fixed formatting
- 6cde250b - Added copyright.
- 2c3778ce - Updated AllenConf to AllenCore in generated.
- 12c0cd13 - many changes
- 8315a81d - works now
- 6f645b77 - first working eff checker
- ffe2de99 - format and change gaudialg generation to Gaudi::Algorithm
- ea8a1666 - Fixed formatting
- 6726e055 - Added copyright.
- b76121c6 - Adapted to latest rebase.
- 7eba72e1 - Adapted libraries against which AllenAlgorithms links.
Toggle commit list-
31cb715b...0f09ce3d - 2 commits from branch
added 1 commit
- 1d17a4af - Added ECal and HCal to tes_provider in Gaudi algorithm provideruntimeoptions,
added 44 commits
- 30465907 - Created InputAggregate datatype.
- aa2df29b - Made ArgumentManager accept input aggregates.
- 8a09562b - continue
- 7326682c - Comment out gather_selections source. Attempt at adding aggregates_tuple.
- 04458626 - Produce input aggregate tuple in scheduler.
- 8173564e - Added flatten tuple.
- dd9ecbcd - First compiling version. Aggregates can be accessed like other parameters.
- 98c7d40d - Transformed GatherSelections to use the new input aggregates.
- 3b03e6af - Remove generation of ConfiguredInputAggregates.h
- b7581502 - Remove need of extinct ConfiguredInputAggregates.h
- 2db32fc3 - Remove unneeded aggregates from AllenSequenceGenerator.
- 96d494ec - Reorder definition of InputAggregates.
- ac61dcd0 - Expose data() instead of pointer() in InputAggregate.
- fc154271 - Remove unused SingleArgumentOverloadResolution copy functions.
- 98651c3d - Simplify copy utility functions from ArgumentOps.
- a3e70095 - Fixed formatting
- 3278c50a - Get rid of warnings.
- 5ff22f18 - Added MASK_INPUT and MASK_OUTPUT types. Used mask_t to distinguish mask types...
- b3ba9788 - Added basic files for conversion from other MR.
- 3ab451eb - try stuff
- b0614ef9 - Add ability to parse default property values.
- 46b4b349 - Refactored ParseAlgorithms. Add a custom build step to generate .cpp conversions.
- a8b73c81 - continue with building automatic conversions
- 466e8002 - Update generation of wrappers.
- 9de1ae90 - Made Consumer work. Fixed MatchUpstreamMuon functions making them inline.
- d1e2fc81 - Added ProvideConstants and ProvideRuntimeOptions.
- c1de79b2 - Adapt ProvideRuntimeOptions to updated RuntimeOptions object. Move to std::shared_ptr for provider.
- 10f9da9b - Fix CMake warning about sare runtime environment
- 8b0a7b30 - Simplify TESProvider to remove hardcoded bankTypes from RunAllen.
- 1746604d - Modified AllenVeloToV2Tracks to accept std::vectors and output std::vector<LHCb::Event::v2::Track>.
- 41beeb1a - Automatic translation of python configurations Allen-Gaudi.
- ad717d1e - Fixed formatting
- 2b55dcb6 - Added copyright.
- 0262296f - Updated AllenConf to AllenCore in generated.
- ff9a09af - many changes
- fc08fb0a - works now
- bfc2e552 - first working eff checker
- b3388e42 - format and change gaudialg generation to Gaudi::Algorithm
- 6d03fa6c - Fixed formatting
- 5fe0f3eb - Added copyright.
- e86e7550 - Adapted to latest rebase.
- db19bbca - Adapted libraries against which AllenAlgorithms links.
- acdbd974 - Added ECal and HCal to tes_provider in Gaudi algorithm provideruntimeoptions,
- b9689c47 - Have a constructor of ArgumentManager for the case without any InputAggregates.
Toggle commit listadded 30 commits
- 66c8a17c - InputAggregates now has an underlying std::vector<std::reference_wrapper<ArgumentData>>.
- bb76c394 - Added MASK_INPUT and MASK_OUTPUT types. Used mask_t to distinguish mask types...
- 184bea42 - Added basic files for conversion from other MR.
- f09d5913 - try stuff
- 2105b7bb - Add ability to parse default property values.
- f925fd19 - Refactored ParseAlgorithms. Add a custom build step to generate .cpp conversions.
- d4fa2fc4 - continue with building automatic conversions
- 0ffedd3e - Update generation of wrappers.
- 0c59effc - Made Consumer work. Fixed MatchUpstreamMuon functions making them inline.
- 6de2b5bc - Added ProvideConstants and ProvideRuntimeOptions.
- 5c9e40fd - Adapt ProvideRuntimeOptions to updated RuntimeOptions object. Move to std::shared_ptr for provider.
- fa833928 - Fix CMake warning about sare runtime environment
- e925d5cc - Simplify TESProvider to remove hardcoded bankTypes from RunAllen.
- ba6d8850 - Modified AllenVeloToV2Tracks to accept std::vectors and output std::vector<LHCb::Event::v2::Track>.
- ec5bab3b - Automatic translation of python configurations Allen-Gaudi.
- d702615b - Fixed formatting
- 73c2a764 - Added copyright.
- d9af9928 - Updated AllenConf to AllenCore in generated.
- 913f7c30 - many changes
- 1d230cf3 - works now
- 38eb429e - first working eff checker
- 12f5c06b - format and change gaudialg generation to Gaudi::Algorithm
- bfac1328 - Fixed formatting
- d75f29e9 - Added copyright.
- f6ee7c59 - Adapted to latest rebase.
- 07bf899a - Adapted libraries against which AllenAlgorithms links.
- 973bbe89 - Added ECal and HCal to tes_provider in Gaudi algorithm provideruntimeoptions,
- 88bfef1f - Have a constructor of ArgumentManager for the case without any InputAggregates.
- 7e48233c - Convert all Allen algorithms.
- d29f4eb7 - almost there
Toggle commit listadded 1 commit
- b5f36648 - Made ParseAlgorithms.py a dependency of gaudi wrapper generation. Used...