Crombie Tools
FitTools.h
Go to the documentation of this file.
1 /**
2  @file FitTools.h
3  Definition of FitTools class.
4  @author Daniel Abercrombie <dabercro@mit.edu>
5 */
6 
7 #ifndef CROMBIETOOLS_ANALYSISTOOLS_FITTOOLS_H
8 #define CROMBIETOOLS_ANALYSISTOOLS_FITTOOLS_H
9 
10 #include <vector>
11 
12 #include "TString.h"
13 
14 #include "RooWorkspace.h"
15 
16 #include "HistAnalysis.h"
17 
18 /**
19  @ingroup analysisgroup
20  @class FitTools
21  Class for fitting things for an analysis.
22  It has the same spirit as HistAnalysis, but is separate to cut down on RooFit library loading.
23 */
24 
25 using namespace RooFit;
26 
27 class FitTools : public HistAnalysis
28 {
29  public:
30  FitTools();
31  virtual ~FitTools();
32 
33  /// Get the weights that will reshape the backgrounds different categories to the shape of data in a histogram.
34  void FitCategories ( Double_t Shape_Min, Double_t Shape_Max, const char* ShapeLabel = "" );
35 
36  /// Add a named category. This should be done in the same order as the categories are enumerated in the tree
37  void AddCategory ( TString cat ) { fCategoryNames.push_back(cat); }
38 
39  /// Set the branch to use for the category separation
40  void SetCategoryBranch ( const char* branch ) { fCategoryBranch = branch; }
41 
42  private:
43  std::vector<TString> fCategoryNames; ///< The names of the various categories
44  const char* fCategoryBranch; ///< The name of the branch that separates categories
45 
46  ClassDef(FitTools,1)
47 };
48 
49 #endif