17 {
18
19
20
21 auto computeAttribute = [
23 &circuits,
24 &dimPerCircuit,
25 fe_numbering
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>
33 {
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 assert(split_idx[0]>=0 && split_idx[1]>=0);
53
56 switch (n_large_dimensions) {
57 case 1:
59 break;
60 case 2:
62 break;
63 default:
65 }
66
67
68
69
70
71
72
73
74 current_matrix_attribute
78
79 switch (fe_numbering) {
81
85 }
86 break;
87 }
88 default:
89 break;
90 }
91
92 return std::make_tuple(current_matrix_attribute, current_diode_attribute);
93 };
94
97 PixelDiodeTree diode_tree
104 std::array<std::array<unsigned int,2>, 2>{ std::array<unsigned int,2>{0
u,nEtaLongEnd},
105 std::array<unsigned int,2>{0
u,nEtaLong}},
110 },
111 std::array<std::array<unsigned int,2>, 2>{ std::array<unsigned int,2>{0
u,0
u},
112 std::array<unsigned int,2>{0
u,0
u}
113 },
114 computeAttribute,
115 nullptr);
121 << diode_tree.debugStringRepr());
122 return diode_tree;
123}
#define GEO_MSG_DEBUG(body)
unsigned int AttributeType
InDetDD::PixelDiodeTree::AttributeType makeAttributeType(T val)
convenience method to convert the given value into an attribute
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.
@ u
Enums for curvilinear frames.