24 const auto& connected =
quality.cabling()->connected();
27 const auto& detCabling =
quality.cabling()->getDetCabling();
29 for (
const auto&
conn : connected) {
30 const auto det =
conn.first;
31 if (!
quality.IsModuleBad(det)) {
32 const auto detConn_it = detCabling.find(det);
34 if (detCabling.end() != detConn_it) {
35 for (
const auto&
chan : (*detConn_it).second) {
37 const auto detID =
chan->detId();
38 const auto fedID =
chan->fedId();
39 const auto fedCh =
chan->fedCh();
40 const auto iPair =
chan->apvPairNumber();
42 detToFeds_.emplace_back(detID, iPair, fedID, fedCh);
51 const auto gainRange =
gains->getRange(det);
56 const auto bad =
quality.IsStripBad(
quality.getRange(det), detstrip);
68 return a.detID() <
b.detID() || (
a.detID() ==
b.detID() &&
a.pair() <
b.pair());
73 cudaStream_t
stream)
const {
75 data.noise_ = cms::cuda::make_device_unique<std::uint16_t[]>(
noise_.size(),
stream);
77 data.detID_ = cms::cuda::make_device_unique<detId_t[]>(
detID_.size(),
stream);
78 data.iPair_ = cms::cuda::make_device_unique<apvPair_t[]>(
iPair_.size(),
stream);
79 data.gain_ = cms::cuda::make_device_unique<float[]>(
gain_.size(),
stream);
87 data.hostView_ = cms::cuda::make_host_unique<SiStripClusterizerConditionsGPU::Data::DeviceView>(
stream);
88 data.hostView_->noise_ =
data.noise_.get();
89 data.hostView_->invthick_ =
data.invthick_.get();
90 data.hostView_->detID_ =
data.detID_.get();
91 data.hostView_->iPair_ =
data.iPair_.get();
92 data.hostView_->gain_ =
data.gain_.get();
94 data.deviceView_ = cms::cuda::make_device_unique<SiStripClusterizerConditionsGPU::Data::DeviceView>(
stream);
static const uint16_t NUMBER_OF_FEDS
static float getRawNoise(const uint16_t &strip, const Range &range)
std::vector< std::uint16_t, cms::cuda::HostAllocator< std::uint16_t > > noise_
Data const & getGPUProductAsync(cudaStream_t stream) const
__host__ __device__ std::uint32_t channelIndex(fedId_t fed, fedCh_t channel)
std::vector< detId_t, cms::cuda::HostAllocator< detId_t > > detID_
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
static float getStripGain(const uint16_t &strip, const SiStripApvGain::Range &range)
void copyAsync(device::unique_ptr< T > &dst, const host::unique_ptr< T > &src, cudaStream_t stream)
cms::cuda::ESProduct< Data > gpuData_
void setInvThickness(fedId_t fed, fedCh_t channel, float invthick)
void setStrip(fedId_t fed, fedCh_t channel, stripId_t strip, std::uint16_t noise, float gain, bool bad)
constexpr float gains[NGAINS]
static const uint16_t STRIPS_PER_FEDCH
std::vector< apvPair_t, cms::cuda::HostAllocator< apvPair_t > > iPair_
chan
lumi = TPaveText(lowX+0.38, lowY+0.061, lowX+0.45, lowY+0.161, "NDC") lumi.SetBorderSize( 0 ) lumi...
char data[epos_bytes_allocation]
static const uint16_t FEDCH_PER_FED
SiStripClusterizerConditionsGPU(const SiStripQuality &quality, const SiStripGain *gains, const SiStripNoises &noises)
std::vector< float, cms::cuda::HostAllocator< float > > gain_
static const uint16_t APVS_PER_FEDCH
std::vector< float, cms::cuda::HostAllocator< float > > invthick_