Back to home page

Project CMSSW displayed by LXR

 
 

    


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 };  // namespace trklet
0068 #endif