8 ISvcLocator* pSvcLocator)
22 return StatusCode::SUCCESS;
28 return StatusCode::SUCCESS;
36 auto output = std::make_unique<xAOD::BaseContainer>();
37 auto outputAux = std::make_unique<xAOD::AuxContainerBase>();
38 output->setStore(outputAux.get());
39 static const SG::AuxElement::Accessor<int> col(
"col");
40 static const SG::AuxElement::Accessor<int> row(
"row");
41 static const SG::AuxElement::Accessor<int> tot(
"tot");
42 static const SG::AuxElement::Accessor<int> eta_module(
"eta_module");
43 static const SG::AuxElement::Accessor<int> phi_module(
"phi_module");
44 static const SG::AuxElement::Accessor<int> layer_disk(
"layer_disk");
45 static const SG::AuxElement::Accessor<int> barrel_ec(
"barrel_ec");
46 static const SG::AuxElement::Accessor<uint64_t> id(
"detid");
48 for (
const auto *collection : *rdoContainer) {
51 if (element !=
nullptr) {
52 std::vector<InDet::UnpackedPixelRDO> hits =
55 for (
auto hit : hits) {
57 output->push_back(item);
65 id(*item) = hit.ID.get_compact();
70 ATH_CHECK(outputHandle.record(std::move(output), std::move(outputAux)));
72 return StatusCode::SUCCESS;
81 auto output = std::make_unique<xAOD::BaseContainer>();
82 auto outputAux = std::make_unique<xAOD::AuxContainerBase>();
83 output->setStore(outputAux.get());
84 static const SG::AuxElement::Accessor<int>
strip(
"strip");
85 static const SG::AuxElement::Accessor<int> side(
"side");
86 static const SG::AuxElement::Accessor<int> eta_module(
"eta_module");
87 static const SG::AuxElement::Accessor<int> phi_module(
"phi_module");
88 static const SG::AuxElement::Accessor<int> layer_disk(
"layer_disk");
89 static const SG::AuxElement::Accessor<int> barrel_ec(
"barrel_ec");
90 static const SG::AuxElement::Accessor<uint64_t> id(
"detid");
92 for (
const auto *collection: *rdoContainer) {
93 if ( collection ==
nullptr)
continue;
95 for (
const auto *hit: *collection) {
97 output->push_back(item);
104 id(*item) = hit->identify().get_compact();
109 ATH_CHECK(outputHandle.record(std::move(output), std::move(outputAux)));
110 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
const ServiceHandle< StoreGateSvc > & detStore() const
An algorithm that can be simultaneously executed in multiple threads.
Class to hold geometrical description of a silicon detector element.
const SCT_ID * m_stripIdHelper
SG::ReadHandleKey< PixelRDO_Container > m_pixelRdoContainerKey
SG::WriteHandleKey< xAOD::BaseContainer > m_stripOutputKey
SG::ReadHandleKey< SCT_RDO_Container > m_stripRdoContainerKey
StatusCode exportStrip(const EventContext &context) const
StatusCode exportPixel(const EventContext &context) const
virtual StatusCode initialize() override
HitsToxAODCopier(const std::string &name, ISvcLocator *pSvcLocator)
ToolHandle< InDet::PixelRDOTool > m_pixelRDOTool
const PixelID * m_pixelIdHelper
virtual StatusCode execute(const EventContext &context) const override
SG::WriteHandleKey< xAOD::BaseContainer > m_pixelOutputKey
virtual bool isValid() override final
Can the handle be successfully dereferenced?
AuxElement(SG::AuxVectorData *container, size_t index)
Base class for elements of a container that can have aux data.
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())