Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef L1TMUON_BARREL_PARAMS_HELPER_h
0002 #define L1TMUON_BARREL_PARAMS_HELPER_h
0003 
0004 // system include files
0005 #include <memory>
0006 
0007 // user include files
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   // FW version
0098   unsigned fwVersion() const { return fwVersion_; }
0099   void setFwVersion(unsigned fwVersion) { fwVersion_ = fwVersion; }
0100 
0101   // print parameters to stream:
0102   void print(std::ostream&) const;
0103   ///  friend std::ostream& operator<<(std::ostream& o, const L1TMuonBarrelParams & p) { p.print(o); return o; }
0104 
0105   //  L1MuDTExtLut        l1mudttfextlut;
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