File indexing completed on 2024-04-06 12:20:46
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 }
0090
0091 #endif