00001 #include "ForIA/Analysis.hh" 00002 #include "ForIA/IHistogrammer.hh" 00003 00004 namespace ForIA{ 00005 00006 Analysis::Analysis(IHistogrammer *histogrammer, const string &name) : 00007 m_histogrammer(histogrammer), m_name(name), 00008 m_storeEvent(false){ 00009 00010 } 00011 00013 void Analysis::executeClear(const Event &evt){ 00014 m_storeEvent = false; 00015 this->execute(evt); 00016 return; 00017 } 00018 00020 bool Analysis::storesEvent()const{ 00021 return m_storeEvent; 00022 } 00023 00024 void Analysis::storeEvent(bool doStore){ 00025 m_storeEvent = doStore; 00026 return; 00027 } 00028 00030 const string &Analysis::name()const{ 00031 return m_name; 00032 } 00033 00035 IHistogrammer *Analysis::histograms(){ 00036 return m_histogrammer; 00037 } 00038 00040 bool Analysis::bookHistogram1D(const string &path, const string &name, 00041 const string &title, 00042 int nBins, double xMin, double xMax, 00043 bool divideBinWidths){ 00044 histograms()->bookHistogram1D(analysisPath(path), name, title, nBins, xMin, xMax, divideBinWidths); 00045 return true; 00046 } 00047 00049 00050 bool Analysis::bookHistogram1D(const string &name, 00051 const string &title, 00052 int nBins, double xMin, double xMax, 00053 bool divideBinWidths){ 00054 bookHistogram1D("", name, title, nBins, xMin, xMax, divideBinWidths); 00055 return true; 00056 } 00057 00059 bool Analysis::bookHistogram1D(const string &path, const string &name, 00060 const string &title, const vector<double> &bins, 00061 bool divideBinWidths){ 00062 histograms()->bookHistogram1D(analysisPath(path), name, title, bins, divideBinWidths); 00063 return true; 00064 } 00065 00067 bool Analysis::bookHistogram1D(const string &name, 00068 const string &title, const vector<double> &bins, 00069 bool divideBinWidths){ 00070 bookHistogram1D("", name, title, bins, divideBinWidths); 00071 return true; 00072 } 00073 00075 void Analysis::bookProfile1D(const string &path, const string &name, 00076 const string &title, 00077 int nBins, double xMin, double xMax){ 00078 histograms()->bookProfile1D(analysisPath(path), name, title, nBins, xMin, xMax); 00079 return; 00080 } 00081 00083 void Analysis::bookProfile1D(const string &name, 00084 const string &title, 00085 int nBins, double xMin, double xMax){ 00086 bookProfile1D("", name, title, nBins, xMin, xMax); 00087 return; 00088 } 00089 00091 bool Analysis::bookHistogram2D(const string &path, const string &name, const string &title, 00092 int nBinsX, double xMin, double xMax, 00093 int nBinsY, double yMin, double yMax, 00094 bool divideBinWidths){ 00095 histograms()->bookHistogram2D(analysisPath(path), name, title, 00096 nBinsX, xMin, xMax, 00097 nBinsY, yMin, yMax, 00098 divideBinWidths); 00099 return true; 00100 } 00101 00103 bool Analysis::bookHistogram2D(const string &name, const string &title, 00104 int nBinsX, double xMin, double xMax, 00105 int nBinsY, double yMin, double yMax, 00106 bool divideBinWidths){ 00107 bookHistogram2D("", name, title, 00108 nBinsX, xMin, xMax, 00109 nBinsY, yMin, yMax, 00110 divideBinWidths); 00111 return true; 00112 } 00113 00115 bool Analysis::bookHistogram2D(const string &path, const string &name, const string &title, 00116 const vector<double> &xbins, const vector<double> &ybins, 00117 bool divideBinWidths){ 00118 histograms()->bookHistogram2D(analysisPath(path), name, title, xbins, ybins, 00119 divideBinWidths); 00120 return true; 00121 } 00122 00124 bool Analysis::bookHistogram2D(const string &name, const string &title, 00125 const vector<double> &xbins, const vector<double> &ybins, 00126 bool divideBinWidths){ 00127 bookHistogram2D("", name, title, xbins, ybins, divideBinWidths); 00128 return true; 00129 } 00130 00132 void Analysis::bookHistogram3D(const string &path, const string &name, const string &title, 00133 int nBinsX, double xMin, double xMax, 00134 int nBinsY, double yMin, double yMax, 00135 int nBinsZ, double zMin, double zMax, 00136 bool divideBinWidths){ 00137 histograms()->bookHistogram3D(analysisPath(path), name, title, 00138 nBinsX, xMin, xMax, 00139 nBinsY, yMin, yMax, 00140 nBinsZ, zMin, zMax, 00141 divideBinWidths); 00142 return; 00143 } 00144 00146 void Analysis::bookHistogram3D(const string &name, const string &title, 00147 int nBinsX, double xMin, double xMax, 00148 int nBinsY, double yMin, double yMax, 00149 int nBinsZ, double zMin, double zMax, 00150 bool divideBinWidths){ 00151 bookHistogram3D("", name, title, 00152 nBinsX, xMin, xMax, 00153 nBinsY, yMin, yMax, 00154 nBinsZ, zMin, zMax, 00155 divideBinWidths); 00156 return; 00157 } 00159 bool Analysis::fillHistogram1D(const string &path, const string &name, double value, double weight){ 00160 histograms()->fillHistogram1D(analysisPath(path), name, value, weight); 00161 return true; 00162 } 00163 00165 bool Analysis::fillHistogram1D(const string &name, double value, double weight){ 00166 fillHistogram1D("", name, value, weight); 00167 return true; 00168 } 00169 00171 void Analysis::fillProfile1D(const string &path, const string &name, double xVal, double yVal, double weight){ 00172 histograms()->fillProfile1D(analysisPath(path), name, xVal, yVal, weight); 00173 return; 00174 } 00175 00177 void Analysis::fillProfile1D(const string &name, double xVal, double yVal, double weight){ 00178 fillProfile1D("", name, xVal, yVal, weight); 00179 return; 00180 } 00181 00183 bool Analysis::fillHistogram2D(const string &path, const string &name, double xVal, double yVal, double weight){ 00184 histograms()->fillHistogram2D(analysisPath(path), name, xVal, yVal, weight); 00185 return true; 00186 } 00187 00189 bool Analysis::fillHistogram2D(const string &name, double xVal, double yVal, double weight){ 00190 fillHistogram2D("", name, xVal, yVal, weight); 00191 return true; 00192 } 00193 00195 void Analysis::fillHistogram3D(const string &path, const string &name, 00196 double xVal, double yVal, double zVal, double weight){ 00197 histograms()->fillHistogram3D(analysisPath(path), name, xVal, yVal, zVal, weight); 00198 return; 00199 } 00200 00202 void Analysis::fillHistogram3D(const string &name, 00203 double xVal, double yVal, double zVal, double weight){ 00204 fillHistogram3D("", name, xVal, yVal, zVal, weight); 00205 return; 00206 } 00207 00209 void Analysis::normaliseHistogram1D(const string &path, const string &name, double intgl){ 00210 histograms()->normaliseHistogram1D(analysisPath(path), name, intgl); 00211 return; 00212 } 00213 00215 void Analysis::normaliseHistogram1D(const string &name, double intgl){ 00216 normaliseHistogram1D("", name, intgl); 00217 return; 00218 } 00219 00221 void Analysis::scaleHistogram1D(const string &path, const string &name, double scale){ 00222 histograms()->scaleHistogram1D(analysisPath(path), name, scale); 00223 return; 00224 } 00225 00227 void Analysis::scaleHistogram1D(const string &name, double scale){ 00228 scaleHistogram1D("", name, scale); 00229 return; 00230 } 00231 }