File indexing completed on 2023-03-17 11:12:06
0001 #ifndef L1TGlobalScales_h
0002 #define L1TGlobalScales_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #include <vector>
0017 #include <string>
0018 #include <map>
0019 #include <iosfwd>
0020
0021
0022
0023 namespace l1t {
0024
0025 class GlobalScales {
0026 public:
0027
0028 GlobalScales();
0029
0030
0031 virtual ~GlobalScales();
0032
0033 public:
0034
0035 struct ScaleParameters {
0036 double etMin;
0037 double etMax;
0038 double etStep;
0039 std::vector<std::pair<double, double>> etBins;
0040
0041
0042 double uptMin;
0043 double uptMax;
0044 double uptStep;
0045 std::vector<std::pair<double, double>> uptBins;
0046
0047 double phiMin;
0048 double phiMax;
0049 double phiStep;
0050 std::vector<std::pair<double, double>> phiBins;
0051
0052 double etaMin;
0053 double etaMax;
0054 double etaStep;
0055 std::vector<std::pair<double, double>> etaBins;
0056 };
0057
0058 inline void setEGScales(ScaleParameters& scales) { m_egScales = scales; }
0059 inline void setTauScales(ScaleParameters& scales) { m_tauScales = scales; }
0060 inline void setMuonScales(ScaleParameters& scales) { m_muScales = scales; }
0061
0062 inline void setJetScales(ScaleParameters& scales) { m_jetScales = scales; }
0063
0064 inline void setETTScales(ScaleParameters& scales) { m_ettScales = scales; }
0065 inline void setETTEmScales(ScaleParameters& scales) { m_ettEmScales = scales; }
0066 inline void setHTTScales(ScaleParameters& scales) { m_httScales = scales; }
0067 inline void setETMScales(ScaleParameters& scales) { m_etmScales = scales; }
0068 inline void setETMHfScales(ScaleParameters& scales) { m_etmHfScales = scales; }
0069 inline void setHTMScales(ScaleParameters& scales) { m_htmScales = scales; }
0070
0071 virtual void setLUT_CalMuEta(const std::string& lutName, std::vector<long long> lut);
0072 virtual void setLUT_CalMuPhi(const std::string& lutName, std::vector<long long> lut);
0073 virtual void setLUT_DeltaEta(const std::string& lutName, std::vector<long long> lut, unsigned int precision);
0074 virtual void setLUT_DeltaPhi(const std::string& lutName, std::vector<long long> lut, unsigned int precision);
0075 virtual void setLUT_Pt(const std::string& lutName, std::vector<long long> lut, unsigned int precision);
0076 virtual void setLUT_Upt(const std::string& lutName,
0077 std::vector<long long> lut,
0078 unsigned int precision);
0079 virtual void setLUT_Cosh(const std::string& lutName, std::vector<long long> lut, unsigned int precision);
0080 virtual void setLUT_Cos(const std::string& lutName, std::vector<long long> lut, unsigned int precision);
0081 virtual void setLUT_Sin(const std::string& lutName, std::vector<long long> lut, unsigned int precision);
0082
0083 inline void setScalesName(const std::string& name) { m_ScaleSetName = name; }
0084 virtual std::string getScalesName() const;
0085
0086 inline const ScaleParameters& getMUScales() const { return m_muScales; }
0087 inline const ScaleParameters& getEGScales() const { return m_egScales; }
0088 inline const ScaleParameters& getTAUScales() const { return m_tauScales; }
0089 inline const ScaleParameters& getJETScales() const { return m_jetScales; }
0090 inline const ScaleParameters& getETTScales() const { return m_ettScales; }
0091 inline const ScaleParameters& getETTEmScales() const { return m_ettEmScales; }
0092 inline const ScaleParameters& getETMScales() const { return m_etmScales; }
0093 inline const ScaleParameters& getETMHFScales() const { return m_etmHfScales; }
0094 inline const ScaleParameters& getHTTScales() const { return m_httScales; }
0095 inline const ScaleParameters& getHTMScales() const { return m_htmScales; }
0096
0097 long long getLUT_CalMuEta(const std::string& lutName, int element) const;
0098 long long getLUT_CalMuPhi(const std::string& lutName, int element) const;
0099 long long getLUT_DeltaEta(std::string lutName, int element) const;
0100 long long getLUT_DeltaPhi(std::string lutName, int element) const;
0101 long long getLUT_Pt(const std::string& lutName, int element) const;
0102 long long getLUT_Upt(const std::string& lutName, int element) const;
0103 long long getLUT_DeltaEta_Cosh(std::string lutName, int element) const;
0104 long long getLUT_DeltaPhi_Cos(std::string lutName, int element) const;
0105 long long getLUT_Cos(const std::string& lutName, int element) const;
0106 long long getLUT_Sin(const std::string& lutName, int element) const;
0107
0108 unsigned int getPrec_DeltaEta(const std::string& lutName) const;
0109 unsigned int getPrec_DeltaPhi(const std::string& lutName) const;
0110 unsigned int getPrec_Pt(const std::string& lutName) const;
0111 unsigned int getPrec_Upt(const std::string& lutName) const;
0112 unsigned int getPrec_DeltaEta_Cosh(const std::string& lutName) const;
0113 unsigned int getPrec_DeltaPhi_Cos(const std::string& lutName) const;
0114 unsigned int getPrec_Cos(const std::string& lutName) const;
0115 unsigned int getPrec_Sin(const std::string& lutName) const;
0116
0117 virtual void dumpAllLUTs(std::ostream& myCout) const;
0118 virtual void dumpLUT(std::ostream& myCout, int LUTtype, std::string name) const;
0119 virtual void print(std::ostream& myCout) const;
0120 virtual void printScale(ScaleParameters scale, std::ostream& myCout) const;
0121
0122 private:
0123 private:
0124 std::string m_ScaleSetName;
0125
0126 ScaleParameters m_egScales;
0127 ScaleParameters m_tauScales;
0128 ScaleParameters m_muScales;
0129
0130 ScaleParameters m_jetScales;
0131
0132 ScaleParameters m_ettScales;
0133 ScaleParameters m_ettEmScales;
0134 ScaleParameters m_httScales;
0135 ScaleParameters m_etmScales;
0136 ScaleParameters m_etmHfScales;
0137 ScaleParameters m_htmScales;
0138
0139
0140 std::map<std::string, std::vector<long long>> m_lut_CalMuEta;
0141 std::map<std::string, std::vector<long long>> m_lut_CalMuPhi;
0142 std::map<std::string, std::vector<long long>> m_lut_DeltaEta;
0143 std::map<std::string, std::vector<long long>> m_lut_DeltaPhi;
0144 std::map<std::string, std::vector<long long>> m_lut_Pt;
0145 std::map<std::string, std::vector<long long>> m_lut_Upt;
0146 std::map<std::string, std::vector<long long>> m_lut_Cosh;
0147 std::map<std::string, std::vector<long long>> m_lut_Cos;
0148 std::map<std::string, std::vector<long long>> m_lut_Sin;
0149
0150
0151 std::map<std::string, unsigned int> m_Prec_DeltaEta;
0152 std::map<std::string, unsigned int> m_Prec_DeltaPhi;
0153 std::map<std::string, unsigned int> m_Prec_Pt;
0154 std::map<std::string, unsigned int> m_Prec_Upt;
0155 std::map<std::string, unsigned int> m_Prec_Cosh;
0156 std::map<std::string, unsigned int> m_Prec_Cos;
0157 std::map<std::string, unsigned int> m_Prec_Sin;
0158 };
0159
0160 }
0161 #endif