File indexing completed on 2024-04-06 12:28:05
0001 #ifndef RecoTrackerDeDx_GenericAverageDeDxEstimator_h
0002 #define RecoTrackerDeDx_GenericAverageDeDxEstimator_h
0003
0004 #include "RecoTracker/DeDx/interface/BaseDeDxEstimator.h"
0005 #include "RecoTracker/DeDx/interface/DeDxTools.h"
0006 #include "DataFormats/TrackReco/interface/DeDxHit.h"
0007
0008 class GenericAverageDeDxEstimator : public BaseDeDxEstimator {
0009 public:
0010 GenericAverageDeDxEstimator(const edm::ParameterSet& iConfig) { m_expo = iConfig.getParameter<double>("exponent"); }
0011
0012 std::pair<float, float> dedx(const reco::DeDxHitCollection& Hits) override {
0013 float result = 0;
0014 size_t n = Hits.size();
0015 for (size_t i = 0; i < n; i++) {
0016 result += pow(Hits[i].charge(), m_expo);
0017 }
0018 return std::make_pair(((n > 0) ? pow(result / n, 1. / m_expo) : 0.0), -1);
0019 }
0020
0021 private:
0022 float m_expo;
0023 };
0024
0025 #endif