Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 14:23:09

0001 #ifndef __l1microgmtlutfactories_h
0002 #define __l1microgmtlutfactories_h
0003 
0004 #include <iostream>
0005 
0006 #include "L1Trigger/L1TMuon/interface/MicroGMTRankPtQualLUT.h"
0007 #include "L1Trigger/L1TMuon/interface/MicroGMTMatchQualLUT.h"
0008 #include "L1Trigger/L1TMuon/interface/MicroGMTExtrapolationLUT.h"
0009 #include "L1Trigger/L1TMuon/interface/MicroGMTCaloIndexSelectionLUT.h"
0010 #include "L1Trigger/L1TMuon/interface/MicroGMTAbsoluteIsolationCheckLUT.h"
0011 #include "L1Trigger/L1TMuon/interface/MicroGMTRelativeIsolationCheckLUT.h"
0012 #include "CondFormats/L1TObjects/interface/L1TMuonGlobalParams.h"
0013 
0014 namespace l1t {
0015   class MicroGMTRankPtQualLUTFactory {
0016   public:
0017     MicroGMTRankPtQualLUTFactory(){};
0018     ~MicroGMTRankPtQualLUTFactory(){};
0019 
0020     typedef std::shared_ptr<MicroGMTRankPtQualLUT> ReturnType;
0021 
0022     static ReturnType create(const std::string& filename,
0023                              const int fwVersion,
0024                              const unsigned ptFactor,
0025                              const unsigned qualFactor);
0026     static ReturnType create(l1t::LUT* lut, const int fwVersion);
0027   };
0028 
0029   class MicroGMTMatchQualLUTFactory {
0030   public:
0031     MicroGMTMatchQualLUTFactory(){};
0032     ~MicroGMTMatchQualLUTFactory(){};
0033 
0034     typedef std::shared_ptr<MicroGMTMatchQualLUT> ReturnType;
0035 
0036     static ReturnType create(const std::string& filename,
0037                              const double maxDR,
0038                              const double fEta,
0039                              const double fEtaCoarse,
0040                              const double fPhi,
0041                              cancel_t cancelType,
0042                              const int fwVersion);
0043     static ReturnType create(l1t::LUT* lut, cancel_t cancelType, const int fwVersion);
0044   };
0045 
0046   class MicroGMTExtrapolationLUTFactory {
0047   public:
0048     MicroGMTExtrapolationLUTFactory(){};
0049     ~MicroGMTExtrapolationLUTFactory(){};
0050 
0051     typedef std::shared_ptr<MicroGMTExtrapolationLUT> ReturnType;
0052 
0053     static ReturnType create(const std::string& filename, const int type, const int fwVersion);
0054     static ReturnType create(l1t::LUT* lut, const int type, const int fwVersion);
0055   };
0056 
0057   class MicroGMTCaloIndexSelectionLUTFactory {
0058   public:
0059     MicroGMTCaloIndexSelectionLUTFactory(){};
0060     ~MicroGMTCaloIndexSelectionLUTFactory(){};
0061 
0062     typedef std::shared_ptr<MicroGMTCaloIndexSelectionLUT> ReturnType;
0063 
0064     static ReturnType create(const std::string& filename, const int type, const int fwVersion);
0065     static ReturnType create(l1t::LUT* lut, const int type, const int fwVersion);
0066   };
0067 
0068   class MicroGMTAbsoluteIsolationCheckLUTFactory {
0069   public:
0070     MicroGMTAbsoluteIsolationCheckLUTFactory(){};
0071     ~MicroGMTAbsoluteIsolationCheckLUTFactory(){};
0072 
0073     typedef std::shared_ptr<MicroGMTAbsoluteIsolationCheckLUT> ReturnType;
0074 
0075     static ReturnType create(const std::string& filename, const int fwVersion);
0076     static ReturnType create(l1t::LUT* lut, const int fwVersion);
0077   };
0078 
0079   class MicroGMTRelativeIsolationCheckLUTFactory {
0080   public:
0081     MicroGMTRelativeIsolationCheckLUTFactory(){};
0082     ~MicroGMTRelativeIsolationCheckLUTFactory(){};
0083 
0084     typedef std::shared_ptr<MicroGMTRelativeIsolationCheckLUT> ReturnType;
0085 
0086     static ReturnType create(const std::string& filename, const int fwVersion);
0087     static ReturnType create(l1t::LUT* lut, const int fwVersion);
0088   };
0089 }  // namespace l1t
0090 
0091 #endif /* defined(__l1microgmtlutfactories_h) */