File indexing completed on 2024-04-06 12:21:55
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 TrackletLUT alphainner_;
0053 TrackletLUT alphaouter_;
0054 TrackletLUT rSSinner_;
0055 TrackletLUT rSSouter_;
0056
0057 int ialphafactinner_[N_DSS_MOD * 2];
0058 int ialphafactouter_[N_DSS_MOD * 2];
0059
0060 AllStubsMemory* allstubs_;
0061 AllProjectionsMemory* allprojs_;
0062
0063 std::vector<CandidateMatchMemory*> matches_;
0064 std::vector<FullMatchMemory*> fullMatches_;
0065 };
0066
0067 };
0068 #endif