Back to home page

Project CMSSW displayed by LXR

 
 

    


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 }  // namespace edmtest
0052 
0053 using edmtest::TestReadHostHitSoA;
0054 DEFINE_FWK_MODULE(TestReadHostHitSoA);