Version 17.0 example for multi-dimensional unfolding.
Processing /mnt/vdb/lsf/workspace/root-makedoc/rootspi/rdoc/src/master/tutorials/math/testUnfold5b.C...
TUnfoldBinning
"detector" has 360
bins [1,361] nTH1x=360
distribution: 360 bins
"pt" nbin=8 plus overflow
"eta" nbin=10
"discriminator" nbin=4
distribution: 25 bins
"ptgen" nbin=3 plus underflow plus overflow
"etagen" nbin=3 plus underflow plus overflow
distribution: 90 bins
"ptrec" nbin=8 plus overflow
"etarec" nbin=10
#include <iostream>
#include <fstream>
using namespace std;
void testUnfold5b()
{
TFile *binningSchemes=new TFile("testUnfold5_binning.root","recreate");
#define NBIN_PT_FINE 8
#define NBIN_ETA_FINE 10
#define NBIN_DISCR 4
#define NBIN_PT_COARSE 3
#define NBIN_ETA_COARSE 3
{3.5,4.0,4.5,5.0,6.0,7.0,8.0,10.0,13.0};
Double_t ptBinsCoarse[NBIN_PT_COARSE+1]=
{ 4.0, 5.0, 7.0, 10.0};
{-3.,-2.5,-2.0,-1.,-0.5,0.0,0.5,1.,2.,2.5,3.};
Double_t etaBinsCoarse[NBIN_ETA_COARSE+1]=
{ -2.0, -0.5, 0.5, 2. };
Double_t discrBins[NBIN_DISCR+1]={0.,0.15,0.5,0.85,1.0};
detectorBinning->
AddBinning(
"detectordistribution");
detectorDistribution->
AddAxis(
"pt",NBIN_PT_FINE,ptBinsFine,
false,
true
);
detectorDistribution->
AddAxis(
"eta",NBIN_ETA_FINE,etaBinsFine,
false,
false
);
detectorDistribution->
AddAxis(
"discriminator",NBIN_DISCR,discrBins,
false,
false
);
signalBinning->
AddAxis(
"ptgen",NBIN_PT_COARSE,ptBinsCoarse,
true,
true
);
signalBinning->
AddAxis(
"etagen",NBIN_ETA_COARSE,etaBinsCoarse,
true,
true
);
bgrBinning->
AddAxis(
"ptrec",NBIN_PT_FINE,ptBinsFine,
false,
true
);
bgrBinning->
AddAxis(
"etarec",NBIN_ETA_FINE,etaBinsFine,
false,
false
);
detectorBinning->
Write();
generatorBinning->
Write();
delete binningSchemes;
}