CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DTResidualFitter.cc
Go to the documentation of this file.
1 
2 /*
3  * Fits core distribution to single gaussian; iterates once.
4  *
5  * $Date: 2010/11/19 14:02:09 $
6  * $Revision: 1.3 $
7  * \author A. Vilela Pereira
8  */
9 
11 
12 #include "TH1F.h"
13 #include "TF1.h"
14 #include "TString.h"
15 
17 
19 
21 
22  TString option("R");
23  if(!debug_) option += "Q";
24 
25  float minFit = histo.GetMean() - histo.GetRMS();
26  float maxFit = histo.GetMean() + histo.GetRMS();
27 
28  TString funcName = TString(histo.GetName()) + "_gaus";
29  TF1* fitFunc = new TF1(funcName,"gaus",minFit,maxFit);
30 
31  histo.Fit(fitFunc,option);
32 
33  minFit = fitFunc->GetParameter(1) - nSigmas*fitFunc->GetParameter(2);
34  maxFit = fitFunc->GetParameter(1) + nSigmas*fitFunc->GetParameter(2);
35  fitFunc->SetRange(minFit,maxFit);
36  histo.Fit(fitFunc,option);
37 
38  return DTResidualFitResult( fitFunc->GetParameter(1),
39  fitFunc->GetParError(1),
40  fitFunc->GetParameter(2),
41  fitFunc->GetParError(2) );
42 }
DTResidualFitResult fitResiduals(TH1F &histo, int nSigmas=1)
DTResidualFitter(bool debug=false)
#define debug
Definition: MEtoEDMFormat.h:34