13#ifndef ROOT_TUnfoldDensity 
   14#define ROOT_TUnfoldDensity 
   81      const char *axisSteering); 
 
   95           const char *regularisationDistribution=
nullptr,
 
   96           const char *regularisationAxisSteering=
"*[UOB]"); 
 
   98   ~ TUnfoldDensity(
void) 
override; 
 
  101                const char *distribution,
 
  102                const char *axisSteering); 
 
  122                         const char *distribution=
nullptr,
const char *projectionMode=
nullptr,
TGraph **lCurvePlot=
nullptr,
TSpline **logTauXPlot=
nullptr,
TSpline **logTauYPlot=
nullptr); 
 
  126                  const char *histogramTitle=
nullptr,
const char *distributionName=
nullptr,
 
  127                  const char *projectionMode=
nullptr,
Bool_t useAxisBinning=
kTRUE) 
const;  
 
  129                const char *histogramTitle=
nullptr,
const char *distributionName=
nullptr,
 
  130                const char *projectionMode=
nullptr,
Bool_t useAxisBinning=
kTRUE) 
const;      
 
  132                        const char *histogramTitle=
nullptr,
 
  133                        const char *distributionName=
nullptr,
 
  134                        const char *projectionMode=
nullptr,
Bool_t useAxisBinning=
kTRUE,
 
  137                      const char *histogramTitle=
nullptr,
 
  138                      const char *distributionName=
nullptr,
 
  139                      const char *projectionMode=
nullptr,
Bool_t useAxisBinning=
kTRUE,
Int_t includeError=3) 
const; 
 
  140   TH1 *
GetInput(
const char *histogramName,
const char *histogramTitle=
nullptr,
 
  141                 const char *distributionName=
nullptr,
 
  142                 const char *projectionMode=
nullptr,
Bool_t useAxisBinning=
kTRUE) 
const;     
 
  144                          const char *histogramName,
 
  145                          const char *histogramTitle=
nullptr,
 
  146                          const char *distributionName=
nullptr,
 
  147                          const char *projectionMode=
nullptr,
Bool_t useAxisBinning=
kTRUE); 
 
  149                                   const char *histogramName,
 
  150                                   const char *histogramTitle=
nullptr,
 
  151                                   const char *distributionName=
nullptr,
 
  152                                   const char *projectionMode=
nullptr,
Bool_t useAxisBinning=
kTRUE); 
 
  154                       const char *histogramTitle=
nullptr,
 
  155                       const char *distributionName=
nullptr,
 
  156                       const char *projectionMode=
nullptr,
Bool_t useAxisBinning=
kTRUE); 
 
  158                            const char *histogramTitle=
nullptr,
 
  159                            const char *distributionName=
nullptr,
 
  160                            const char *projectionMode=
nullptr,
Bool_t useAxisBinning=
kTRUE); 
 
  162                                      const char *histogramName,
 
  163                                      const char *histogramTitle=
nullptr,
 
  164                                      const char *distributionName=
nullptr,
 
  165                                      const char *projectionMode=
nullptr,
Bool_t useAxisBinning=
kTRUE); 
 
  167                        const char *histogramTitle=
nullptr,
 
  168                        const char *distributionName=
nullptr,
 
  169                        const char *projectionMode=
nullptr,
Bool_t useAxisBinning=
kTRUE); 
 
  171                        const char *histogramTitle=
nullptr,
 
  172                        const char *distributionName=
nullptr,
 
  173                        const char *projectionMode=
nullptr,
Bool_t useAxisBinning=
kTRUE); 
 
  174   TH1 *
GetRhoIstatbgr(
const char *histogramName,
const char *histogramTitle=
nullptr,
 
  175                       const char *distributionName=
nullptr,
 
  176                       const char *projectionMode=
nullptr,
Bool_t useAxisBinning=
kTRUE,
 
  177                       TH2 **ematInv=
nullptr);      
 
  178   TH1 *
GetRhoItotal(
const char *histogramName,
const char *histogramTitle=
nullptr,
 
  179                     const char *distributionName=
nullptr,
 
  180                     const char *projectionMode=
nullptr,
Bool_t useAxisBinning=
kTRUE,
 
  181                     TH2 **ematInv=
nullptr);      
 
  183                      const char *histogramTitle=
nullptr,
 
  184                      const char *distributionName=
nullptr,
 
  185                      const char *projectionMode=
nullptr,
Bool_t useAxisBinning=
kTRUE);     
 
  186   TH2 *
GetL(
const char *histogramName,
 
  187             const char *histogramTitle=
nullptr,
 
  189   TH1 *
GetLxMinusBias(
const char *histogramName,
const char *histogramTitle=
nullptr); 
 
  192                           const char *histogramTitle=
nullptr,
Bool_t useAxisBinning=
kTRUE) 
const; 
 
#define ClassDefOverride(name, id)
 
Option_t Option_t TPoint TPoint const char mode
 
#define TUnfold_CLASS_VERSION
 
A TGraph is an object made of two arrays X and Y with npoints each.
 
TH1 is the base class of all histogram classes in ROOT.
 
Service class for 2-D histogram classes.
 
Base class for spline implementation containing the Draw/Paint methods.
 
Binning schemes for use with the unfolding algorithm TUnfoldDensity.
 
An algorithm to unfold distributions from detector to truth level.
 
void RegularizeOneDistribution(const TUnfoldBinning *binning, ERegMode regmode, EDensityMode densityMode, const char *axisSteering)
Regularize the distribution of the given node.
 
EScanTauMode
scan mode for correlation scan
 
@ kEScanTauRhoAvg
average global correlation coefficient (from TUnfold::GetRhoI())
 
@ kEScanTauRhoMax
maximum global correlation coefficient (from TUnfold::GetRhoI())
 
@ kEScanTauRhoSquareAvgSys
average global correlation coefficient squared (from TUnfoldSys::GetRhoItotal())
 
@ kEScanTauRhoMaxSys
maximum global correlation coefficient (from TUnfoldSys::GetRhoItotal())
 
@ kEScanTauRhoSquareAvg
average global correlation coefficient squared (from TUnfold::GetRhoI())
 
@ kEScanTauRhoAvgSys
average global correlation coefficient (from TUnfoldSys::GetRhoItotal())
 
TH1 * GetRhoItotal(const char *histogramName, const char *histogramTitle=nullptr, const char *distributionName=nullptr, const char *projectionMode=nullptr, Bool_t useAxisBinning=kTRUE, TH2 **ematInv=nullptr)
Retrieve global correlation coefficients including all uncertainty sources.
 
TH2 * GetEmatrixSysUncorr(const char *histogramName, const char *histogramTitle=nullptr, const char *distributionName=nullptr, const char *projectionMode=nullptr, Bool_t useAxisBinning=kTRUE)
Retrieve covariance contribution from uncorrelated (statistical) uncertainties of the response matrix...
 
Double_t GetDensityFactor(EDensityMode densityMode, Int_t iBin) const
Density correction factor for a given bin.
 
TH2 * GetRhoIJtotal(const char *histogramName, const char *histogramTitle=nullptr, const char *distributionName=nullptr, const char *projectionMode=nullptr, Bool_t useAxisBinning=kTRUE)
Retrieve correlation coefficients, including all uncertainties.
 
TString GetOutputBinName(Int_t iBinX) const override
Get bin name of an output bin.
 
const TUnfoldBinning * fConstOutputBins
binning scheme for the output (truth level)
 
const TUnfoldBinning * GetOutputBinning(const char *distributionName=nullptr) const
Locate a binning node for the unfolded (truth level) quantities.
 
TUnfoldBinning * GetLBinning(void) const
return binning scheme for regularisation conditions (matrix L)
 
TH2 * GetEmatrixInput(const char *histogramName, const char *histogramTitle=nullptr, const char *distributionName=nullptr, const char *projectionMode=nullptr, Bool_t useAxisBinning=kTRUE)
Get covariance contribution from the input uncertainties (data statistical uncertainties).
 
TUnfoldBinning * fRegularisationConditions
binning scheme for the regularisation conditions
 
TH2 * GetL(const char *histogramName, const char *histogramTitle=nullptr, Bool_t useAxisBinning=kTRUE)
Access matrix of regularisation conditions in a new histogram.
 
TUnfoldBinning * fOwnedOutputBins
pointer to output binning scheme if owned by this class
 
TH2 * GetEmatrixTotal(const char *histogramName, const char *histogramTitle=nullptr, const char *distributionName=nullptr, const char *projectionMode=nullptr, Bool_t useAxisBinning=kTRUE)
Get covariance matrix including all contributions.
 
TUnfoldBinning * fOwnedInputBins
pointer to input binning scheme if owned by this class
 
TH1 * GetDeltaSysBackgroundScale(const char *bgrSource, const char *histogramName, const char *histogramTitle=nullptr, const char *distributionName=nullptr, const char *projectionMode=nullptr, Bool_t useAxisBinning=kTRUE)
Retrieve systematic 1-sigma shift corresponding to a background scale uncertainty.
 
void RegularizeDistribution(ERegMode regmode, EDensityMode densityMode, const char *distribution, const char *axisSteering)
Set up regularisation conditions.
 
TH2 * GetProbabilityMatrix(const char *histogramName, const char *histogramTitle=nullptr, Bool_t useAxisBinning=kTRUE) const
Get matrix of probabilities in a new histogram.
 
TH1 * GetOutput(const char *histogramName, const char *histogramTitle=nullptr, const char *distributionName=nullptr, const char *projectionMode=nullptr, Bool_t useAxisBinning=kTRUE) const
retrieve unfolding result as a new histogram
 
TH1 * GetFoldedOutput(const char *histogramName, const char *histogramTitle=nullptr, const char *distributionName=nullptr, const char *projectionMode=nullptr, Bool_t useAxisBinning=kTRUE, Bool_t addBgr=kFALSE) const
Retrieve unfolding result folded back as a new histogram.
 
const TUnfoldBinning * GetInputBinning(const char *distributionName=nullptr) const
Locate a binning node for the input (measured) quantities.
 
TH1 * GetInput(const char *histogramName, const char *histogramTitle=nullptr, const char *distributionName=nullptr, const char *projectionMode=nullptr, Bool_t useAxisBinning=kTRUE) const
Retrieve input distribution in a new histogram.
 
TH1 * GetRhoIstatbgr(const char *histogramName, const char *histogramTitle=nullptr, const char *distributionName=nullptr, const char *projectionMode=nullptr, Bool_t useAxisBinning=kTRUE, TH2 **ematInv=nullptr)
Retrieve global correlation coefficients including input (statistical) and background uncertainties.
 
TH1 * GetDeltaSysSource(const char *source, const char *histogramName, const char *histogramTitle=nullptr, const char *distributionName=nullptr, const char *projectionMode=nullptr, Bool_t useAxisBinning=kTRUE)
Retrieve a correlated systematic 1-sigma shift.
 
TH1 * GetDeltaSysTau(const char *histogramName, const char *histogramTitle=nullptr, const char *distributionName=nullptr, const char *projectionMode=nullptr, Bool_t useAxisBinning=kTRUE)
Retrieve 1-sigma shift corresponding to the previously specified uncertainty on tau.
 
TH2 * GetEmatrixSysBackgroundUncorr(const char *bgrSource, const char *histogramName, const char *histogramTitle=nullptr, const char *distributionName=nullptr, const char *projectionMode=nullptr, Bool_t useAxisBinning=kTRUE)
Retrieve covariance contribution from uncorrelated background uncertainties.
 
const TUnfoldBinning * fConstInputBins
binning scheme for the input (detector level)
 
TH1 * GetLxMinusBias(const char *histogramName, const char *histogramTitle=nullptr)
Get regularisation conditions multiplied by result vector minus bias L(x-biasScale*biasVector).
 
void RegularizeDistributionRecursive(const TUnfoldBinning *binning, ERegMode regmode, EDensityMode densityMode, const char *distribution, const char *axisSteering)
Recursively add regularisation conditions for this node and its children.
 
TUnfoldDensity(void)
Only for use by root streamer or derived classes.
 
TH1 * GetBias(const char *histogramName, const char *histogramTitle=nullptr, const char *distributionName=nullptr, const char *projectionMode=nullptr, Bool_t useAxisBinning=kTRUE) const
Retrieve bias vector as a new histogram.
 
virtual Int_t ScanTau(Int_t nPoint, Double_t tauMin, Double_t tauMax, TSpline **scanResult, Int_t mode=kEScanTauRhoAvg, const char *distribution=nullptr, const char *projectionMode=nullptr, TGraph **lCurvePlot=nullptr, TSpline **logTauXPlot=nullptr, TSpline **logTauYPlot=nullptr)
Scan a function wrt tau and determine the minimum.
 
virtual Double_t GetScanVariable(Int_t mode, const char *distribution, const char *projectionMode)
Calculate the function for ScanTau().
 
EDensityMode
choice of regularisation scale factors to cinstruct the matrix L
 
@ kDensityModeUser
scale factors from user function in TUnfoldBinning
 
@ kDensityModeNone
no scale factors, matrix L is similar to unity matrix
 
@ kDensityModeBinWidthAndUser
scale factors from multidimensional bin width and user function
 
@ kDensityModeBinWidth
scale factors from multidimensional bin width
 
TH1 * GetBackground(const char *histogramName, const char *bgrSource=nullptr, const char *histogramTitle=nullptr, const char *distributionName=nullptr, const char *projectionMode=nullptr, Bool_t useAxisBinning=kTRUE, Int_t includeError=3) const
Retrieve a background source in a new histogram.
 
An algorithm to unfold distributions from detector to truth level, with background subtraction and pr...
 
EConstraint
type of extra constraint
 
@ kEConstraintArea
enforce preservation of the area
 
ERegMode
choice of regularisation scheme
 
@ kRegModeCurvature
regularize the 2nd derivative of the output distribution
 
EHistMap
arrangement of axes for the response matrix (TH2 histogram)