Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef CondFormats_HGCalObjects_interface_HGCalMappingParameterSoA_h
0002 #define CondFormats_HGCalObjects_interface_HGCalMappingParameterSoA_h
0003 
0004 #include "DataFormats/SoATemplate/interface/SoACommon.h"
0005 #include "DataFormats/SoATemplate/interface/SoALayout.h"
0006 
0007 #include "CondFormats/HGCalObjects/interface/HGCalMappingModuleIndexer.h"
0008 #include "CondFormats/HGCalObjects/interface/HGCalMappingCellIndexer.h"
0009 
0010 namespace hgcal {
0011 
0012   // Generate structure of module-level (ECON-D) arrays (SoA) layout with module mapping information
0013   GENERATE_SOA_LAYOUT(HGCalMappingModuleParamSoALayout,
0014                       SOA_COLUMN(bool, valid),
0015                       SOA_COLUMN(bool, zside),
0016                       SOA_COLUMN(bool, isSiPM),
0017                       SOA_COLUMN(int, plane),
0018                       SOA_COLUMN(int, i1),
0019                       SOA_COLUMN(int, i2),
0020                       SOA_COLUMN(uint8_t, irot),
0021                       SOA_COLUMN(int8_t, celltype),
0022                       SOA_COLUMN(uint16_t, typeidx),
0023                       SOA_COLUMN(uint16_t, fedid),
0024                       SOA_COLUMN(uint16_t, slinkidx),
0025                       SOA_COLUMN(uint16_t, captureblock),
0026                       SOA_COLUMN(uint16_t, econdidx),
0027                       SOA_COLUMN(uint16_t, captureblockidx),
0028                       SOA_COLUMN(uint32_t, eleid),
0029                       SOA_COLUMN(uint32_t, detid))
0030   using HGCalMappingModuleParamSoA = HGCalMappingModuleParamSoALayout<>;
0031 
0032   // Generate structure of channel-level arrays (SoA) layout with cell mapping information for both silicon and SiPM
0033   GENERATE_SOA_LAYOUT(HGCalMappingCellParamSoALayout,
0034                       SOA_COLUMN(bool, valid),
0035                       SOA_COLUMN(bool, isHD),
0036                       SOA_COLUMN(bool, iscalib),
0037                       SOA_COLUMN(int, caliboffset),
0038                       SOA_COLUMN(bool, isSiPM),
0039                       SOA_COLUMN(uint16_t, typeidx),
0040                       SOA_COLUMN(uint16_t, chip),
0041                       SOA_COLUMN(uint16_t, half),
0042                       SOA_COLUMN(uint16_t, seq),
0043                       SOA_COLUMN(uint16_t, rocpin),
0044                       SOA_COLUMN(int, sensorcell),
0045                       SOA_COLUMN(int, triglink),
0046                       SOA_COLUMN(int, trigcell),
0047                       SOA_COLUMN(int, i1),  // iu/iring
0048                       SOA_COLUMN(int, i2),  // iv/iphi
0049                       SOA_COLUMN(int, t),
0050                       SOA_COLUMN(float, trace),
0051                       SOA_COLUMN(uint32_t, eleid),
0052                       SOA_COLUMN(uint32_t, detid))
0053   using HGCalMappingCellParamSoA = HGCalMappingCellParamSoALayout<>;
0054 
0055   // Generate structure of channel-level arrays (SoA) layout with module mapping information
0056   GENERATE_SOA_LAYOUT(HGCalDenseIndexInfoSoALayout,
0057                       SOA_COLUMN(uint32_t, fedId),
0058                       SOA_COLUMN(uint32_t, fedReadoutSeq),
0059                       SOA_COLUMN(uint32_t, detid),
0060                       SOA_COLUMN(uint32_t, eleid),
0061                       SOA_COLUMN(uint32_t, modInfoIdx),
0062                       SOA_COLUMN(uint32_t, cellInfoIdx),
0063                       SOA_COLUMN(uint32_t, chNumber),
0064                       SOA_COLUMN(float, x),
0065                       SOA_COLUMN(float, y),
0066                       SOA_COLUMN(float, z))
0067   using HGCalDenseIndexInfoSoA = HGCalDenseIndexInfoSoALayout<>;
0068 
0069 }  // namespace hgcal
0070 
0071 #endif  // CondFormats_HGCalObjects_interface_HGCalMappingParameterSoA_h