20 std::lock_guard<std::mutex> myGuard(myMutex);
23 sw_ = std::make_unique<StubFEWindows>(*sw);
32 std::lock_guard<std::mutex> myGuard(myMutex);
35 const double invPtMax = 1 /
ptMin_;
40 bendHalfWind = int(2 * bendHalfWind) / 2.;
43 this->updateStoredWindow(trackerTopo, stub, bendHalfWind);
50 double bendHalfWind) {
55 double* storedHalfWindow = sw_->storedWindowSize(trackerTopo, stDetId);
57 if (*storedHalfWindow < bendHalfWind)
58 *storedHalfWindow = bendHalfWind;
63 void StubWindowSuggest::printResults()
const {
64 PrintL1trk(1) <<
"==============================================================================";
65 PrintL1trk(1) <<
" Stub window sizes that TMTT suggests putting inside ";
66 PrintL1trk(1) <<
" /L1Trigger/TrackTrigger/python/TTStubAlgorithmRegister_cfi.py";
67 PrintL1trk(1) <<
" (These should give good efficiency, but tighter windows may be needed to";
68 PrintL1trk(1) <<
" limit the data rate from the FE tracker electronics).";
69 PrintL1trk(1) <<
"==============================================================================";
71 std::stringstream
text;
74 text <<
"BarrelCut = cms.vdouble( ";
76 for (
const auto&
cut : sw_->windowSizeBarrelLayers()) {
83 PrintL1trk(1) <<
"TiltedBarrelCutSet = cms.VPSET( ";
84 for (
const auto& cutVec : sw_->windowSizeTiltedLayersRings()) {
86 text <<
" cms.PSet( TiltedCut = cms.vdouble(";
90 for (
const auto&
cut : cutVec) {
100 for (
const auto& cutVec : sw_->windowSizeEndcapDisksRings()) {
102 text <<
" cms.PSet( EndcapCut = cms.vdouble(";
106 for (
const auto&
cut : cutVec) {
115 PrintL1trk(1) <<
"==============================================================================";
float bendCutInFrontend() const
const TrackerModule * trackerModule() const
ptMin_(conf.getParameter< double >("ptMin"))
Abs< T >::type abs(const T &t)
const DetId & detId() const
float qOverPtOverBend() const