CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TruncatedAverageDeDxEstimator.h
Go to the documentation of this file.
1 #ifndef RecoTrackerDeDx_TruncatedAverageDeDxEstimator_h
2 #define RecoTrackerDeDx_TruncatedAverageDeDxEstimator_h
3 
6 #include <numeric>
7 
9 {
10 public:
12  m_fraction = iConfig.getParameter<double>("fraction");
13  }
14 
15  virtual std::pair<float,float> dedx(const reco::DeDxHitCollection& Hits){
16  int nTrunc = int( Hits.size()*m_fraction);
17  double sumdedx = 0;
18  for(size_t i=0;i + nTrunc < Hits.size() ; i++){
19  sumdedx+=Hits[i].charge();
20  }
21  double avrdedx = (Hits.size()) ? sumdedx/(Hits.size()-nTrunc) :0.0;
22  return std::make_pair(avrdedx,-1);
23  }
24 
25 private:
26  float m_fraction;
27 
28 };
29 
30 #endif
T getParameter(std::string const &) const
int i
Definition: DBlmapReader.cc:9
std::vector< DeDxHit > DeDxHitCollection
Definition: DeDxHit.h:56
virtual std::pair< float, float > dedx(const reco::DeDxHitCollection &Hits)
TruncatedAverageDeDxEstimator(const edm::ParameterSet &iConfig)