File indexing completed on 2024-04-06 12:21:48
0001 #ifndef L1Trigger_TrackFindingTMTT_MiniHTstage_h
0002 #define L1Trigger_TrackFindingTMTT_MiniHTstage_h
0003
0004 #include "L1Trigger/TrackFindingTMTT/interface/HTrphi.h"
0005 #include "L1Trigger/TrackFindingTMTT/interface/MuxHToutputs.h"
0006 #include "L1Trigger/TrackFindingTMTT/interface/Array2D.h"
0007
0008 #include <memory>
0009
0010 namespace tmtt {
0011
0012 class Settings;
0013
0014 class MiniHTstage {
0015 public:
0016 MiniHTstage(const Settings* settings);
0017
0018 void exec(Array2D<std::unique_ptr<HTrphi>>& mHtRphis);
0019
0020 private:
0021
0022 unsigned int linkIDLoadBalanced(
0023 unsigned int link,
0024 unsigned int mBin,
0025 unsigned int cBin,
0026 unsigned int numStubs,
0027 std::map<std::pair<unsigned int, unsigned int>, unsigned int>& numStubsPerLinkStage1,
0028 std::map<std::pair<unsigned int, unsigned int>, unsigned int>& numStubsPerLinkStage2,
0029 bool test = false) const;
0030
0031 private:
0032 const Settings* settings_;
0033 bool miniHTstage_;
0034 MuxHToutputs::MuxAlgoName muxOutputsHT_;
0035 unsigned int houghNbinsPt_;
0036 unsigned int houghNbinsPhi_;
0037 unsigned int miniHoughLoadBalance_;
0038 unsigned int miniHoughNbinsPt_;
0039 unsigned int miniHoughNbinsPhi_;
0040 float miniHoughMinPt_;
0041 bool miniHoughDontKill_;
0042 float miniHoughDontKillMinPt_;
0043 unsigned int numSubSecsEta_;
0044 unsigned int numPhiNonants_;
0045 unsigned int numPhiSecPerNon_;
0046 unsigned int numEtaRegions_;
0047 bool busySectorKill_;
0048 unsigned int busySectorNumStubs_;
0049 std::vector<unsigned int> busySectorMbinRanges_;
0050 float chosenRofPhi_;
0051 float binSizeQoverPtAxis_;
0052 float binSizePhiTrkAxis_;
0053 float invPtToDphi_;
0054 unsigned int nMiniHTcells_;
0055 unsigned int nHTlinksPerNonant_;
0056 };
0057
0058 }
0059
0060 #endif