Go to the documentation of this file.00001 #ifndef __BCMTFANALYSISFACILITY__H
00002 #define __BCMTFANALYSISFACILITY__H
00003
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <string>
00023 #include <vector>
00024
00025 #include <TH1D.h>
00026
00027 #include "../../BAT/BCLog.h"
00028
00029 class BCMTF;
00030 class TTree;
00031 class TRandom3;
00032
00033
00034 class BCMTFAnalysisFacility
00035 {
00036
00037 public:
00038
00045 BCMTFAnalysisFacility(BCMTF * mtf);
00046
00049 ~BCMTFAnalysisFacility();
00050
00057 BCMTF * GetBCMTF()
00058 { return fMTF; };
00059
00067 void SetBCMTF(BCMTF * mtf)
00068 { fMTF = mtf; };
00069
00073 void SetFlagMCMC(bool flag)
00074 { fFlagMCMC = flag; };
00075
00080
00081
00085 BCLog::LogLevel GetLogLevel()
00086 { return fLogLevel; };
00087
00091 void SetLogLevel(BCLog::LogLevel level)
00092 { fLogLevel=level; };
00093
00102 int PerformSingleChannelAnalyses(const char * dirname, const char * options = "");
00103
00112 int PerformSingleSystematicAnalyses(const char * dirname, const char * options = "");
00113
00123 int PerformCalibrationAnalysis(const char * dirname, const std::vector<double> & default_parameters, int index, const std::vector<double> & parametervalues, int nensembles = 1000);
00124
00129 std::vector<TH1D> BuildEnsemble(const std::vector<double> & parameters);
00130
00136 TTree * BuildEnsembles(const std::vector<double> & parameters, int nensembles);
00137
00143 TTree * BuildEnsembles(TTree * tree, int nensembles);
00144
00150 TTree * PerformEnsembleTest(const std::vector<double> & parameters, int nensembles);
00151
00158 TTree * PerformEnsembleTest(TTree * tree, int nensembles, int start = 0);
00159
00164 std::vector<TH1D> MatrixToHistograms(const std::vector< std::vector<double> > & matrix);
00165
00166 private:
00167
00170 BCMTF * fMTF;
00171
00174 TRandom3 * fRandom;
00175
00178 bool fFlagMCMC;
00179
00182 BCLog::LogLevel fLogLevel;
00183
00184 };
00185
00186
00187 #endif
00188