File indexing completed on 2022-10-14 01:43:59
0001 #ifndef L1Trigger_TrackFindingTracklet_interface_MatchCalculator_h
0002 #define L1Trigger_TrackFindingTracklet_interface_MatchCalculator_h
0003
0004 #include "L1Trigger/TrackFindingTracklet/interface/ProcessBase.h"
0005 #include "L1Trigger/TrackFindingTracklet/interface/Settings.h"
0006 #include "L1Trigger/TrackFindingTracklet/interface/TrackletLUT.h"
0007
0008 #include <string>
0009 #include <vector>
0010
0011 namespace trklet {
0012
0013 class Globals;
0014 class Stub;
0015 class L1TStub;
0016 class Tracklet;
0017 class AllStubsMemory;
0018 class AllProjectionsMemory;
0019 class CandidateMatchMemory;
0020 class FullMatchMemory;
0021
0022 class MatchCalculator : public ProcessBase {
0023 public:
0024 MatchCalculator(std::string name, Settings const& settings, Globals* global);
0025
0026 ~MatchCalculator() override = default;
0027
0028 void addOutput(MemoryBase* memory, std::string output) override;
0029 void addInput(MemoryBase* memory, std::string input) override;
0030
0031 void execute(unsigned int iSector, double phioffset);
0032
0033 std::vector<std::pair<std::pair<Tracklet*, int>, const Stub*> > mergeMatches(
0034 std::vector<CandidateMatchMemory*>& candmatch);
0035
0036 private:
0037 unsigned int layerdisk_;
0038 unsigned int phiregion_;
0039
0040 int fact_;
0041 int icorrshift_;
0042 int icorzshift_;
0043 int phi0shift_;
0044
0045 TrackletLUT phimatchcuttable_;
0046 TrackletLUT zmatchcuttable_;
0047
0048 TrackletLUT rphicutPStable_;
0049 TrackletLUT rphicut2Stable_;
0050 TrackletLUT rcutPStable_;
0051 TrackletLUT rcut2Stable_;
0052
0053 int ialphafactinner_[N_DSS_MOD * 2];
0054 int ialphafactouter_[N_DSS_MOD * 2];
0055
0056 AllStubsMemory* allstubs_;
0057 AllProjectionsMemory* allprojs_;
0058
0059 std::vector<CandidateMatchMemory*> matches_;
0060 std::vector<FullMatchMemory*> fullMatches_;
0061 };
0062
0063 };
0064 #endif