00001 #ifndef __BCMTFSYSTEMATICVARIATION__H 00002 #define __BCMTFSYSTEMATICVARIATION__H 00003 00015 /* 00016 * Copyright (C) 2008-2012, Daniel Kollar and Kevin Kroeninger. 00017 * All rights reserved. 00018 * 00019 * For the licensing terms see doc/COPYING. 00020 */ 00021 00022 // --------------------------------------------------------- 00023 00024 #include <string> 00025 #include <vector> 00026 00027 class TH1D; 00028 00029 // --------------------------------------------------------- 00030 class BCMTFSystematicVariation 00031 { 00032 public: 00033 00042 BCMTFSystematicVariation(const char * channelname, const char * systematicname, int nprocesses); 00043 00046 ~BCMTFSystematicVariation(); 00047 00057 TH1D * GetHistogramUp(int index) 00058 { return fHistogramUpContainer.at(index); }; 00059 00065 TH1D * GetHistogramDown(int index) 00066 { return fHistogramDownContainer.at(index); }; 00067 00079 void SetHistogramUp(int index, TH1D * hist) 00080 { fHistogramUpContainer[index] = hist; }; 00081 00089 void SetHistogramDown(int index, TH1D * hist) 00090 { fHistogramDownContainer[index] = hist; }; 00091 00100 void SetHistograms(int index, TH1D * hist_up, TH1D * hist_down) 00101 { fHistogramUpContainer[index] = hist_up; 00102 fHistogramDownContainer[index] = hist_down; }; 00103 00113 void AddHistogramUp(TH1D * hist) 00114 { fHistogramUpContainer.push_back(hist); }; 00115 00121 void AddHistogramDown(TH1D * hist) 00122 { fHistogramDownContainer.push_back(hist); }; 00123 00130 void AddHistograms(TH1D * hist_up, TH1D * hist_down) 00131 { fHistogramUpContainer.push_back(hist_up); 00132 fHistogramDownContainer.push_back(hist_down); }; 00133 00136 private: 00137 00140 std::vector<TH1D *> fHistogramUpContainer; 00141 00144 std::vector<TH1D *> fHistogramDownContainer; 00145 00148 std::string fChannelName; 00149 00153 std::string fSystematicName; 00154 00155 }; 00156 // --------------------------------------------------------- 00157 00158 #endif 00159