File indexing completed on 2023-03-17 11:12:50
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, l1t::tftype mtfType, const OMTFinput& aInput) = 0;
0025
0026
0027 virtual void setGhostBuster(IGhostBuster* ghostBuster) = 0;
0028
0029 virtual AlgoMuons sortResults(unsigned int iProcessor, l1t::tftype mtfType, int charge = 0) = 0;
0030
0031 virtual AlgoMuons ghostBust(AlgoMuons refHitCands, int charge = 0) = 0;
0032
0033 virtual bool checkHitPatternValidity(unsigned int hits) = 0;
0034
0035 virtual std::vector<l1t::RegionalMuonCand> getFinalcandidates(unsigned int iProcessor,
0036 l1t::tftype mtfType,
0037 const AlgoMuons& algoCands) = 0;
0038
0039 virtual std::vector<l1t::RegionalMuonCand> run(unsigned int iProcessor,
0040 l1t::tftype mtfType,
0041 int bx,
0042 OMTFinputMaker* inputMaker,
0043 std::vector<std::unique_ptr<IOMTFEmulationObserver> >& observers) = 0;
0044
0045 virtual void printInfo() const = 0;
0046 };
0047
0048 #endif