Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef DataFormats_ParticleFlowReco_interface_PFRecHitSoA_h
0002 #define DataFormats_ParticleFlowReco_interface_PFRecHitSoA_h
0003 
0004 #include <Eigen/Core>
0005 #include <Eigen/Dense>
0006 
0007 #include "DataFormats/ParticleFlowReco/interface/PFLayer.h"
0008 #include "DataFormats/SoATemplate/interface/SoACommon.h"
0009 #include "DataFormats/SoATemplate/interface/SoALayout.h"
0010 
0011 namespace reco {
0012 
0013   using PFRecHitsNeighbours = Eigen::Matrix<int32_t, 8, 1>;
0014   GENERATE_SOA_LAYOUT(PFRecHitSoALayout,
0015                       SOA_COLUMN(uint32_t, detId),
0016                       SOA_COLUMN(uint32_t, denseId),
0017                       SOA_COLUMN(float, energy),
0018                       SOA_COLUMN(float, time),
0019                       SOA_COLUMN(int, depth),
0020                       SOA_COLUMN(PFLayer::Layer, layer),
0021                       SOA_EIGEN_COLUMN(PFRecHitsNeighbours,
0022                                        neighbours),  // Neighbour indices (or -1); order: N, S, E, W, NE, SW, SE, NW
0023                       SOA_COLUMN(float, x),
0024                       SOA_COLUMN(float, y),
0025                       SOA_COLUMN(float, z),
0026                       SOA_SCALAR(uint32_t, size)  // Number of PFRecHits in SoA
0027   )
0028 
0029   using PFRecHitSoA = PFRecHitSoALayout<>;
0030 
0031 }  // namespace reco
0032 
0033 #endif  // DataFormats_ParticleFlowReco_interface_PFRecHitSoA_h