14 const std::array<int,kNDirections> &circuits,
15 const std::array<int,kNDirections> &dimPerCircuit,
21 auto computeAttribute = [
26 ](
const std::array<PixelDiodeTree::IndexType,2> &split_idx,
28 [[maybe_unused]]
const std::array<bool,4> &ganged,
29 [[maybe_unused]]
unsigned int split_i,
32 -> std::tuple<PixelDiodeTree::AttributeType,PixelDiodeTree::AttributeType>
51 assert(split_idx[0]>=0 && split_idx[1]>=0);
56 switch (n_large_dimensions) {
74 current_matrix_attribute
79 switch (fe_numbering) {
92 return std::make_tuple(current_matrix_attribute, current_diode_attribute);
104 std::array<std::array<unsigned int,2>, 2>{ std::array<unsigned int,2>{0u,nEtaLongEnd},
105 std::array<unsigned int,2>{0u,nEtaLong}},
111 std::array<std::array<unsigned int,2>, 2>{ std::array<unsigned int,2>{0u,0u},
112 std::array<unsigned int,2>{0u,0u}
PixelDiodeTree createPixelDiodeTree(const std::array< unsigned int, 2 > &chip_dim, const std::array< unsigned int, 2 > &chip_matrix_dim, const PixelDiodeTree::Vector2D &pitch, const std::array< std::array< unsigned int, 2 >, 2 > &edge_dim, const std::array< PixelDiodeTree::Vector2D, 2 > &edge_pitch, const std::array< std::array< unsigned int, 2 >, 2 > &dead_zone, const AttributeRefiner &func_compute_attribute, std::ostream *debug_out=nullptr)
Create a pixel diode tree.
PixelDiodeTree make(InDetDD::PixelReadoutTechnology readoutTechnology, const std::array< int, kNDirections > &circuits, const std::array< int, kNDirections > &dimPerCircuit, const std::array< std::array< double, kNDirections >, kNPixelLocations > &pitch, FENumbering fe_numbering)