Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:21:06

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,
0025                             l1t::tftype mtfType,
0026                             const OMTFinput& aInput,
0027                             std::vector<std::unique_ptr<IOMTFEmulationObserver> >& observers) = 0;
0028 
0029   ///allows to use other IGhostBuster implementation than the default one
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 /* L1T_OmtfP1_IPROCESSOREMULATOR_H_ */