CMS 3D CMS Logo

List of all members | Public Member Functions
ALPAKA_ACCELERATOR_NAMESPACE::FastClusterExotic Class Reference

Public Member Functions

template<typename TAcc , typename = std::enable_if_t<alpaka::isAccelerator<TAcc>>>
ALPAKA_FN_ACC void operator() (const TAcc &acc, const reco::PFRecHitHostCollection::ConstView pfRecHits, const reco::PFClusterParamsDeviceCollection::ConstView pfClusParams, const reco::PFRecHitHCALTopologyDeviceCollection::ConstView topology, reco::PFClusteringVarsDeviceCollection::View pfClusteringVars, reco::PFClusterDeviceCollection::View clusterView, reco::PFRecHitFractionDeviceCollection::View fracView, Position4 *__restrict__ globalClusterPos, Position4 *__restrict__ globalPrevClusterPos, float *__restrict__ globalClusterEnergy, float *__restrict__ globalRhFracSum, int *__restrict__ globalSeeds, int *__restrict__ globalRechits) const
 

Detailed Description

Definition at line 1410 of file PFClusterSoAProducerKernel.dev.cc.

Member Function Documentation

◆ operator()()

template<typename TAcc , typename = std::enable_if_t<alpaka::isAccelerator<TAcc>>>
ALPAKA_FN_ACC void ALPAKA_ACCELERATOR_NAMESPACE::FastClusterExotic::operator() ( const TAcc &  acc,
const reco::PFRecHitHostCollection::ConstView  pfRecHits,
const reco::PFClusterParamsDeviceCollection::ConstView  pfClusParams,
const reco::PFRecHitHCALTopologyDeviceCollection::ConstView  topology,
reco::PFClusteringVarsDeviceCollection::View  pfClusteringVars,
reco::PFClusterDeviceCollection::View  clusterView,
reco::PFRecHitFractionDeviceCollection::View  fracView,
Position4 *__restrict__  globalClusterPos,
Position4 *__restrict__  globalPrevClusterPos,
float *__restrict__  globalClusterEnergy,
float *__restrict__  globalRhFracSum,
int *__restrict__  globalSeeds,
int *__restrict__  globalRechits 
) const
inline

Definition at line 1413 of file PFClusterSoAProducerKernel.dev.cc.

References ALPAKA_ACCELERATOR_NAMESPACE::blocksForExoticClusters, ALPAKA_ACCELERATOR_NAMESPACE::hcalFastCluster_exotic(), HLT_2024v12_cff::pfRecHits, and HLT_2024v12_cff::topology.

1425  {
1426  const int nRH = pfRecHits.size();
1427  for (int topoId = alpaka::getIdx<alpaka::Grid, alpaka::Blocks>(acc)[0u]; topoId < nRH;
1428  topoId += blocksForExoticClusters) {
1429  int nRHTopo = pfClusteringVars[topoId].topoRHCount();
1430  int nSeeds = pfClusteringVars[topoId].topoSeedCount();
1431 
1432  // nSeeds value must match multiSeedIterative in FastCluster
1433  if (nRHTopo > 0 && (nSeeds > 400 || nRHTopo - nSeeds > 1500)) {
1435  pfClusParams,
1436  topology,
1437  topoId,
1438  nSeeds,
1439  nRHTopo,
1440  pfRecHits,
1441  pfClusteringVars,
1442  clusterView,
1443  fracView,
1444  globalClusterPos,
1445  globalPrevClusterPos,
1446  globalClusterEnergy,
1447  globalRhFracSum,
1448  globalSeeds,
1449  globalRechits);
1450  }
1451  alpaka::syncBlockThreads(acc); // all threads call sync
1452  }
1453  }
static constexpr uint32_t blocksForExoticClusters
static ALPAKA_FN_ACC void hcalFastCluster_exotic(const TAcc &acc, reco::PFClusterParamsDeviceCollection::ConstView pfClusParams, const reco::PFRecHitHCALTopologyDeviceCollection::ConstView topology, int topoId, int nSeeds, int nRHTopo, reco::PFRecHitDeviceCollection::ConstView pfRecHits, reco::PFClusteringVarsDeviceCollection::View pfClusteringVars, reco::PFClusterDeviceCollection::View clusterView, reco::PFRecHitFractionDeviceCollection::View fracView, Position4 *__restrict__ globalClusterPos, Position4 *__restrict__ globalPrevClusterPos, float *__restrict__ globalClusterEnergy, float *__restrict__ globalRhFracSum, int *__restrict__ globalSeeds, int *__restrict__ globalRechits)