#ifndef HEP_HepFractionFitterTask
#include <HepFractionFitterTask.h>
#endif
#include <TFractionFitter.h>
#include <HepDataMCPlot.h>
#include <TString.h>
#include <TFile.h>
#include <TList.h>
#include <TH1F.h>
#include <TObjArray.h>
#include <iostream>
using namespace std;
#ifndef __CINT__
ClassImp(HepFractionFitterTask);
#endif
HepFractionFitterTask::HepFractionFitterTask(const char* name,
const char* title) : TTask(name, title) {
}
HepFractionFitterTask::~HepFractionFitterTask() {
}
void HepFractionFitterTask::SetInputFilename(const char* InputFilename) {
fInputFilename.Remove(0);
fInputFilename.Append(InputFilename);
}
void HepFractionFitterTask::SetHepDataMCPlotName(const char* HepDataMCPlotName) {
fHepDataMCPlotName.Remove(0);
fHepDataMCPlotName.Append(HepDataMCPlotName);
}
void HepFractionFitterTask::Exec(Option_t *option) {
f_input = new TFile(fInputFilename,"READ");
fHepDataMCPlot = (HepDataMCPlot*)f_input->Get(fHepDataMCPlotName);
Nmc = fHepDataMCPlot->GetMCHistStack()->GetHists()->GetEntries();
TObjArray *mc = new TObjArray(Nmc);
for(int i=0; i<fHepDataMCPlot->GetMCHistStack()->GetHists()->GetEntries(); i++){
mc->Add((TH1F*)fHepDataMCPlot->GetMCHistStack()->GetHists()->At(i));
}
fHistDATA = (TH1F*)fHepDataMCPlot->GetHistDATA();
TFractionFitter *fit = new TFractionFitter(fHistDATA,mc);
fit->SetRangeX(1,7);
Int_t status = fit->Fit();
TString currentworkingdir ="$LIBQCDANALYSIS/hist/";
TString filename = "FractionFitter.root";
new TFile(currentworkingdir+filename,"RECREATE");
cout << "fit status: " << status << endl;
if (status == 0) {
TH1F* result = (TH1F*) fit->GetPlot();
fHistDATA->Write();
result->Write();
}
}
HepFractionFitterTask.cxx:1 HepFractionFitterTask.cxx:2 HepFractionFitterTask.cxx:3 HepFractionFitterTask.cxx:4 HepFractionFitterTask.cxx:5 HepFractionFitterTask.cxx:6 HepFractionFitterTask.cxx:7 HepFractionFitterTask.cxx:8 HepFractionFitterTask.cxx:9 HepFractionFitterTask.cxx:10 HepFractionFitterTask.cxx:11 HepFractionFitterTask.cxx:12 HepFractionFitterTask.cxx:13 HepFractionFitterTask.cxx:14 HepFractionFitterTask.cxx:15 HepFractionFitterTask.cxx:16 HepFractionFitterTask.cxx:17 HepFractionFitterTask.cxx:18 HepFractionFitterTask.cxx:19 HepFractionFitterTask.cxx:20 HepFractionFitterTask.cxx:21 HepFractionFitterTask.cxx:22 HepFractionFitterTask.cxx:23 HepFractionFitterTask.cxx:24 HepFractionFitterTask.cxx:25 HepFractionFitterTask.cxx:26 HepFractionFitterTask.cxx:27 HepFractionFitterTask.cxx:28 HepFractionFitterTask.cxx:29 HepFractionFitterTask.cxx:30 HepFractionFitterTask.cxx:31 HepFractionFitterTask.cxx:32 HepFractionFitterTask.cxx:33 HepFractionFitterTask.cxx:34 HepFractionFitterTask.cxx:35 HepFractionFitterTask.cxx:36 HepFractionFitterTask.cxx:37 HepFractionFitterTask.cxx:38 HepFractionFitterTask.cxx:39 HepFractionFitterTask.cxx:40 HepFractionFitterTask.cxx:41 HepFractionFitterTask.cxx:42 HepFractionFitterTask.cxx:43 HepFractionFitterTask.cxx:44 HepFractionFitterTask.cxx:45 HepFractionFitterTask.cxx:46 HepFractionFitterTask.cxx:47 HepFractionFitterTask.cxx:48 HepFractionFitterTask.cxx:49 HepFractionFitterTask.cxx:50 HepFractionFitterTask.cxx:51 HepFractionFitterTask.cxx:52 HepFractionFitterTask.cxx:53 HepFractionFitterTask.cxx:54 HepFractionFitterTask.cxx:55 HepFractionFitterTask.cxx:56 HepFractionFitterTask.cxx:57 HepFractionFitterTask.cxx:58 HepFractionFitterTask.cxx:59 HepFractionFitterTask.cxx:60 HepFractionFitterTask.cxx:61 HepFractionFitterTask.cxx:62 HepFractionFitterTask.cxx:63 HepFractionFitterTask.cxx:64 HepFractionFitterTask.cxx:65 HepFractionFitterTask.cxx:66 HepFractionFitterTask.cxx:67 HepFractionFitterTask.cxx:68 HepFractionFitterTask.cxx:69 HepFractionFitterTask.cxx:70 HepFractionFitterTask.cxx:71 HepFractionFitterTask.cxx:72 HepFractionFitterTask.cxx:73 HepFractionFitterTask.cxx:74 HepFractionFitterTask.cxx:75 HepFractionFitterTask.cxx:76 HepFractionFitterTask.cxx:77 HepFractionFitterTask.cxx:78 HepFractionFitterTask.cxx:79 HepFractionFitterTask.cxx:80 HepFractionFitterTask.cxx:81 HepFractionFitterTask.cxx:82 HepFractionFitterTask.cxx:83 HepFractionFitterTask.cxx:84 HepFractionFitterTask.cxx:85 HepFractionFitterTask.cxx:86 HepFractionFitterTask.cxx:87 HepFractionFitterTask.cxx:88 HepFractionFitterTask.cxx:89 HepFractionFitterTask.cxx:90 HepFractionFitterTask.cxx:91 HepFractionFitterTask.cxx:92 HepFractionFitterTask.cxx:93 HepFractionFitterTask.cxx:94 HepFractionFitterTask.cxx:95 HepFractionFitterTask.cxx:96 HepFractionFitterTask.cxx:97 HepFractionFitterTask.cxx:98 HepFractionFitterTask.cxx:99 HepFractionFitterTask.cxx:100 HepFractionFitterTask.cxx:101 HepFractionFitterTask.cxx:102 HepFractionFitterTask.cxx:103 HepFractionFitterTask.cxx:104 HepFractionFitterTask.cxx:105 HepFractionFitterTask.cxx:106 HepFractionFitterTask.cxx:107 HepFractionFitterTask.cxx:108 HepFractionFitterTask.cxx:109 HepFractionFitterTask.cxx:110 HepFractionFitterTask.cxx:111 HepFractionFitterTask.cxx:112 HepFractionFitterTask.cxx:113 HepFractionFitterTask.cxx:114 HepFractionFitterTask.cxx:115 HepFractionFitterTask.cxx:116 HepFractionFitterTask.cxx:117 HepFractionFitterTask.cxx:118 HepFractionFitterTask.cxx:119 HepFractionFitterTask.cxx:120 HepFractionFitterTask.cxx:121 HepFractionFitterTask.cxx:122 HepFractionFitterTask.cxx:123 HepFractionFitterTask.cxx:124 HepFractionFitterTask.cxx:125 HepFractionFitterTask.cxx:126 HepFractionFitterTask.cxx:127 HepFractionFitterTask.cxx:128 HepFractionFitterTask.cxx:129 HepFractionFitterTask.cxx:130 HepFractionFitterTask.cxx:131 HepFractionFitterTask.cxx:132 HepFractionFitterTask.cxx:133 HepFractionFitterTask.cxx:134 HepFractionFitterTask.cxx:135 HepFractionFitterTask.cxx:136 HepFractionFitterTask.cxx:137 HepFractionFitterTask.cxx:138 HepFractionFitterTask.cxx:139 HepFractionFitterTask.cxx:140 HepFractionFitterTask.cxx:141 HepFractionFitterTask.cxx:142 HepFractionFitterTask.cxx:143 HepFractionFitterTask.cxx:144 HepFractionFitterTask.cxx:145 HepFractionFitterTask.cxx:146 HepFractionFitterTask.cxx:147 HepFractionFitterTask.cxx:148 HepFractionFitterTask.cxx:149 HepFractionFitterTask.cxx:150 HepFractionFitterTask.cxx:151 HepFractionFitterTask.cxx:152 HepFractionFitterTask.cxx:153 HepFractionFitterTask.cxx:154 HepFractionFitterTask.cxx:155 HepFractionFitterTask.cxx:156 HepFractionFitterTask.cxx:157 HepFractionFitterTask.cxx:158