ATLAS Offline Software
Loading...
Searching...
No Matches
get_bits.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4
5#ifndef IDDICT_get_bits_H
6#define IDDICT_get_bits_H
7
8#include <string>
9#include <vector>
10
11class IdDictRegion;
12
13namespace IdDict {
14 using RV = std::vector <IdDictRegion*>;
15
20 void
21 compute_bits(const RV& regions, size_t level, const std::string& group);
22
23
24 // This function is recursively called for each level to get the
25 // number of bits. By "definition" we require regions in the same
26 // group to overlap to have a uniform bit-allocation for a group.
27 //
28 // For each call, the first region within the specified "group"
29 // which has a (non-empty) field value at the current level is
30 // used as reference. According to this reference, the regions are
31 // divided into two sets: a set overlapping with the reference and
32 // a non-overlapping set. For the overlapping set, get_bits is
33 // called again, but for the next level. When control comes back,
34 // then a reference is chosen from the non-overlapping set and the
35 // procedure continues.
36 //
37 // The calculation of bits needed for a particular level is done
38 // in compute_bits before the overlapping is check for this level.
39 //
40 void
41 get_bits(const RV& regions, size_t level, const std::string& group);
42}
43#endif
static const std::vector< std::string > regions
std::vector< IdDictRegion * > RV
Definition get_bits.cxx:12
void compute_bits(const RV &regions, size_t level, const std::string &group)
Compute the OR of all fields at <level>, for the subset of overlapping regions.
Definition get_bits.cxx:15
void get_bits(const RV &regions, size_t level, const std::string &group)
Definition get_bits.cxx:45