Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-07-03 00:42:11

0001 #ifndef DataFormats_TrackingRecHitSoA_interface_TrackingRecHitsSoA_h
0002 #define DataFormats_TrackingRecHitSoA_interface_TrackingRecHitsSoA_h
0003 
0004 #include <Eigen/Dense>
0005 
0006 #include "DataFormats/SoATemplate/interface/SoALayout.h"
0007 #include "DataFormats/TrackingRecHitSoA/interface/SiPixelHitStatus.h"
0008 #include "Geometry/CommonTopologies/interface/SimplePixelTopology.h"
0009 #include "HeterogeneousCore/AlpakaInterface/interface/HistoContainer.h"
0010 
0011 namespace reco {
0012 
0013   GENERATE_SOA_LAYOUT(TrackingHitsLayout,
0014                       SOA_COLUMN(float, xLocal),
0015                       SOA_COLUMN(float, yLocal),
0016                       SOA_COLUMN(float, xerrLocal),
0017                       SOA_COLUMN(float, yerrLocal),
0018                       SOA_COLUMN(float, xGlobal),
0019                       SOA_COLUMN(float, yGlobal),
0020                       SOA_COLUMN(float, zGlobal),
0021                       SOA_COLUMN(float, rGlobal),
0022                       SOA_COLUMN(int16_t, iphi),
0023                       SOA_COLUMN(SiPixelHitStatusAndCharge, chargeAndStatus),
0024                       SOA_COLUMN(int16_t, clusterSizeX),
0025                       SOA_COLUMN(int16_t, clusterSizeY),
0026                       SOA_COLUMN(uint16_t, detectorIndex),
0027                       SOA_SCALAR(int32_t, offsetBPIX2));
0028 
0029   GENERATE_SOA_LAYOUT(HitModulesLayout, SOA_COLUMN(uint32_t, moduleStart));
0030 
0031   // N.B. this layout is not really included by default in the hits SoA
0032   // This holds the needed parameters to activate (via ONLY_TRIPLETS_IN_HOLE) the
0033   // calculations to check if a triplet points to the disk hole
0034   // and then retain only those that fulfil this requirement.
0035   // At the moment this feature is not fully (re)implemented.
0036 
0037   GENERATE_SOA_LAYOUT(AverageGeometryLayout,
0038                       SOA_COLUMN(float, ladderZ),
0039                       SOA_COLUMN(float, ladderX),
0040                       SOA_COLUMN(float, ladderY),
0041                       SOA_COLUMN(float, ladderR),
0042                       SOA_COLUMN(float, ladderMinZ),
0043                       SOA_COLUMN(float, ladderMaxZ),
0044                       SOA_SCALAR(int32_t, endCapZPos),
0045                       SOA_SCALAR(int32_t, endCapZNeg))
0046 
0047   using TrackingRecHitSoA = TrackingHitsLayout<>;
0048   using TrackingRecHitView = TrackingRecHitSoA::View;
0049   using TrackingRecHitConstView = TrackingRecHitSoA::ConstView;
0050 
0051   using HitModuleSoA = HitModulesLayout<>;
0052   using HitModuleSoAView = HitModuleSoA::View;
0053   using HitModuleSoAConstView = HitModuleSoA::ConstView;
0054 
0055   using AverageGeometrySoA = AverageGeometryLayout<>;
0056   using AverageGeometryView = AverageGeometrySoA::View;
0057   using AverageGeometryConstView = AverageGeometrySoA::ConstView;
0058 
0059 };  // namespace reco
0060 
0061 #endif