Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:20:49

0001 ///
0002 /// \class l1t::MicroGMTMatchQualLUTFactory
0003 ///
0004 /// \author: Thomas Reis
0005 ///
0006 //
0007 // This class implements the MatchQualLUT factory. Based on the firmware
0008 // version it selects the appropriate concrete implementation.
0009 //
0010 
0011 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0012 
0013 #include "L1Trigger/L1TMuon/interface/MicroGMTLUTFactories.h"
0014 
0015 using namespace edm;
0016 
0017 namespace l1t {
0018   MicroGMTMatchQualLUTFactory::ReturnType MicroGMTMatchQualLUTFactory::create(const std::string& filename,
0019                                                                               const double maxDR,
0020                                                                               const double fEta,
0021                                                                               const double fEtaCoarse,
0022                                                                               const double fPhi,
0023                                                                               cancel_t cancelType,
0024                                                                               const int fwVersion) {
0025     ReturnType p;
0026 
0027     if (fwVersion == 1) {
0028       p = ReturnType(new MicroGMTMatchQualSimpleLUT(filename, maxDR, fEtaCoarse, fPhi, cancelType));
0029     } else if (fwVersion >= 0x2020000) {
0030       p = ReturnType(new MicroGMTMatchQualFineLUT(filename, maxDR, fEta, fEtaCoarse, fPhi, cancelType));
0031     } else {
0032       LogError("MicroGMTMatchQualLUTFactory")
0033           << "Invalid firmware version requested: 0x" << std::hex << fwVersion << std::dec;
0034     }
0035     return p;
0036   }
0037 
0038   MicroGMTMatchQualLUTFactory::ReturnType MicroGMTMatchQualLUTFactory::create(l1t::LUT* lut,
0039                                                                               cancel_t cancelType,
0040                                                                               const int fwVersion) {
0041     ReturnType p;
0042 
0043     if (fwVersion == 1) {
0044       p = ReturnType(new MicroGMTMatchQualSimpleLUT(lut, cancelType));
0045     } else if (fwVersion >= 0x2020000) {
0046       p = ReturnType(new MicroGMTMatchQualFineLUT(lut, cancelType));
0047     } else {
0048       LogError("MicroGMTMatchQualLUTFactory")
0049           << "Invalid firmware version requested: 0x" << std::hex << fwVersion << std::dec;
0050     }
0051     return p;
0052   }
0053 }  // namespace l1t