Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:28:38

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().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().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);