124 {
125
128
129 std::unique_ptr<HGTD_ClusterCollection> cluster_collection =
130 std::make_unique<HGTD_ClusterCollection>(id_hash);
131
132 if(dataItemsPool){
134 }
135
136 cluster_collection->setIdentifier(identifier);
137 cluster_collection->reserve(rdo_coll.
size());
138
139 const InDetDD::HGTD_DetectorElement* element =
141
142 for (const auto *const rdo : rdo_coll) {
143
144 Identifier rdo_id = rdo->identify();
146
147
149 const InDetDD::HGTD_ModuleDesign& det_design = element->
design();
150 InDetDD::SiLocalPosition si_pos =
153 ATH_MSG_DEBUG(
"Local position: x=" << loc_pos.x() <<
" y=" << loc_pos.y());
154
155
156 std::vector<Identifier> rdo_list = {rdo_id};
157
158
159
160
161
162
163
164 int col_width = 1;
165 int row_width = 1;
166
167
168
169 double eta_width = 1.3;
170 double phi_width = 1.3;
171 ATH_MSG_DEBUG(
"eta_width=" << eta_width <<
" phi_width=" << phi_width);
172
175
176
178
179 ATH_MSG_DEBUG(
"Recovered Time of Arrival: " << time_of_arrival);
180
181
182
183 std::vector<int> time_over_threshold = {static_cast<int>(rdo->getToT())};
184
186 if (dataItemsPool) {
187
188
190 } else {
191
193 }
195 rdo_id,
196 loc_pos,
197 std::move(rdo_list),
198 si_width,
199 element,
200 time_of_arrival,
201 std::move(time_over_threshold));
202
204 cluster_collection->size());
205
206 cluster_collection->push_back(cluster);
207 }
208 return cluster_collection;
209}
pointer nextElementPtr()
obtain the next available element in pool by pointer pool is resized if its limit has been reached On...
size_type size() const noexcept
Returns the number of elements in the collection.
const Identifier & identify() const
const IdentifierHash & identifierHash() const
SiCellId cellIdFromIdentifier(const Identifier &identifier) const override final
SiCellId from Identifier.
const HGTD_ModuleDesign & design() const override final
access to the local description:
virtual SiLocalPosition localPositionOfCell(const SiCellId &cellId) const
readout or diode id -> position.
double xPhi() const
position along phi direction:
double xEta() const
position along eta direction:
void setHashAndIndex(unsigned short collHash, unsigned short objIndex)
TEMP for testing: might make some classes friends later ...
Eigen::Matrix< double, 2, 1 > Vector2D
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts