76#ifndef READ_BINNING_CINT
95 TFile *outputFile=
new TFile(
"testUnfold5_histograms.root",
"recreate");
101#ifdef READ_BINNING_CINT
102 TFile *binningSchemes=
new TFile(
"testUnfold5_binning.root");
110#ifndef READ_BINNING_CINT
113 if(error) cout<<
"error="<<error<<
" from TDOMParser\n";
120 binningSchemes->
GetObject(
"detector",detectorBinning);
121 binningSchemes->
GetObject(
"generator",generatorBinning);
123 delete binningSchemes;
125 detectorBinning->
Write();
126 generatorBinning->
Write();
128 if(detectorBinning) {
131 cout<<
"could not read 'detector' binning\n";
133 if(generatorBinning) {
136 cout<<
"could not read 'generator' binning\n";
141 detectorBinning->
FindNode(
"detectordistribution");
144 generatorBinning->
FindNode(
"signal");
147 generatorBinning->
FindNode(
"background");
154 Float_t etaRec,ptRec,discr,etaGen,ptGen;
155 Int_t istriggered,issignal;
162 TFile *dataFile=
new TFile(
"testUnfold5_data.root");
166 cout<<
"could not read 'data' tree\n";
182 cout<<
"loop over data events\n";
185 if(dataTree->
GetEntry(ievent)<=0)
break;
190 histDataReco->
Fill(binNumber);
196 histDataTruth->
Fill(binNumber);
200 histDataTruth->
Fill(binNumber);
214 (generatorBinning,detectorBinning,
"histMCGenRec");
216 TFile *signalFile=
new TFile(
"testUnfold5_signal.root");
220 cout<<
"could not read 'signal' tree\n";
232 cout<<
"loop over MC signal events\n";
235 if(signalTree->
GetEntry(ievent)<=0)
break;
246 histMCGenRec->
Fill(genBin,recBin);
252 TFile *bgrFile=
new TFile(
"testUnfold5_background.root");
256 cout<<
"could not read 'background' tree\n";
266 cout<<
"loop over MC background events\n";
269 if(bgrTree->
GetEntry(ievent)<=0)
break;
278 (ptRec,etaRec,discr);
279 histMCGenRec->
Fill(genBin,recBin);
virtual TXMLDocument * GetXMLDocument() const
Returns the TXMLDocument.
Int_t ParseFile(const char *filename) override
Parse the XML file where filename is the XML file name.
Bool_t cd() override
Change current directory to "this" directory.
TObject * Get(const char *namecycle) override
Return pointer to object identified by namecycle.
void GetObject(const char *namecycle, T *&ptr)
Get an object with proper type checking.
A ROOT file is an on-disk file, usually with extension .root, that stores objects in a file-system-li...
Int_t Write(const char *name=nullptr, Int_t opt=0, Int_t bufsiz=0) override
Write memory objects to this file.
TH1 is the base class of all histogram classes in ROOT.
virtual Int_t Fill(Double_t x)
Increment bin with abscissa X by 1.
static void SetDefaultSumw2(Bool_t sumw2=kTRUE)
When this static function is called with sumw2=kTRUE, all new histograms will automatically activate ...
Service class for 2-D histogram classes.
Int_t Fill(Double_t) override
Invalid Fill method.
virtual Int_t Write(const char *name=nullptr, Int_t option=0, Int_t bufsize=0)
Write this object to the current directory.
A TTree represents a columnar dataset.
virtual void SetBranchStatus(const char *bname, bool status=true, UInt_t *found=nullptr)
Set branch status to Process or DoNotProcess.
virtual Int_t GetEntry(Long64_t entry, Int_t getall=0)
Read all branches of entry and return total number of bytes read.
virtual Int_t SetBranchAddress(const char *bname, void *add, TBranch **ptr=nullptr)
Change branch address, dealing with clone trees properly.
virtual Long64_t GetEntriesFast() const
Return a number greater or equal to the total number of entries in the dataset.
virtual void ResetBranchAddresses()
Tell all of our branches to drop their current objects and allocate new ones.
static TUnfoldBinningXML * ImportXML(const TXMLDocument *document, const char *name)
import a binning scheme from an XML file
Binning schemes for use with the unfolding algorithm TUnfoldDensity.
void PrintStream(std::ostream &out, Int_t indent=0, int debug=0) const
print some information about this binning tree
TH1 * CreateHistogram(const char *histogramName, Bool_t originalAxisBinning=kFALSE, Int_t **binMap=nullptr, const char *histogramTitle=nullptr, const char *axisSteering=nullptr) const
create a THxx histogram capable to hold the bins of this binning node and its children
Int_t GetGlobalBinNumber(Double_t x) const
locate a bin in a one-dimensional distribution
static TH2D * CreateHistogramOfMigrations(TUnfoldBinning const *xAxis, TUnfoldBinning const *yAxis, char const *histogramName, Bool_t originalXAxisBinning=kFALSE, Bool_t originalYAxisBinning=kFALSE, char const *histogramTitle=nullptr)
create a TH2D histogram capable to hold the bins of the two input binning schemes on the x and y axes...
TUnfoldBinning const * FindNode(char const *name) const
traverse the tree and return the first node which matches the given name
TXMLDocument contains a pointer to an xmlDoc structure, after the parser returns a tree built during ...