Back to home page

Project CMSSW displayed by LXR

 
 

    


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 }  // namespace lst
0056 
0057 #endif