00001 #ifndef __BCMODELOUTPUT__H 00002 #define __BCMODELOUTPUT__H 00003 00023 // --------------------------------------------------------- 00024 00025 #include <vector> 00026 00027 // BAT classes 00028 class BCModel; 00029 00030 // ROOT classes 00031 class TTree; 00032 class TFile; 00033 class TObject; 00034 00035 const int MAXNPARAMETERS = 20; 00036 00037 // --------------------------------------------------------- 00038 00039 class BCModelOutput 00040 { 00041 public: 00042 00048 BCModelOutput(); 00049 00054 BCModelOutput(BCModel * model, const char * filenname); 00055 00058 BCModelOutput(const BCModelOutput & modeloutput); 00059 00062 virtual ~BCModelOutput(); 00063 00071 BCModelOutput & operator = (const BCModelOutput & modeloutput); 00072 00081 TTree * GetAnalysisTree() 00082 { return fAnalysisTree; }; 00083 00087 TFile * GetFile() 00088 { return fOutputFile; }; 00089 00098 void SetModel(BCModel * model); 00099 00100 00104 void SetFile(const char * filename); 00105 00114 void WriteMarkovChain(bool flag = true); 00115 00118 void FillAnalysisTree(); 00119 00122 void WriteMarginalizedDistributions(); 00123 00126 void WriteErrorBand(); 00127 00130 void Write(TObject * o); 00131 00134 void Close(); 00135 00138 private: 00139 00142 void Init(); 00143 00146 void Copy(BCModelOutput & modeloutput) const; 00147 00150 void InitializeAnalysisTree(); 00151 00154 void InitializeSATree(); 00155 00158 TTree * fAnalysisTree; 00159 00163 std::vector<TTree *> fMarkovChainTrees; 00164 00167 TTree * fTreeSA; 00168 00171 char * fFileName; 00172 00175 TFile * fOutputFile; 00176 00179 BCModel * fModel; 00180 00183 int fIndex; 00184 unsigned int fNParameters; 00185 double fProbability_apriori; 00186 double fProbability_aposteriori; 00187 double fMode_global[MAXNPARAMETERS]; 00188 double fMode_marginalized[MAXNPARAMETERS]; 00189 double fMean_marginalized[MAXNPARAMETERS]; 00190 double fMedian_marginalized[MAXNPARAMETERS]; 00191 double fQuantile_05[MAXNPARAMETERS]; 00192 double fQuantile_10[MAXNPARAMETERS]; 00193 double fQuantile_16[MAXNPARAMETERS]; 00194 double fQuantile_84[MAXNPARAMETERS]; 00195 double fQuantile_90[MAXNPARAMETERS]; 00196 double fQuantile_95[MAXNPARAMETERS]; 00197 00198 }; 00199 00200 // --------------------------------------------------------- 00201 00202 #endif