ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Namespaces | Typedefs | Enumerations | Functions | Variables
ModuleIdentifierMatchUtil.h File Reference
#include "Identifier/Identifier.h"
Include dependency graph for ModuleIdentifierMatchUtil.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 InDet
 Primary Vertex Finder.
 
 InDet::ModuleIdentifierMatchUtil
 
 InDet::ModuleIdentifierMatchUtil::detail
 

Typedefs

using InDet::ModuleIdentifierMatchUtil::ModuleData_t = std::array< int, ModuleIdentifierMatchUtil::kAllRows/2 >
 

Enumerations

enum  InDet::ModuleIdentifierMatchUtil::EModulePatternPart {
  InDet::ModuleIdentifierMatchUtil::kBarrelEndcapSelectRange =0, InDet::ModuleIdentifierMatchUtil::kLayerRange =2, InDet::ModuleIdentifierMatchUtil::kEtaRange =4, InDet::ModuleIdentifierMatchUtil::kPhiRange =6,
  InDet::ModuleIdentifierMatchUtil::kColumnStripRange =8, InDet::ModuleIdentifierMatchUtil::kLength =10, InDet::ModuleIdentifierMatchUtil::kSideRange =12, InDet::ModuleIdentifierMatchUtil::kAllRows =14,
  InDet::ModuleIdentifierMatchUtil::kNParts =15
}
 The identifier parts used for identifier matching kAllRows denotes the element which contains a flag (0, 1), to specify whether a pattern should match all modules which are connected to the same side of a physical sensor. More...
 

Functions

template<class T_ID >
int InDet::ModuleIdentifierMatchUtil::detail::getZeroOrSide (const T_ID &id_helper, const Identifier &id)
 
template<ModuleDesignConcept T_ModuleDesign>
int InDet::ModuleIdentifierMatchUtil::getColumnsOrCells (const T_ModuleDesign &moduleDesign)
 
template<bool test_order, typename T >
bool InDet::ModuleIdentifierMatchUtil::verifyElementCountAndOrder (const std::vector< std::vector< T > > &arr, std::size_t n_expected, [[maybe_unused]] std::size_t test_n=0)
 Test whether the given 2D vector has the expected number of elements, and correct ordering. More...
 
bool InDet::ModuleIdentifierMatchUtil::verifyModulePatternList (const std::vector< std::vector< int > > &arr)
 Verify whether a list of module identifier patterns is consistent. More...
 
template<typename T >
bool InDet::ModuleIdentifierMatchUtil::verifyElementCount (const std::vector< std::vector< T > > &arr, std::size_t n_expected)
 test whether the 2D vector arr has the expected number of elements. More...
 
void InDet::ModuleIdentifierMatchUtil::setModuleData (EModulePatternPart part, int value, std::array< int, kAllRows/2 > &dest)
 Convenience function to set the specified element in the given array. More...
 
template<class T_ID , class T_ModuleDesign >
void InDet::ModuleIdentifierMatchUtil::setModuleData (const T_ID &id_helper, const Identifier &identifier, const T_ModuleDesign &module_design, ModuleData_t &module_data)
 Convenience function to extract various identifier parts and set the given array. More...
 
void InDet::ModuleIdentifierMatchUtil::moduleMatches (const std::vector< std::vector< int > > &module_pattern, const ModuleData_t &module_data, std::vector< unsigned int > &module_pattern_idx)
 Test whether an identifier, which is split into various parts, matches some of the given patterns. More...
 
bool InDet::ModuleIdentifierMatchUtil::matchesBothSides (const std::vector< int > &a_module_pattern)
 Test whether the given pattern matches identifiers which refer to either side of a sensor. More...
 
bool InDet::ModuleIdentifierMatchUtil::isSideMatching (const std::vector< int > &a_module_pattern, int side)
 Test whether the given pattern matches the given side. More...
 
bool InDet::ModuleIdentifierMatchUtil::matchesAllModuleRowsOfSensor (const std::vector< int > &a_module_pattern)
 Test whether a pattern matches all module rows of a sensor or just a single row. More...
 

Variables

template<typename T_ID >
concept InDet::ModuleIdentifierMatchUtil::detail::IdentifierHelperWithSideConecpt = requires(T_ID id_helper, Identifier id) { id_helper.side(id); }
 
template<typename T_ModuleDesign >
concept InDet::ModuleIdentifierMatchUtil::HasColumns = requires(T_ModuleDesign design) { design.columns(); }
 
template<typename T_ModuleDesign >
concept InDet::ModuleIdentifierMatchUtil::HasCells = requires(T_ModuleDesign design) { design.cells(); }
 
template<typename T_ModuleDesign >
concept InDet::ModuleIdentifierMatchUtil::ModuleDesignConcept = HasColumns<T_ModuleDesign> || HasCells<T_ModuleDesign>