File indexing completed on 2024-09-13 22:52:45
0001 #include <Eigen/Core> // needed here by soa layout
0002
0003 #include "FWCore/Framework/interface/Event.h"
0004 #include "FWCore/Framework/interface/EventSetup.h"
0005 #include "FWCore/Framework/interface/global/EDAnalyzer.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/PluginManager/interface/ModuleDef.h"
0010 #include "FWCore/Utilities/interface/EDGetToken.h"
0011 #include "FWCore/Utilities/interface/InputTag.h"
0012
0013 #include "DataFormats/VertexSoA/interface/ZVertexHost.h"
0014 #include "DataFormats/TrackSoA/interface/TracksHost.h"
0015
0016 template <typename TrackerTraits>
0017 class PixelTrackDumpAlpakaT : public edm::global::EDAnalyzer<> {
0018 public:
0019 using TkSoAHost = TracksHost<TrackerTraits>;
0020 using VertexSoAHost = ZVertexHost;
0021
0022 explicit PixelTrackDumpAlpakaT(const edm::ParameterSet& iConfig);
0023 ~PixelTrackDumpAlpakaT() override = default;
0024
0025 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0026
0027 private:
0028 void analyze(edm::StreamID streamID, edm::Event const& iEvent, const edm::EventSetup& iSetup) const override;
0029 edm::EDGetTokenT<TkSoAHost> tokenSoATrack_;
0030 edm::EDGetTokenT<VertexSoAHost> tokenSoAVertex_;
0031 };
0032
0033 template <typename TrackerTraits>
0034 PixelTrackDumpAlpakaT<TrackerTraits>::PixelTrackDumpAlpakaT(const edm::ParameterSet& iConfig) {
0035 tokenSoATrack_ = consumes(iConfig.getParameter<edm::InputTag>("pixelTrackSrc"));
0036 tokenSoAVertex_ = consumes(iConfig.getParameter<edm::InputTag>("pixelVertexSrc"));
0037 }
0038
0039 template <typename TrackerTraits>
0040 void PixelTrackDumpAlpakaT<TrackerTraits>::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
0041 edm::ParameterSetDescription desc;
0042 desc.add<edm::InputTag>("pixelTrackSrc", edm::InputTag("pixelTracksAlpaka"));
0043 desc.add<edm::InputTag>("pixelVertexSrc", edm::InputTag("pixelVerticesAlpaka"));
0044 descriptions.addWithDefaultLabel(desc);
0045 }
0046
0047 template <typename TrackerTraits>
0048 void PixelTrackDumpAlpakaT<TrackerTraits>::analyze(edm::StreamID streamID,
0049 edm::Event const& iEvent,
0050 const edm::EventSetup& iSetup) const {
0051 auto const& tracks = iEvent.get(tokenSoATrack_);
0052 assert(tracks.view().quality());
0053 assert(tracks.view().chi2());
0054 assert(tracks.view().nLayers());
0055 assert(tracks.view().eta());
0056 assert(tracks.view().pt());
0057 assert(tracks.view().state());
0058 assert(tracks.view().covariance());
0059 assert(tracks.view().nTracks());
0060
0061 auto const& vertices = iEvent.get(tokenSoAVertex_);
0062 assert(vertices.view<reco::ZVertexTracksSoA>().idv());
0063 assert(vertices.view().zv());
0064 assert(vertices.view().wv());
0065 assert(vertices.view().chi2());
0066 assert(vertices.view().ptv2());
0067 assert(vertices.view<reco::ZVertexTracksSoA>().ndof());
0068 assert(vertices.view().sortInd());
0069 assert(vertices.view().nvFinal());
0070 }
0071
0072 using PixelTrackDumpAlpakaPhase1 = PixelTrackDumpAlpakaT<pixelTopology::Phase1>;
0073 using PixelTrackDumpAlpakaPhase2 = PixelTrackDumpAlpakaT<pixelTopology::Phase2>;
0074 using PixelTrackDumpAlpakaHIonPhase1 = PixelTrackDumpAlpakaT<pixelTopology::HIonPhase1>;
0075
0076 #include "FWCore/Framework/interface/MakerMacros.h"
0077 DEFINE_FWK_MODULE(PixelTrackDumpAlpakaPhase1);
0078 DEFINE_FWK_MODULE(PixelTrackDumpAlpakaPhase2);
0079 DEFINE_FWK_MODULE(PixelTrackDumpAlpakaHIonPhase1);