File indexing completed on 2025-07-03 00:42:41
0001 #ifndef RecoTracker_PixelSeeding_plugins_alpaka_CAHitNtupletGenerator_h
0002 #define RecoTracker_PixelSeeding_plugins_alpaka_CAHitNtupletGenerator_h
0003
0004 #include <alpaka/alpaka.hpp>
0005
0006 #include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h"
0007 #include "DataFormats/TrackSoA/interface/TrackDefinitions.h"
0008 #include "DataFormats/TrackSoA/interface/alpaka/TracksSoACollection.h"
0009 #include "DataFormats/TrackSoA/interface/TracksHost.h"
0010 #include "DataFormats/TrackSoA/interface/TracksDevice.h"
0011 #include "DataFormats/TrackingRecHitSoA/interface/TrackingRecHitsSoA.h"
0012 #include "DataFormats/TrackingRecHitSoA/interface/alpaka/TrackingRecHitsSoACollection.h"
0013 #include "FWCore/Framework/interface/EventSetup.h"
0014 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0015 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0016 #include "HeterogeneousCore/AlpakaInterface/interface/config.h"
0017 #include "RecoTracker/PixelSeeding/interface/alpaka/CAGeometrySoACollection.h"
0018
0019 #include "CACell.h"
0020 #include "CAHitNtupletGeneratorKernels.h"
0021 #include "HelixFit.h"
0022
0023 namespace edm {
0024 class ParameterSetDescription;
0025 }
0026
0027 namespace ALPAKA_ACCELERATOR_NAMESPACE {
0028
0029 template <typename TrackerTraits>
0030 class CAHitNtupletGenerator {
0031 public:
0032 using HitsView = ::reco::TrackingRecHitView;
0033 using HitsConstView = ::reco::TrackingRecHitConstView;
0034 using HitsOnDevice = reco::TrackingRecHitsSoACollection;
0035 using HitsOnHost = ::reco::TrackingRecHitHost;
0036
0037 using TkSoADevice = reco::TracksSoACollection;
0038 using Quality = ::pixelTrack::Quality;
0039
0040 using QualityCuts = ::pixelTrack::QualityCutsT<TrackerTraits>;
0041 using Params = caHitNtupletGenerator::ParamsT<TrackerTraits>;
0042 using Counters = caHitNtupletGenerator::Counters;
0043
0044 using CAGeometryOnDevice = reco::CAGeometrySoACollection;
0045
0046 public:
0047 CAHitNtupletGenerator(const edm::ParameterSet& cfg);
0048
0049 static void fillPSetDescription(edm::ParameterSetDescription& desc);
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059 TkSoADevice makeTuplesAsync(HitsOnDevice const& hits_d,
0060 CAGeometryOnDevice const& params_d,
0061 float bfield,
0062 uint32_t maxDoublets,
0063 uint32_t maxTuples,
0064 Queue& queue) const;
0065
0066 private:
0067 Params m_params;
0068 };
0069
0070 }
0071
0072 #endif