Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 ///
0002 /// \class l1t::MicroGMTCaloIndexSelectionLUTFactory
0003 ///
0004 /// \author: Thomas Reis
0005 ///
0006 //
0007 // This class implements the CaloIndexSelectionLUT 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   MicroGMTCaloIndexSelectionLUTFactory::ReturnType MicroGMTCaloIndexSelectionLUTFactory::create(
0019       const std::string& filename, const int type, const int fwVersion) {
0020     ReturnType p;
0021 
0022     if (fwVersion >= 1) {
0023       p = std::make_shared<l1t::MicroGMTCaloIndexSelectionLUT>(filename, type);
0024     } else {
0025       LogError("MicroGMTCaloIndexSelectionLUTFactory")
0026           << "Invalid firmware version requested: 0x" << std::hex << fwVersion << std::dec;
0027     }
0028     return p;
0029   }
0030 
0031   MicroGMTCaloIndexSelectionLUTFactory::ReturnType MicroGMTCaloIndexSelectionLUTFactory::create(l1t::LUT* lut,
0032                                                                                                 const int type,
0033                                                                                                 const int fwVersion) {
0034     ReturnType p;
0035 
0036     if (fwVersion >= 1) {
0037       p = std::make_shared<l1t::MicroGMTCaloIndexSelectionLUT>(lut, type);
0038     } else {
0039       LogError("MicroGMTCaloIndexSelectionLUTFactory")
0040           << "Invalid firmware version requested: 0x" << std::hex << fwVersion << std::dec;
0041     }
0042     return p;
0043   }
0044 }  // namespace l1t