77 TFile *binningSchemes=
new TFile(
"testUnfold5_binning.root",
"recreate");
80 #define NBIN_PT_FINE 8
81 #define NBIN_ETA_FINE 10
85 #define NBIN_PT_COARSE 3
86 #define NBIN_ETA_COARSE 3
89 Double_t ptBinsFine[NBIN_PT_FINE+1]=
90 {3.5,4.0,4.5,5.0,6.0,7.0,8.0,10.0,13.0};
91 Double_t ptBinsCoarse[NBIN_PT_COARSE+1]=
92 { 4.0, 5.0, 7.0, 10.0};
94 Double_t etaBinsFine[NBIN_ETA_FINE+1]=
95 {-3.,-2.5,-2.0,-1.,-0.5,0.0,0.5,1.,2.,2.5,3.};
96 Double_t etaBinsCoarse[NBIN_ETA_COARSE+1]=
97 { -2.0, -0.5, 0.5, 2. };
100 Double_t discrBins[NBIN_DISCR+1]={0.,0.15,0.5,0.85,1.0};
105 TUnfoldBinning *detectorBinning=
new TUnfoldBinning(
"detector");
107 TUnfoldBinning *detectorDistribution=
108 detectorBinning->AddBinning(
"detectordistribution");
109 detectorDistribution->AddAxis(
"pt",NBIN_PT_FINE,ptBinsFine,
113 detectorDistribution->AddAxis(
"eta",NBIN_ETA_FINE,etaBinsFine,
117 detectorDistribution->AddAxis(
"discriminator",NBIN_DISCR,discrBins,
127 TUnfoldBinning *generatorBinning=
new TUnfoldBinning(
"generator");
132 TUnfoldBinning *signalBinning = generatorBinning->AddBinning(
"signal");
133 signalBinning->AddAxis(
"ptgen",NBIN_PT_COARSE,ptBinsCoarse,
137 signalBinning->AddAxis(
"etagen",NBIN_ETA_COARSE,etaBinsCoarse,
144 TF2 *userFunc=
new TF2(
"userfunc",
"1./x+0.2*y^2",ptBinsCoarse[0],
145 ptBinsCoarse[NBIN_PT_COARSE],
146 etaBinsCoarse[0],etaBinsCoarse[NBIN_ETA_COARSE]);
147 signalBinning->SetBinFactorFunction(1.0,userFunc);
161 TUnfoldBinning *bgrBinning = generatorBinning->AddBinning(
"background");
162 bgrBinning->AddAxis(
"ptrec",NBIN_PT_FINE,ptBinsFine,
166 bgrBinning->AddAxis(
"etarec",NBIN_ETA_FINE,etaBinsFine,
170 generatorBinning->PrintStream(cout);
172 detectorBinning->Write();
173 generatorBinning->Write();
175 ofstream xmlOut(
"testUnfold5binning.xml");
176 TUnfoldBinningXML::ExportXML(*detectorBinning,xmlOut,kTRUE,kFALSE);
177 TUnfoldBinningXML::ExportXML(*generatorBinning,xmlOut,kFALSE,kTRUE);
178 TUnfoldBinningXML::WriteDTD();
181 delete binningSchemes;