File indexing completed on 2024-11-19 23:20:20
0001 #ifndef RecoTracker_LSTCore_interface_ModulesSoA_h
0002 #define RecoTracker_LSTCore_interface_ModulesSoA_h
0003
0004 #include "DataFormats/SoATemplate/interface/SoALayout.h"
0005 #include "DataFormats/Portable/interface/PortableCollection.h"
0006
0007 #include "RecoTracker/LSTCore/interface/Common.h"
0008
0009 namespace lst {
0010
0011 enum SubDet { InnerPixel = 0, Barrel = 5, Endcap = 4 };
0012
0013 enum Side { NegZ = 1, PosZ = 2, Center = 3 };
0014
0015 enum ModuleType { PS, TwoS, PixelModule };
0016
0017 enum ModuleLayerType { Pixel, Strip, InnerPixelLayer };
0018
0019 GENERATE_SOA_LAYOUT(ModulesSoALayout,
0020 SOA_COLUMN(unsigned int, detIds),
0021 SOA_COLUMN(Params_Modules::ArrayU16xMaxConnected, moduleMap),
0022 SOA_COLUMN(unsigned int, mapdetId),
0023 SOA_COLUMN(uint16_t, mapIdx),
0024 SOA_COLUMN(uint16_t, nConnectedModules),
0025 SOA_COLUMN(float, drdzs),
0026 SOA_COLUMN(float, dxdys),
0027 SOA_COLUMN(uint16_t, partnerModuleIndices),
0028 SOA_COLUMN(short, layers),
0029 SOA_COLUMN(short, rings),
0030 SOA_COLUMN(short, modules),
0031 SOA_COLUMN(short, rods),
0032 SOA_COLUMN(short, subdets),
0033 SOA_COLUMN(short, sides),
0034 SOA_COLUMN(float, eta),
0035 SOA_COLUMN(float, r),
0036 SOA_COLUMN(bool, isInverted),
0037 SOA_COLUMN(bool, isLower),
0038 SOA_COLUMN(bool, isAnchor),
0039 SOA_COLUMN(ModuleType, moduleType),
0040 SOA_COLUMN(ModuleLayerType, moduleLayerType),
0041 SOA_COLUMN(int, lstLayers),
0042 SOA_SCALAR(uint16_t, nModules),
0043 SOA_SCALAR(uint16_t, nLowerModules))
0044
0045 GENERATE_SOA_LAYOUT(ModulesPixelSoALayout, SOA_COLUMN(unsigned int, connectedPixels))
0046
0047 using ModulesSoA = ModulesSoALayout<>;
0048 using ModulesPixelSoA = ModulesPixelSoALayout<>;
0049
0050 using Modules = ModulesSoA::View;
0051 using ModulesConst = ModulesSoA::ConstView;
0052 using ModulesPixel = ModulesPixelSoA::View;
0053 using ModulesPixelConst = ModulesPixelSoA::ConstView;
0054
0055 }
0056
0057 #endif