ATLAS Offline Software
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 
11 class IdDictRegion;
12 
13 namespace 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
IdDict::get_bits
void get_bits(const RV &regions, size_t level, const std::string &group)
Definition: get_bits.cxx:45
IdDictRegion
Definition: IdDictRegion.h:20
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
IdDict
Definition: get_bits.cxx:11
IdDict::RV
std::vector< IdDictRegion * > RV
Definition: get_bits.cxx:12
CaloLCW_tf.group
group
Definition: CaloLCW_tf.py:28
IdDict::compute_bits
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