Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:27:34

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 #include "DataFormats/SoATemplate/interface/SoAView.h"
0010 
0011 // 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.
0012 namespace reco {
0013   using PFRecHitsTopologyNeighbours = Eigen::Matrix<uint32_t, 8, 1>;
0014   GENERATE_SOA_LAYOUT(PFRecHitHCALTopologySoALayout,
0015                       SOA_COLUMN(float, positionX),
0016                       SOA_COLUMN(float, positionY),
0017                       SOA_COLUMN(float, positionZ),
0018                       SOA_COLUMN(float, noiseThreshold),
0019                       SOA_COLUMN(float, seedThreshold),
0020                       SOA_SCALAR(bool, cutsFromDB),
0021                       SOA_EIGEN_COLUMN(PFRecHitsTopologyNeighbours, neighbours))
0022   GENERATE_SOA_LAYOUT(PFRecHitECALTopologySoALayout,
0023                       SOA_COLUMN(float, positionX),
0024                       SOA_COLUMN(float, positionY),
0025                       SOA_COLUMN(float, positionZ),
0026                       SOA_EIGEN_COLUMN(PFRecHitsTopologyNeighbours, neighbours))
0027 
0028   using PFRecHitHCALTopologySoA = PFRecHitHCALTopologySoALayout<>;
0029   using PFRecHitECALTopologySoA = PFRecHitECALTopologySoALayout<>;
0030 }  // namespace reco
0031 
0032 #endif  // RecoParticleFlow_PFRecHitProducer_interface_PFRecHitTopologySoA_h