![]() |
|
|||
File indexing completed on 2023-03-17 11:13:37
0001 #ifndef L1Trigger_TrackFindingTMTT_DegradeBend_h 0002 #define L1Trigger_TrackFindingTMTT_DegradeBend_h 0003 0004 #include "L1Trigger/TrackFindingTMTT/interface/StubFEWindows.h" 0005 0006 #include "L1Trigger/TrackTrigger/interface/TTStubAlgorithm_official.h" 0007 #include "DataFormats/DetId/interface/DetId.h" 0008 0009 #include <vector> 0010 0011 class TrackerTopology; 0012 0013 namespace tmtt { 0014 0015 class DegradeBend { 0016 /* 0017 *------------------------------------------------------------------------------------------------------------------- 0018 * Implements reduced bits to encode stub bend information: 3 bits for PS, 4 bits for 2S, since the Tracker 0019 * doesn't have the bandwidth to output the unreduced data from the FE electronics. 0020 * 0021 * This obtains the stub window sizes from L1Trigger/TrackTrigger/python/TTStubAlgorithmRegister_cfi.py , 0022 * which must be loaded into the cfg file (with the same params used originally to make the stubs). 0023 * 0024 * The TMTT L1 tracking code can optionally tighten these windows further (cfg option "KillLowPtStubs"). 0025 * This gives slightly more granular encoding with Pt > 3 GeV. 0026 * 0027 * TMTT histograms "hisBendFEVsLayerOrRingPS" & "hisBendFEVsLayerOrRing2S" produced by the "Histos" class 0028 * are useful for debugging. *------------------------------------------------------------------------------------------------------------------- 0029 */ 0030 0031 public: 0032 typedef TTStubAlgorithm_official<Ref_Phase2TrackerDigi_> StubAlgorithmOfficial; 0033 0034 DegradeBend(const TrackerTopology* trackerTopo, const StubFEWindows* sw, const StubAlgorithmOfficial* stubAlgo) 0035 : theTrackerTopo_(trackerTopo), sw_(sw), stubAlgo_(stubAlgo) {} 0036 0037 // Given the original bend, flag indicating if this is a PS or 2S module, & detector identifier, 0038 // this return the degraded stub bend, a boolean indicatng if stub bend was outside the assumed window 0039 // size programmed below, and an integer indicating how many values of the original bend 0040 // were grouped together into this single value of the degraded bend. 0041 // 0042 // (Input argument windowFEnew specifies the stub window size that should be used for this stub instead 0043 // of the window sizes specified in TTStubAlgorithmRegister_cfi.py , but it will ONLY replace the latter 0044 // sizes if it windowFEnew is smaller. If you always want to use TTStubAlgorithmRegister_cfi.py, then 0045 // std::set windowFEnew to a large number, such as 99999.). 0046 void degrade(float bend, 0047 bool psModule, 0048 const DetId& stDetId, 0049 float windowFEnew, 0050 float& degradedBend, 0051 unsigned int& numInGroup) const; 0052 0053 private: 0054 // Does the actual work of degrading the bend. 0055 void work(float bend, 0056 bool psModule, 0057 const DetId& stDetId, 0058 float windowFEnew, 0059 float& degradedBend, 0060 unsigned int& numInGroup, 0061 unsigned int& windowHalfStrips) const; 0062 0063 private: 0064 const TrackerTopology* theTrackerTopo_; 0065 0066 // Stub window sizes as encoded in L1Trigger/TrackTrigger/interface/TTStubAlgorithm_official.h 0067 const StubFEWindows* sw_; 0068 0069 // TTStub produce algo used to make stubs. 0070 const StubAlgorithmOfficial* stubAlgo_; 0071 }; 0072 0073 } // namespace tmtt 0074 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |
![]() ![]() |