38 std::vector<std::unique_ptr<Muon::MdtPrepDataCollection>> prdCollections{};
46 std::unique_ptr<Muon::MdtPrepDataCollection>& coll = prdCollections[modHash];
48 coll = std::make_unique<Muon::MdtPrepDataCollection>(modHash);
53 std::unique_ptr<Muon::MdtPrepData> prd{};
54 std::vector<Identifier> rdo{measId};
56 if (meas->numDimensions() == 1) {
59 (cov)(0,0) = meas->driftRadiusCov();
60 prd = std::make_unique<Muon::MdtPrepData>(measId, meas->driftRadius() * Amg::Vector2D::UnitX(),
61 cov, outEle, meas->tdc(), meas->adc(), meas->status());
66 Amg::Vector2D hitPos{twin->driftRadius(), twin->posAlongWire()};
68 (cov)(0,0) = twin->driftRadiusCov();
69 (cov)(1,1) = twin->posAlongWireCov();
71 prd = std::make_unique<Muon::MdtTwinPrepData>(measId, std::move(hitPos), std::move(cov),
72 outEle, twin->tdc(), twin->adc(),
73 twin->twinTdc(), twin->twinAdc(), twin->status());
75 dec_link(*meas) =
Link_t{*coll, coll->size()};
76 prd->setHashAndIndex(coll->identifyHash(), coll->size());
77 coll->push_back(std::move(prd));
81 auto outContainer = std::make_unique<Muon::MdtPrepDataContainer>(idHelper.
module_hash_max());
82 for (std::unique_ptr<Muon::MdtPrepDataCollection>& coll : prdCollections){
87 ATH_CHECK(outContainer->addCollection(coll.release(), hash));
92 return StatusCode::SUCCESS;