Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-01-18 03:41:50

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 #include "DataFormats/SoATemplate/interface/SoAView.h"
0007 
0008 #include "CondFormats/HGCalObjects/interface/HGCalMappingModuleIndexer.h"
0009 #include "CondFormats/HGCalObjects/interface/HGCalMappingCellIndexer.h"
0010 
0011 namespace hgcal {
0012 
0013   // Generate structure of module-level (ECON-D) arrays (SoA) layout with module mapping information
0014   GENERATE_SOA_LAYOUT(HGCalMappingModuleParamSoALayout,
0015                       SOA_COLUMN(bool, valid),
0016                       SOA_COLUMN(bool, zside),
0017                       SOA_COLUMN(bool, isSiPM),
0018                       SOA_COLUMN(int, plane),
0019                       SOA_COLUMN(int, i1),
0020                       SOA_COLUMN(int, i2),
0021                       SOA_COLUMN(uint8_t, irot),
0022                       SOA_COLUMN(int, celltype),
0023                       SOA_COLUMN(uint16_t, typeidx),
0024                       SOA_COLUMN(uint16_t, fedid),
0025                       SOA_COLUMN(uint16_t, slinkidx),
0026                       SOA_COLUMN(uint16_t, captureblock),
0027                       SOA_COLUMN(uint16_t, econdidx),
0028                       SOA_COLUMN(uint16_t, captureblockidx),
0029                       SOA_COLUMN(uint32_t, eleid),
0030                       SOA_COLUMN(uint32_t, detid))
0031   using HGCalMappingModuleParamSoA = HGCalMappingModuleParamSoALayout<>;
0032 
0033   // Generate structure of channel-level arrays (SoA) layout with cell mapping information for both silicon and SiPM
0034   GENERATE_SOA_LAYOUT(HGCalMappingCellParamSoALayout,
0035                       SOA_COLUMN(bool, valid),
0036                       SOA_COLUMN(bool, isHD),
0037                       SOA_COLUMN(bool, iscalib),
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