Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:26:18

0001 #ifndef RecoLocalTracker_SiPixelClusterizer_interface_SiPixelClusterThresholds_h
0002 #define RecoLocalTracker_SiPixelClusterizer_interface_SiPixelClusterThresholds_h
0003 
0004 /* This struct is an implementation detail of this package.
0005  * It's in the interface directory because it needs to be shared by the legacy, CUDA, and Alpaka plugins.
0006  */
0007 
0008 struct SiPixelClusterThresholds {
0009   inline constexpr int32_t getThresholdForLayerOnCondition(bool isLayer1) const noexcept {
0010     return isLayer1 ? layer1 : otherLayers;
0011   }
0012   const int32_t layer1 = 0;
0013   const int32_t otherLayers = 0;
0014 
0015   const float vCaltoElectronGain = 0;
0016   const float vCaltoElectronGain_L1 = 0;
0017   const float vCaltoElectronOffset = 0;
0018   const float vCaltoElectronOffset_L1 = 0;
0019 
0020   const float electronPerADCGain = 0;
0021   const int8_t phase2ReadoutMode = 0;
0022   const uint16_t phase2DigiBaseline = 0;
0023   const uint8_t phase2KinkADC = 0;
0024 
0025   //Basic just for thresholds
0026   SiPixelClusterThresholds(const int32_t layer1, const int32_t otherLayers)
0027       : layer1(layer1), otherLayers(otherLayers) {}
0028 
0029   //For Phase1
0030   SiPixelClusterThresholds(const int32_t layer1,
0031                            const int32_t otherLayers,
0032                            const float vCaltoElectronGain,
0033                            const float vCaltoElectronGain_L1,
0034                            const float vCaltoElectronOffset,
0035                            const float vCaltoElectronOffset_L1)
0036       : layer1(layer1),
0037         otherLayers(otherLayers),
0038         vCaltoElectronGain(vCaltoElectronGain),
0039         vCaltoElectronGain_L1(vCaltoElectronGain_L1),
0040         vCaltoElectronOffset(vCaltoElectronOffset),
0041         vCaltoElectronOffset_L1(vCaltoElectronOffset_L1) {}
0042 
0043   //For Phase2
0044   SiPixelClusterThresholds(const int32_t layer1,
0045                            const int32_t otherLayers,
0046                            const float electronPerADCGain,
0047                            const int8_t phase2ReadoutMode,
0048                            const uint16_t phase2DigiBaseline,
0049                            const uint8_t phase2KinkADC)
0050       : layer1(layer1),
0051         otherLayers(otherLayers),
0052         electronPerADCGain(electronPerADCGain),
0053         phase2ReadoutMode(phase2ReadoutMode),
0054         phase2DigiBaseline(phase2DigiBaseline),
0055         phase2KinkADC(phase2KinkADC) {}
0056 };
0057 
0058 #endif  // RecoLocalTracker_SiPixelClusterizer_interface_SiPixelClusterThresholds_h