File indexing completed on 2024-04-06 12:21:06
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef L1T_OmtfP1_IPROCESSOREMULATOR_H_
0009 #define L1T_OmtfP1_IPROCESSOREMULATOR_H_
0010
0011 #include "L1Trigger/L1TMuonOverlapPhase1/interface/Omtf/GhostBuster.h"
0012 #include "L1Trigger/L1TMuonOverlapPhase1/interface/Omtf/GoldenPatternResult.h"
0013 #include "L1Trigger/L1TMuonOverlapPhase1/interface/Omtf/IOMTFEmulationObserver.h"
0014 #include "L1Trigger/L1TMuonOverlapPhase1/interface/Omtf/OMTFinput.h"
0015 #include "L1Trigger/L1TMuonOverlapPhase1/interface/Omtf/OMTFSorter.h"
0016 #include "L1Trigger/L1TMuonOverlapPhase1/interface/Omtf/OMTFinputMaker.h"
0017
0018 #include "DataFormats/L1TMuon/interface/RegionalMuonCand.h"
0019
0020 class IProcessorEmulator {
0021 public:
0022 virtual ~IProcessorEmulator() {}
0023
0024 virtual void processInput(unsigned int iProcessor,
0025 l1t::tftype mtfType,
0026 const OMTFinput& aInput,
0027 std::vector<std::unique_ptr<IOMTFEmulationObserver> >& observers) = 0;
0028
0029
0030 virtual void setGhostBuster(IGhostBuster* ghostBuster) = 0;
0031
0032 virtual AlgoMuons sortResults(unsigned int iProcessor, l1t::tftype mtfType, int charge = 0) = 0;
0033
0034 virtual AlgoMuons ghostBust(AlgoMuons refHitCands, int charge = 0) = 0;
0035
0036 virtual bool checkHitPatternValidity(unsigned int hits) = 0;
0037
0038 virtual std::vector<l1t::RegionalMuonCand> getFinalcandidates(unsigned int iProcessor,
0039 l1t::tftype mtfType,
0040 const AlgoMuons& algoCands) = 0;
0041
0042 virtual std::vector<l1t::RegionalMuonCand> run(unsigned int iProcessor,
0043 l1t::tftype mtfType,
0044 int bx,
0045 OMTFinputMaker* inputMaker,
0046 std::vector<std::unique_ptr<IOMTFEmulationObserver> >& observers) = 0;
0047
0048 virtual void printInfo() const = 0;
0049 };
0050
0051 #endif