2 #include "../uScript/api.h"
7 for (
unsigned i = 0; i < indices.size(); i++) {
9 if (indices[i] == lists[i].
size()) {
19 for (
unsigned i = 0; i < indices.size(); i++) {
20 if (indices[i] != 0)
return true;
26 std::vector<std::string> ret;
27 std::vector<unsigned>
indices (strings.size(), 0);
30 for (
unsigned i = 0; i <
indices.size(); i++) {
33 ret.push_back(this_str);
40 std::vector<numu::TrackSelector> ret;
41 std::vector<std::vector<numu::TrackFunction>> track_functions;
42 for (
unsigned i = 0; i < track_function_strings.size(); i++) {
43 track_functions.emplace_back();
44 for (
unsigned j = 0; j < track_function_strings[i].size(); j++) {
45 track_functions[i].push_back(uscript::compile<numu::RecoTrack, numu::TrueParticle, unsigned>(
"track",
"particle",
"mctype", track_function_strings[i][j].c_str()));
48 std::vector<unsigned>
indices (track_functions.size(), 0);
50 std::vector<numu::TrackFunction> functions;
51 for (
unsigned i = 0; i <
indices.size(); i++) {
52 functions.push_back(track_functions[i][
indices[i]]);
58 if (!ret)
return false;
std::size_t size(FixedBins< T, C > const &) noexcept
process_name use argoneut_mc_hitfinder track
void Increment(std::vector< unsigned > &indices, const std::vector< std::vector< T >> &lists)
S join(S const &sep, Coll const &s)
Returns a concatenation of strings in s separated by sep.
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
std::vector< TrackSelector > MultiplyTrackSelectors(const std::vector< std::vector< std::string >> &track_function_strings)
std::function< uscript::Value(const numu::RecoTrack *, const numu::TrueParticle *, const unsigned *)> TrackFunction
constexpr std::array< std::size_t, geo::vect::dimension< Vector >)> indices()
Returns a sequence of indices valid for a vector of the specified type.
bool NotZero(const std::vector< unsigned > &indices)
std::vector< std::string > MultiplyNames(const std::vector< std::vector< std::string >> &strings, char join='_')