Back to home page

Project CMSSW displayed by LXR

 
 

    


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 }  // namespace edm
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 };  // namespace l1tpf
0039 
0040 #endif