Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:12:50

0001 /*
0002  * IProcessor.h
0003  *
0004  *  Created on: Oct 4, 2017
0005  *      Author: kbunkow
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   ///allows to use other IGhostBuster implementation than the default one
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 /* L1T_OmtfP1_IPROCESSOREMULATOR_H_ */