Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef L1Trigger_TrackFindingTMTT_StubWindowsSuggest_h
0002 #define L1Trigger_TrackFindingTMTT_StubWindowsSuggest_h
0003 
0004 #include "L1Trigger/TrackFindingTMTT/interface/Settings.h"
0005 #include "L1Trigger/TrackFindingTMTT/interface/StubFEWindows.h"
0006 
0007 #include <vector>
0008 #include <memory>
0009 
0010 class TrackerTopology;
0011 
0012 namespace tmtt {
0013 
0014   class Stub;
0015 
0016   /** 
0017  * ========================================================================================================
0018  *  This provides recommendations to CMS for the stub window sizes to be used in the FE electronics.
0019  *  It prints the output as a python configuration file in the form of
0020  *  L1Trigger/TrackTrigger/python/TTStubAlgorithmRegister_cfi.py .
0021  *
0022  *  The recommendations are based on the TMTT method of using the stub bend. Whilst they give 
0023  *  high efficiency, they do not take into account the requirement to limit the FE electronics band-width,
0024  *  so tighter cuts may be needed in reality.
0025  * ========================================================================================================
0026  */
0027 
0028   class StubWindowSuggest {
0029   public:
0030     // Configure
0031     StubWindowSuggest(const Settings* settings) : settings_(settings), ptMin_(settings->houghMinPt()) {}
0032 
0033     // Get FE window size arrays (via copy) used with stub producer, but set to zero.
0034     void setFEWindows(const StubFEWindows* sw);
0035 
0036     // Analyse stub window required for this stub.
0037     void process(const TrackerTopology* trackerTopo, const Stub* stub);
0038 
0039     // Print results (should be done in endJob();
0040     void printResults() const;
0041 
0042   private:
0043     // Update stored stub window size with this stub.
0044     void updateStoredWindow(const TrackerTopology* trackerTopo, const Stub* stub, double bendWind);
0045 
0046   private:
0047     // Configuration parameters.
0048     const Settings* settings_;
0049     const float ptMin_;
0050 
0051     // Stub window sizes as encoded in L1Trigger/TrackTrigger/interface/TTStubAlgorithm_official.h
0052     std::unique_ptr<StubFEWindows> sw_;
0053   };
0054 
0055 }  // namespace tmtt
0056 
0057 #endif