Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:21:49

0001 #ifndef L1Trigger_TrackFindingTMTT_StubFEWindows_h
0002 #define L1Trigger_TrackFindingTMTT_StubFEWindows_h
0003 
0004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0005 #include "DataFormats/DetId/interface/DetId.h"
0006 
0007 #include <vector>
0008 
0009 // Window sizes used by FE electronics to select stubs.
0010 
0011 class TrackerTopology;
0012 
0013 namespace tmtt {
0014 
0015   class StubFEWindows {
0016   public:
0017     // Initialize stub window sizes from TTStubProducer cfg.
0018     StubFEWindows(const edm::ParameterSet& pSetStubAlgo);
0019 
0020     // Set all FE stub bend windows to zero.
0021     void setZero();
0022 
0023     // Access window size arrays (const functions).
0024     const std::vector<double>& windowSizeBarrelLayers() const { return windowSizeBarrelLayers_; }
0025     const std::vector<std::vector<double> >& windowSizeEndcapDisksRings() const { return windowSizeEndcapDisksRings_; }
0026     const std::vector<std::vector<double> >& windowSizeTiltedLayersRings() const {
0027       return windowSizeTiltedLayersRings_;
0028     }
0029 
0030     // Access window size arrays (non-const functions).
0031     std::vector<double>& windowSizeBarrelLayers() { return windowSizeBarrelLayers_; }
0032     std::vector<std::vector<double> >& windowSizeEndcapDisksRings() { return windowSizeEndcapDisksRings_; }
0033     std::vector<std::vector<double> >& windowSizeTiltedLayersRings() { return windowSizeTiltedLayersRings_; }
0034 
0035     // Number of tilted barrel modules each half of each PS barrel layer.
0036     const std::vector<double>& numTiltedLayerRings() const { return numTiltedLayerRings_; }
0037 
0038     // Const/non-const access to element of array giving window size for specific module.
0039     const double* storedWindowSize(const TrackerTopology* trackerTopo, const DetId& detId) const;
0040     double* storedWindowSize(const TrackerTopology* trackerTopo, const DetId& detId);
0041 
0042   private:
0043     // Stub window sizes as encoded in L1Trigger/TrackTrigger/interface/TTStubAlgorithm_official.h
0044     std::vector<double> windowSizeBarrelLayers_;
0045     std::vector<std::vector<double> > windowSizeEndcapDisksRings_;
0046     std::vector<std::vector<double> > windowSizeTiltedLayersRings_;
0047     std::vector<double> numTiltedLayerRings_;
0048   };
0049 
0050 }  // namespace tmtt
0051 
0052 #endif