Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:04:52

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 #include "DataFormats/SoATemplate/interface/SoAView.h"
0011 
0012 namespace reco {
0013 
0014   using PFRecHitsNeighbours = Eigen::Matrix<int32_t, 8, 1>;
0015   GENERATE_SOA_LAYOUT(PFRecHitSoALayout,
0016                       SOA_COLUMN(uint32_t, detId),
0017                       SOA_COLUMN(uint32_t, denseId),
0018                       SOA_COLUMN(float, energy),
0019                       SOA_COLUMN(float, time),
0020                       SOA_COLUMN(int, depth),
0021                       SOA_COLUMN(PFLayer::Layer, layer),
0022                       SOA_EIGEN_COLUMN(PFRecHitsNeighbours,
0023                                        neighbours),  // Neighbour indices (or -1); order: N, S, E, W, NE, SW, SE, NW
0024                       SOA_COLUMN(float, x),
0025                       SOA_COLUMN(float, y),
0026                       SOA_COLUMN(float, z),
0027                       SOA_SCALAR(uint32_t, size)  // Number of PFRecHits in SoA
0028   )
0029 
0030   using PFRecHitSoA = PFRecHitSoALayout<>;
0031 
0032 }  // namespace reco
0033 
0034 #endif  // DataFormats_ParticleFlowReco_interface_PFRecHitSoA_h