CMS 3D CMS Logo

UnbinnedFitDeDxEstimator.h
Go to the documentation of this file.
1 #ifndef RecoTrackerDeDx_UnbinnedFitDeDxEstimator_h
2 #define RecoTrackerDeDx_UnbinnedFitDeDxEstimator_h
3 
8 
9 #include <TF1.h>
10 
11 #include <iostream>
12 #include <vector>
13 
15 public:
17  fitter.setFunction((f1 = new TF1("myLandau", "TMath::Landau(x,[0],[1],1)", 0, 255)));
18  }
19 
21  // clean up everything
22  delete f1;
23  }
24 
25  std::pair<float, float> dedx(const reco::DeDxHitCollection& Hits) override {
26  // if there is no hit, returns invalid.
27  if (Hits.empty())
28  return std::make_pair(-1, -1);
29  // sets the initial parameters
30  f1->SetParameters(3.0, 0.3);
31  // fills a temporary array and performs the fit
32  uint32_t i = 0;
33  for (reco::DeDxHitCollection::const_iterator hit = Hits.begin(); hit != Hits.end(); ++hit, ++i) {
34  data[i] = hit->charge();
35  }
36  // fit !
37  fitter.fit(Hits.size(), data);
38  // returns the mpv and its error
39  return std::make_pair(f1->GetParameter(0), f1->GetParError(0));
40  }
41 
42  // ----------member data ---------------------------
43  double data[50];
44  TF1* f1;
46 };
47 
48 #endif
std::vector< DeDxHit > DeDxHitCollection
Definition: DeDxHit.h:45
std::pair< float, float > dedx(const reco::DeDxHitCollection &Hits) override
UnbinnedFitDeDxEstimator(const edm::ParameterSet &iConfig)
int32_t fit(int32_t verbosity=-1)