106 TFile *outputFile=
new TFile(
"testUnfold7_histograms.root",
"recreate");
122 cout<<
"error="<<error<<
" from TDOMParser\n";
123 cout<<
"==============================================================\n";
124 cout<<
"Maybe the file testUnfold7binning.xml is missing?\n";
125 cout<<
"The content of the file is included in the comments section\n";
126 cout<<
"of this macro \"testUnfold7b.C\"\n";
127 cout<<
"==============================================================\n";
136 fineBinningRoot->
Write();
137 coarseBinningRoot->
Write();
139 if(fineBinningRoot) {
142 cout<<
"could not read 'detector' binning\n";
144 if(coarseBinningRoot) {
147 cout<<
"could not read 'generator' binning\n";
157 Float_t ptRec[3],ptGen[3],weight;
158 Int_t isTriggered,isSignal;
168 TFile *dataFile=
new TFile(
"testUnfold7_data.root");
169 TTree *dataTree=(TTree *) dataFile->Get(
"data");
172 cout<<
"could not read 'data' tree\n";
175 dataTree->ResetBranchAddresses();
176 dataTree->SetBranchAddress(
"ptrec",ptRec);
179 dataTree->SetBranchAddress(
"istriggered",&isTriggered);
181 dataTree->SetBranchAddress(
"ptgen",ptGen);
182 dataTree->SetBranchAddress(
"issignal",&isSignal);
183 dataTree->SetBranchStatus(
"*",1);
185 cout<<
"loop over data events\n";
187 #define VAR_REC (ptRec[2]) 188 #define VAR_GEN (ptGen[2]) 190 for(
Int_t ievent=0;ievent<dataTree->GetEntriesFast();ievent++) {
191 if(dataTree->GetEntry(ievent)<=0)
break;
196 histDataRecF->
Fill(binF);
197 histDataRecC->
Fill(binC);
199 histDataBgrF->
Fill(binF);
200 histDataBgrC->
Fill(binC);
206 histDataGen->
Fill(binGen);
220 (coarseBinning,fineBinning,
"histMcsigGenRecF");
222 (coarseBinning,coarseBinning,
"histMcsigGenRecC");
227 TFile *signalFile=
new TFile(
"testUnfold7_signal.root");
228 TTree *signalTree=(TTree *) signalFile->Get(
"signal");
231 cout<<
"could not read 'signal' tree\n";
234 signalTree->ResetBranchAddresses();
235 signalTree->SetBranchAddress(
"ptrec",&ptRec);
237 signalTree->SetBranchAddress(
"istriggered",&isTriggered);
238 signalTree->SetBranchAddress(
"ptgen",&ptGen);
239 signalTree->SetBranchAddress(
"weight",&weight);
240 signalTree->SetBranchStatus(
"*",1);
242 cout<<
"loop over MC signal events\n";
244 for(
Int_t ievent=0;ievent<signalTree->GetEntriesFast();ievent++) {
245 if(signalTree->GetEntry(ievent)<=0)
break;
253 histMcsigGenRecF->
Fill(binGen,binF,weight);
254 histMcsigGenRecC->
Fill(binGen,binC,weight);
255 histMcsigRecF->
Fill(binF,weight);
256 histMcsigRecC->
Fill(binC,weight);
257 histMcsigGen->
Fill(binGen,weight);
268 TFile *bgrFile=
new TFile(
"testUnfold7_background.root");
269 TTree *bgrTree=(TTree *) bgrFile->Get(
"background");
272 cout<<
"could not read 'background' tree\n";
275 bgrTree->ResetBranchAddresses();
276 bgrTree->SetBranchAddress(
"ptrec",&ptRec);
278 bgrTree->SetBranchAddress(
"istriggered",&isTriggered);
279 bgrTree->SetBranchAddress(
"weight",&weight);
280 bgrTree->SetBranchStatus(
"*",1);
282 cout<<
"loop over MC background events\n";
284 for(
Int_t ievent=0;ievent<bgrTree->GetEntriesFast();ievent++) {
285 if(bgrTree->GetEntry(ievent)<=0)
break;
292 histMcbgrRecF->
Fill(binF,weight);
293 histMcbgrRecC->
Fill(binC,weight);
virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0)
Write this object to the current directory.
virtual Int_t Fill(Double_t x)
Increment bin with abscissa X by 1.
TH1 * CreateHistogram(const char *histogramName, Bool_t originalAxisBinning=kFALSE, Int_t **binMap=0, const char *histogramTitle=0, const char *axisSteering=0) const
Create a THxx histogram capable to hold the bins of this binning node and its children.
virtual const char * DirName(const char *pathname)
Return the directory name in pathname.
void PrintStream(std::ostream &out, Int_t indent=0, int debug=0) const
Print some information about this binning tree.
TXMLDocument contains a pointer to an xmlDoc structure, after the parser returns a tree built during ...
static void SetDefaultSumw2(Bool_t sumw2=kTRUE)
When this static function is called with sumw2=kTRUE, all new histograms will automatically activate ...
virtual Int_t ParseFile(const char *filename)
Parse the XML file where filename is the XML file name.
Service class for 2-Dim histogram classes.
R__EXTERN TSystem * gSystem
static TUnfoldBinningXML * ImportXML(const TXMLDocument *document, const char *name)
Import a binning scheme from an XML file.
static TH2D * CreateHistogramOfMigrations(TUnfoldBinning const *xAxis, TUnfoldBinning const *yAxis, char const *histogramName, Bool_t originalXAxisBinning=kFALSE, Bool_t originalYAxisBinning=kFALSE, char const *histogramTitle=0)
Create a TH2D histogram capable to hold the bins of the two input binning schemes on the x and y axes...
Binning schemes for use with the unfolding algorithm TUnfoldDensity.
Int_t GetGlobalBinNumber(Double_t x) const
Locate a bin in a one-dimensional distribution.
virtual TXMLDocument * GetXMLDocument() const
Returns the TXMLDocument.
Int_t Fill(Double_t)
Invalid Fill method.