File indexing completed on 2025-07-03 00:42:11
0001 #include "FWCore/Framework/interface/Event.h"
0002 #include "FWCore/Framework/interface/Frameworkfwd.h"
0003 #include "FWCore/Framework/interface/global/EDProducer.h"
0004 #include "FWCore/Framework/interface/MakerMacros.h"
0005 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0007 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0008 #include "FWCore/Utilities/interface/EDPutToken.h"
0009 #include "FWCore/Utilities/interface/StreamID.h"
0010
0011 #include "DataFormats/TrackingRecHitSoA/interface/TrackingRecHitsHost.h"
0012
0013 #include <memory>
0014 #include <utility>
0015 #include <vector>
0016
0017 namespace edmtest {
0018
0019 class TestWriteHostHitSoA : public edm::global::EDProducer<> {
0020 public:
0021 TestWriteHostHitSoA(edm::ParameterSet const&);
0022 void produce(edm::StreamID, edm::Event&, edm::EventSetup const&) const override;
0023 static void fillDescriptions(edm::ConfigurationDescriptions&);
0024
0025 using HitsOnHost = ::reco::TrackingRecHitHost;
0026
0027 private:
0028 unsigned int hitSize_;
0029 edm::EDPutTokenT<HitsOnHost> putToken_;
0030 };
0031
0032 TestWriteHostHitSoA::TestWriteHostHitSoA(edm::ParameterSet const& iPSet)
0033 : hitSize_(iPSet.getParameter<unsigned int>("hitSize")), putToken_(produces()) {}
0034
0035 void TestWriteHostHitSoA::produce(edm::StreamID, edm::Event& iEvent, edm::EventSetup const&) const {
0036 HitsOnHost hits(cms::alpakatools::host(), hitSize_, 100);
0037 auto hitsView = hits.view();
0038 for (unsigned int i = 0; i < hitSize_; ++i) {
0039 hitsView[i].xGlobal() = float(i);
0040 }
0041 iEvent.emplace(putToken_, std::move(hits));
0042 }
0043
0044 void TestWriteHostHitSoA::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
0045 edm::ParameterSetDescription desc;
0046 desc.add<unsigned int>("hitSize", 1000);
0047 descriptions.addDefault(desc);
0048 }
0049 }
0050
0051 using edmtest::TestWriteHostHitSoA;
0052 DEFINE_FWK_MODULE(TestWriteHostHitSoA);