1 #ifndef RecoLocalTracker_SiPixelClusterizer_plugins_SiPixelRawToClusterGPUKernel_h 2 #define RecoLocalTracker_SiPixelClusterizer_plugins_SiPixelRawToClusterGPUKernel_h 5 #include <cuda_runtime.h> 26 inline namespace phase1geometry {
62 inline constexpr uint32_t
pack(uint32_t row, uint32_t
col, uint32_t
adc, uint32_t
flag = 0) {
66 return (row << thePacking.row_shift) | (
col << thePacking.column_shift) | (
adc << thePacking.adc_shift);
71 return (row << thePacking.column_width) |
col;
79 :
word_{cms::cuda::make_host_unique<unsigned int[]>(words,
stream)},
80 fedId_{cms::cuda::make_host_unique<unsigned char[]>(words,
stream)} {}
87 const unsigned int*
word()
const {
return word_.get(); }
106 const unsigned char* modToUnp,
110 const uint32_t wordCounter,
111 const uint32_t fedCounter,
118 const uint16_t* moduleIds,
119 const uint16_t* xDigis,
120 const uint16_t* yDigis,
121 const uint16_t* adcDigis,
122 const uint32_t* packedData,
123 const uint32_t* rawIds,
124 const uint32_t numDigis,
127 std::pair<SiPixelDigisCUDA, SiPixelClustersCUDA>
getResults() {
155 #endif // RecoLocalTracker_SiPixelClusterizer_plugins_SiPixelRawToClusterGPUKernel_h
const unsigned int * word() const
const uint32_t maxROCIndex
void initializeWordFed(int fedId, unsigned int index, cms_uint32_t const *src, unsigned int length)
const uint32_t diskStartBit
std::pair< SiPixelDigisCUDA, SiPixelClustersCUDA > getResults()
const uint32_t bladeStartBit
const uint32_t numRowsInRoc
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
SiPixelClustersCUDA clusters_d
const uint32_t panelStartBit
SiPixelDigiErrorsCUDA digiErrors_d
const unsigned char * fedId() const
SiPixelRawToClusterGPUKernel()=default
static constexpr Packing thePacking
const uint32_t numColsInRoc
const uint32_t ladderMask
const uint32_t moduleMask
cms::cuda::host::unique_ptr< unsigned char[]> fedId_
unsigned int cms_uint32_t
constexpr float gains[NGAINS]
void makePhase2ClustersAsync(const SiPixelClusterThresholds clusterThresholds, const uint16_t *moduleIds, const uint16_t *xDigis, const uint16_t *yDigis, const uint16_t *adcDigis, const uint32_t *packedData, const uint32_t *rawIds, const uint32_t numDigis, cudaStream_t stream)
void setNClusters(uint32_t nClusters, int32_t offsetBPIX2)
~SiPixelRawToClusterGPUKernel()=default
WordFedAppender(uint32_t words, cudaStream_t stream)
const uint32_t ladderStartBit
SiPixelRawToClusterGPUKernel & operator=(const SiPixelRawToClusterGPUKernel &)=delete
const uint32_t layerStartBit
constexpr pixelchannelidentifierimpl::Packing packing()
cms::cuda::host::unique_ptr< uint32_t[]> nModules_Clusters_h
constexpr uint32_t pack(uint32_t row, uint32_t col, uint32_t adc, uint32_t flag=0)
cms::cuda::host::unique_ptr< unsigned int[]> word_
void setNModulesDigis(uint32_t nModules, uint32_t nDigis)
SiPixelDigiErrorsCUDA && getErrors()
const uint32_t moduleStartBit
std::unique_ptr< T, impl::HostDeleter > unique_ptr
void makeClustersAsync(bool isRun2, const SiPixelClusterThresholds clusterThresholds, const SiPixelROCsStatusAndMapping *cablingMap, const unsigned char *modToUnp, const SiPixelGainForHLTonGPU *gains, const WordFedAppender &wordFed, SiPixelFormatterErrors &&errors, const uint32_t wordCounter, const uint32_t fedCounter, bool useQualityInfo, bool includeErrors, bool debug, cudaStream_t stream)
constexpr uint32_t pixelToChannel(int row, int col)
uint16_t *__restrict__ uint16_t const *__restrict__ adc