File indexing completed on 2025-07-03 00:42:11
0001 #include "DataFormats/DetId/interface/DetId.h"
0002 #include "FWCore/Framework/interface/Event.h"
0003 #include "FWCore/Framework/interface/Frameworkfwd.h"
0004 #include "FWCore/Framework/interface/global/EDAnalyzer.h"
0005 #include "FWCore/Framework/interface/MakerMacros.h"
0006 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0008 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0009 #include "FWCore/Utilities/interface/EDGetToken.h"
0010 #include "FWCore/Utilities/interface/Exception.h"
0011 #include "FWCore/Utilities/interface/InputTag.h"
0012 #include "FWCore/Utilities/interface/StreamID.h"
0013
0014 #include "DataFormats/TrackingRecHitSoA/interface/TrackingRecHitsHost.h"
0015
0016 #include <vector>
0017
0018 namespace edmtest {
0019
0020 class TestReadHostHitSoA : public edm::global::EDAnalyzer<> {
0021 public:
0022 TestReadHostHitSoA(edm::ParameterSet const&);
0023 void analyze(edm::StreamID, edm::Event const&, edm::EventSetup const&) const override;
0024 static void fillDescriptions(edm::ConfigurationDescriptions&);
0025
0026 using HitsOnHost = ::reco::TrackingRecHitHost;
0027
0028 private:
0029 edm::EDGetTokenT<HitsOnHost> getToken_;
0030 };
0031
0032 TestReadHostHitSoA::TestReadHostHitSoA(edm::ParameterSet const& iPSet)
0033 : getToken_(consumes(iPSet.getParameter<edm::InputTag>("input"))) {}
0034
0035 void TestReadHostHitSoA::analyze(edm::StreamID, edm::Event const& iEvent, edm::EventSetup const&) const {
0036 auto const& hits = iEvent.get(getToken_);
0037 auto hitsView = hits.view();
0038
0039 for (int i = 0; i < hitsView.metadata().size(); ++i) {
0040 if (hitsView[i].xGlobal() != float(i)) {
0041 throw cms::Exception("TestWriteHostHitSoA Failure") << "TestReadHostHitSoA::analyze, entry. i = " << i;
0042 }
0043 }
0044 }
0045
0046 void TestReadHostHitSoA::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
0047 edm::ParameterSetDescription desc;
0048 desc.add<edm::InputTag>("input");
0049 descriptions.addDefault(desc);
0050 }
0051 }
0052
0053 using edmtest::TestReadHostHitSoA;
0054 DEFINE_FWK_MODULE(TestReadHostHitSoA);