File indexing completed on 2025-06-20 01:53:33
0001 #ifndef L1Trigger_Phase2L1ParticleFlow_ParametricResolution_h
0002 #define L1Trigger_Phase2L1ParticleFlow_ParametricResolution_h
0003
0004 #include <string>
0005 #include <vector>
0006 #include <cmath>
0007
0008 namespace edm {
0009 class ParameterSet;
0010 class ParameterSetDescription;
0011 }
0012
0013 namespace l1tpf {
0014
0015 class ParametricResolution {
0016 public:
0017 enum class Kind { Calo, Track };
0018
0019 ParametricResolution() {}
0020 ParametricResolution(const edm::ParameterSet &cpset);
0021 ParametricResolution(Kind kind,
0022 std::vector<float> etas,
0023 std::vector<float> offsets,
0024 std::vector<float> scales,
0025 std::vector<float> ptMins,
0026 std::vector<float> ptMaxs)
0027 : kind_(kind), etas_(etas), offsets_(offsets), scales_(scales), ptMins_(ptMins), ptMaxs_(ptMaxs) {};
0028
0029 float operator()(const float pt, const float abseta) const;
0030
0031 protected:
0032 static std::vector<float> getVFloat(const edm::ParameterSet &cpset, const std::string &name);
0033
0034 Kind kind_;
0035 std::vector<float> etas_, offsets_, scales_, ptMins_, ptMaxs_;
0036 };
0037
0038 };
0039
0040 #endif