File indexing completed on 2024-09-07 04:36:56
0001 #ifndef L1TMUON_BARREL_PARAMS_HELPER_h
0002 #define L1TMUON_BARREL_PARAMS_HELPER_h
0003
0004
0005 #include <memory>
0006
0007
0008 #include "FWCore/Framework/interface/ModuleFactory.h"
0009 #include "FWCore/Framework/interface/ESProducer.h"
0010 #include "FWCore/Framework/interface/ESHandle.h"
0011 #include "FWCore/Framework/interface/ESProducts.h"
0012
0013 #include "CondFormats/L1TObjects/interface/L1TMuonBarrelParams.h"
0014 #include "CondFormats/DataRecord/interface/L1TMuonBarrelParamsRcd.h"
0015 #include "L1Trigger/L1TMuon/interface/MicroGMTLUTFactories.h"
0016
0017 #include "FWCore/ParameterSet/interface/FileInPath.h"
0018 #include "CondFormats/L1TObjects/interface/L1TriggerLutFile.h"
0019 #include "CondFormats/L1TObjects/interface/DTTFBitArray.h"
0020
0021 #include "L1Trigger/L1TCommon/interface/TriggerSystem.h"
0022 #include "L1Trigger/L1TCommon/interface/Parameter.h"
0023 #include "L1Trigger/L1TCommon/interface/Mask.h"
0024
0025 #include "L1Trigger/L1TMuonBarrel/interface/L1MuBMTQualPatternLut.h"
0026 #include "L1Trigger/L1TMuonBarrel/interface/L1MuBMTEtaPatternLut.h"
0027
0028 typedef std::map<short, short, std::less<short> > LUT;
0029
0030 class L1TMuonBarrelParamsHelper : public L1TMuonBarrelParams {
0031 public:
0032 L1TMuonBarrelParamsHelper() : L1TMuonBarrelParams() {}
0033 L1TMuonBarrelParamsHelper(const L1TMuonBarrelParams& barrelParams);
0034
0035 ~L1TMuonBarrelParamsHelper() {}
0036
0037 void configFromPy(std::map<std::string, int>& allInts,
0038 std::map<std::string, bool>& allBools,
0039 std::map<std::string, std::vector<std::string> > allMasks,
0040 unsigned int fwVersion,
0041 const std::string& AssLUTpath);
0042 void configFromDB(l1t::TriggerSystem& trgSys);
0043
0044 std::string AssLUTPath() const { return !pnodes_[CONFIG].sparams_.empty() ? pnodes_[CONFIG].sparams_[0] : ""; }
0045 void setAssLUTPath(std::string path) { pnodes_[CONFIG].sparams_.push_back(path); }
0046
0047 void setpta_lut(std::vector<LUT> ptalut) { lutparams_.pta_lut_ = ptalut; };
0048 std::vector<LUT> pta_lut() const { return lutparams_.pta_lut_; };
0049 void setpta_threshold(std::vector<int> ptathresh) { lutparams_.pta_threshold_ = ptathresh; };
0050 std::vector<int> pta_threshold() const { return lutparams_.pta_threshold_; };
0051
0052 void setphi_lut(std::vector<LUT> philut) { lutparams_.phi_lut_ = philut; };
0053 std::vector<LUT> phi_lut() const { return lutparams_.phi_lut_; };
0054
0055 void setext_lut(std::vector<LUTParams::extLUT> extlut) { lutparams_.ext_lut_ = extlut; };
0056 std::vector<LUTParams::extLUT> ext_lut() const { return lutparams_.ext_lut_; };
0057
0058 void setqp_lut(qpLUT qplut) { lutparams_.qp_lut_ = qplut; };
0059 qpLUT qp_lut() const { return lutparams_.qp_lut_; };
0060
0061 void seteta_lut(etaLUT eta_lut) { lutparams_.eta_lut_ = eta_lut; };
0062 etaLUT eta_lut() const { return lutparams_.eta_lut_; };
0063
0064 void set_PT_Assignment_nbits_Phi(int par1) { pnodes_[CONFIG].iparams_[PT_Assignment_nbits_Phi] = par1; }
0065 void set_PT_Assignment_nbits_PhiB(int par1) { pnodes_[CONFIG].iparams_[PT_Assignment_nbits_PhiB] = par1; }
0066 void set_PHI_Assignment_nbits_Phi(int par1) { pnodes_[CONFIG].iparams_[PHI_Assignment_nbits_Phi] = par1; }
0067 void set_PHI_Assignment_nbits_PhiB(int par1) { pnodes_[CONFIG].iparams_[PHI_Assignment_nbits_PhiB] = par1; }
0068 void set_Extrapolation_nbits_Phi(int par1) { pnodes_[CONFIG].iparams_[Extrapolation_nbits_Phi] = par1; }
0069 void set_Extrapolation_nbits_PhiB(int par1) { pnodes_[CONFIG].iparams_[Extrapolation_nbits_PhiB] = par1; }
0070 void set_BX_min(int par1) { pnodes_[CONFIG].iparams_[BX_min] = par1; }
0071 void set_BX_max(int par1) { pnodes_[CONFIG].iparams_[BX_max] = par1; }
0072 void set_Extrapolation_Filter(int par1) { pnodes_[CONFIG].iparams_[Extrapolation_Filter] = par1; }
0073 void set_OutOfTime_Filter_Window(int par1) { pnodes_[CONFIG].iparams_[OutOfTime_Filter_Window] = par1; }
0074 void set_OutOfTime_Filter(bool par1) { pnodes_[CONFIG].iparams_[OutOfTime_Filter] = par1; }
0075 void set_Open_LUTs(bool par1) { pnodes_[CONFIG].iparams_[Open_LUTs] = par1; }
0076 void set_EtaTrackFinder(bool par1) { pnodes_[CONFIG].iparams_[EtaTrackFinder] = par1; }
0077 void set_Extrapolation_21(bool par1) { pnodes_[CONFIG].iparams_[Extrapolation_21] = par1; }
0078 void set_DisableNewAlgo(bool par1) { pnodes_[CONFIG].iparams_[DisableNewAlgo] = par1; }
0079
0080 int get_PT_Assignment_nbits_Phi() const { return pnodes_[CONFIG].iparams_[PT_Assignment_nbits_Phi]; }
0081 int get_PT_Assignment_nbits_PhiB() const { return pnodes_[CONFIG].iparams_[PT_Assignment_nbits_PhiB]; }
0082 int get_PHI_Assignment_nbits_Phi() const { return pnodes_[CONFIG].iparams_[PHI_Assignment_nbits_Phi]; }
0083 int get_PHI_Assignment_nbits_PhiB() const { return pnodes_[CONFIG].iparams_[PHI_Assignment_nbits_PhiB]; }
0084 int get_Extrapolation_nbits_Phi() const { return pnodes_[CONFIG].iparams_[Extrapolation_nbits_Phi]; }
0085 int get_Extrapolation_nbits_PhiB() const { return pnodes_[CONFIG].iparams_[Extrapolation_nbits_PhiB]; }
0086 int get_BX_min() const { return pnodes_[CONFIG].iparams_[BX_min]; }
0087 int get_BX_max() const { return pnodes_[CONFIG].iparams_[BX_max]; }
0088 int get_Extrapolation_Filter() const { return pnodes_[CONFIG].iparams_[Extrapolation_Filter]; }
0089 int get_OutOfTime_Filter_Window() const { return pnodes_[CONFIG].iparams_[OutOfTime_Filter_Window]; }
0090
0091 bool get_OutOfTime_Filter() const { return pnodes_[CONFIG].iparams_[OutOfTime_Filter]; }
0092 bool get_Open_LUTs() const { return pnodes_[CONFIG].iparams_[Open_LUTs]; }
0093 bool get_EtaTrackFinder() const { return pnodes_[CONFIG].iparams_[EtaTrackFinder]; }
0094 bool get_Extrapolation_21() const { return pnodes_[CONFIG].iparams_[Extrapolation_21]; }
0095 bool get_DisableNewAlgo() const { return pnodes_[CONFIG].iparams_[DisableNewAlgo]; }
0096
0097
0098 unsigned fwVersion() const { return fwVersion_; }
0099 void setFwVersion(unsigned fwVersion) { fwVersion_ = fwVersion; }
0100
0101
0102 void print(std::ostream&) const;
0103
0104
0105
0106 L1MuBMTQualPatternLut l1mudttfqualplut;
0107 L1MuBMTEtaPatternLut l1mudttfetaplut;
0108
0109 private:
0110 int load_pt(std::vector<LUT>&, std::vector<int>&, unsigned short int, std::string);
0111 int load_phi(std::vector<LUT>&, unsigned short int, unsigned short int, std::string);
0112 int load_ext(std::vector<L1TMuonBarrelParams::LUTParams::extLUT>&, unsigned short int, unsigned short int);
0113 };
0114
0115 #endif