Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-06-26 23:27:06

0001 #ifndef RecoParticleFlow_PFRecHitProducer_interface_PFRecHitTopologySoA_h
0002 #define RecoParticleFlow_PFRecHitProducer_interface_PFRecHitTopologySoA_h
0003 
0004 #include <Eigen/Core>
0005 #include <Eigen/Dense>
0006 
0007 #include "DataFormats/SoATemplate/interface/SoACommon.h"
0008 #include "DataFormats/SoATemplate/interface/SoALayout.h"
0009 
0010 // This data structure is an implementation detail of the RecoParticleFlow/PFRecHitProducer subpackage. Due to Alpaka build rules, it has to be located in the interface+src directories.
0011 namespace reco {
0012   using PFRecHitsTopologyNeighbours = Eigen::Matrix<uint32_t, 8, 1>;
0013   GENERATE_SOA_LAYOUT(PFRecHitHCALTopologySoALayout,
0014                       SOA_COLUMN(float, positionX),
0015                       SOA_COLUMN(float, positionY),
0016                       SOA_COLUMN(float, positionZ),
0017                       SOA_COLUMN(float, noiseThreshold),
0018                       SOA_COLUMN(float, seedThreshold),
0019                       SOA_SCALAR(bool, cutsFromDB),
0020                       SOA_EIGEN_COLUMN(PFRecHitsTopologyNeighbours, neighbours))
0021   GENERATE_SOA_LAYOUT(PFRecHitECALTopologySoALayout,
0022                       SOA_COLUMN(float, positionX),
0023                       SOA_COLUMN(float, positionY),
0024                       SOA_COLUMN(float, positionZ),
0025                       SOA_EIGEN_COLUMN(PFRecHitsTopologyNeighbours, neighbours))
0026 
0027   using PFRecHitHCALTopologySoA = PFRecHitHCALTopologySoALayout<>;
0028   using PFRecHitECALTopologySoA = PFRecHitECALTopologySoALayout<>;
0029 }  // namespace reco
0030 
0031 #endif  // RecoParticleFlow_PFRecHitProducer_interface_PFRecHitTopologySoA_h