31 std::vector<std::unique_ptr<Muon::MdtPrepDataCollection>> prdCollections{};
39 std::unique_ptr<Muon::MdtPrepDataCollection>& coll = prdCollections[modHash];
41 coll = std::make_unique<Muon::MdtPrepDataCollection>(modHash);
46 std::unique_ptr<Muon::MdtPrepData> prd{};
47 std::vector<Identifier> rdo{measId};
49 if (meas->numDimensions() == 1) {
52 (cov)(0,0) = meas->driftRadiusCov();
53 prd = std::make_unique<Muon::MdtPrepData>(measId, meas->driftRadius() * Amg::Vector2D::UnitX(),
54 cov, outEle, meas->tdc(), meas->adc(), meas->status());
59 Amg::Vector2D hitPos{twin->driftRadius(), twin->posAlongWire()};
61 (cov)(0,0) = twin->driftRadiusCov();
62 (cov)(1,1) = twin->posAlongWireCov();
64 prd = std::make_unique<Muon::MdtTwinPrepData>(measId, std::move(hitPos), std::move(cov),
65 outEle, twin->tdc(), twin->adc(),
66 twin->twinTdc(), twin->twinAdc(), twin->status());
68 prd->setHashAndIndex(coll->identifyHash(), coll->size());
69 coll->push_back(std::move(prd));
73 auto outContainer = std::make_unique<Muon::MdtPrepDataContainer>(idHelper.
module_hash_max());
74 for (std::unique_ptr<Muon::MdtPrepDataCollection>& coll : prdCollections){
77 ATH_CHECK(outContainer->addCollection(coll.release(), hash));
82 return StatusCode::SUCCESS;