Back to home page

Project CMSSW displayed by LXR

 
 

    


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