virtual | ~AliUnfolding() |
void | TObject::AbstractMethod(const char* method) const |
virtual void | TObject::AppendPad(Option_t* option = "") |
virtual void | TObject::Browse(TBrowser* b) |
static TClass* | Class() |
virtual const char* | TObject::ClassName() const |
virtual void | TObject::Clear(Option_t* = "") |
virtual TObject* | TObject::Clone(const char* newname = "") const |
virtual Int_t | TObject::Compare(const TObject* obj) const |
virtual void | TObject::Copy(TObject& object) const |
virtual void | TObject::Delete(Option_t* option = "")MENU |
virtual Int_t | TObject::DistancetoPrimitive(Int_t px, Int_t py) |
virtual void | TObject::Draw(Option_t* option = "") |
virtual void | TObject::DrawClass() constMENU |
virtual TObject* | TObject::DrawClone(Option_t* option = "") constMENU |
static void | DrawResults(TH2* correlation, TH1* efficiency, TH1* measured, TH1* initialConditions, TCanvas* canvas = 0, Int_t reuseHists = kFALSE, TH1* unfolded = 0) |
virtual void | TObject::Dump() constMENU |
virtual void | TObject::Error(const char* method, const char* msgfmt) const |
virtual void | TObject::Execute(const char* method, const char* params, Int_t* error = 0) |
virtual void | TObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0) |
virtual void | TObject::ExecuteEvent(Int_t event, Int_t px, Int_t py) |
virtual void | TObject::Fatal(const char* method, const char* msgfmt) const |
virtual TObject* | TObject::FindObject(const char* name) const |
virtual TObject* | TObject::FindObject(const TObject* obj) const |
static Double_t | GetAvgResidual() |
static Double_t | GetChi2FromFit() |
virtual Option_t* | TObject::GetDrawOption() const |
static Long_t | TObject::GetDtorOnly() |
virtual const char* | TObject::GetIconName() const |
virtual const char* | TObject::GetName() const |
virtual char* | TObject::GetObjectInfo(Int_t px, Int_t py) const |
static Bool_t | TObject::GetObjectStat() |
virtual Option_t* | TObject::GetOption() const |
static TH1* | GetPenaltyPlot(Double_t* params) |
static TH1* | GetPenaltyPlot(TH1* corrected) |
static Double_t | GetPenaltyVal() |
static TH1* | GetResidualsPlot(Double_t* params) |
static TH1* | GetResidualsPlot(TH1* corrected) |
virtual const char* | TObject::GetTitle() const |
virtual UInt_t | TObject::GetUniqueID() const |
virtual Bool_t | TObject::HandleTimer(TTimer* timer) |
virtual ULong_t | TObject::Hash() const |
virtual void | TObject::Info(const char* method, const char* msgfmt) const |
virtual Bool_t | TObject::InheritsFrom(const char* classname) const |
virtual Bool_t | TObject::InheritsFrom(const TClass* cl) const |
virtual void | TObject::Inspect() constMENU |
static void | InteractiveUnfold(TH2* correlation, TH1* efficiency, TH1* measured, TH1* initialConditions) |
void | TObject::InvertBit(UInt_t f) |
virtual TClass* | IsA() const |
virtual Bool_t | TObject::IsEqual(const TObject* obj) const |
virtual Bool_t | TObject::IsFolder() const |
Bool_t | TObject::IsOnHeap() const |
virtual Bool_t | TObject::IsSortable() const |
Bool_t | TObject::IsZombie() const |
virtual void | TObject::ls(Option_t* option = "") const |
void | TObject::MayNotUse(const char* method) const |
virtual Bool_t | TObject::Notify() |
void | TObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const |
static void | TObject::operator delete(void* ptr) |
static void | TObject::operator delete(void* ptr, void* vp) |
static void | TObject::operator delete[](void* ptr) |
static void | TObject::operator delete[](void* ptr, void* vp) |
void* | TObject::operator new(size_t sz) |
void* | TObject::operator new(size_t sz, void* vp) |
void* | TObject::operator new[](size_t sz) |
void* | TObject::operator new[](size_t sz, void* vp) |
virtual void | TObject::Paint(Option_t* option = "") |
virtual void | TObject::Pop() |
virtual void | TObject::Print(Option_t* option = "") const |
virtual Int_t | TObject::Read(const char* name) |
virtual void | TObject::RecursiveRemove(TObject* obj) |
static void | RedrawInteractive() |
void | TObject::ResetBit(UInt_t f) |
virtual void | TObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU |
virtual void | TObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "") |
static void | SetBayesianParameters(Float_t smoothing, Int_t nIterations) |
void | TObject::SetBit(UInt_t f) |
void | TObject::SetBit(UInt_t f, Bool_t set) |
static void | SetChi2Regularization(AliUnfolding::RegularizationType type, Float_t weight) |
static void | SetCreateOverflowBin(Float_t overflowBinLimit) |
static void | SetDebug(Bool_t flag) |
virtual void | TObject::SetDrawOption(Option_t* option = "")MENU |
static void | TObject::SetDtorOnly(void* obj) |
static void | SetFunction(TF1* function) |
static void | SetMinimumInitialValue(Bool_t flag, Float_t value = -1) |
static void | SetMinuitMaxIterations(Int_t iter) |
static void | SetMinuitPrecision(Float_t pres) |
static void | SetMinuitStepSize(Float_t stepSize) |
static void | SetMinuitStrategy(Double_t strat) |
static void | SetNbins(Int_t nMeasured, Int_t nUnfolded) |
static void | SetNormalizeInput(Bool_t flag) |
static void | SetNotFoundEvents(Float_t notFoundEvents) |
static void | TObject::SetObjectStat(Bool_t stat) |
static void | SetPowern(Int_t n) |
static void | SetSkip0BinInChi2(Bool_t flag) |
static void | SetSkipBinsBegin(Int_t nBins) |
static void | SetUnfoldingMethod(AliUnfolding::MethodType methodType) |
virtual void | TObject::SetUniqueID(UInt_t uid) |
virtual void | ShowMembers(TMemberInspector&) |
virtual void | Streamer(TBuffer&) |
void | StreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b) |
virtual void | TObject::SysError(const char* method, const char* msgfmt) const |
Bool_t | TObject::TestBit(UInt_t f) const |
Int_t | TObject::TestBits(UInt_t f) const |
static Int_t | Unfold(TH2* correlation, TH1* efficiency, TH1* measured, TH1* initialConditions, TH1* result, Bool_t check = kFALSE) |
static Int_t | UnfoldGetBias(TH2* correlation, TH1* efficiency, TH1* measured, TH1* initialConditions, TH1* result) |
virtual void | TObject::UseCurrentStyle() |
virtual void | TObject::Warning(const char* method, const char* msgfmt) const |
virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) |
virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const |
AliUnfolding() | |
static void | Chi2Function(Int_t&, Double_t*, Double_t& chi2, Double_t* params, Int_t) |
static void | CreateOverflowBin(TH2* correlation, TH1* measured) |
virtual void | TObject::DoError(int level, const char* location, const char* fmt, va_list va) const |
static void | DrawGuess(Double_t* params, TVirtualPad* pfolded = 0, TVirtualPad* pres = 0, TVirtualPad* ppen = 0, Int_t reuseHists = kFALSE, TH1* unfolded = 0) |
static void | MakePads() |
void | TObject::MakeZombie() |
static Double_t | RegularizationEntropy(TVectorD& params) |
static Double_t | RegularizationLog(TVectorD& params) |
static Double_t | RegularizationLogLog(TVectorD& params) |
static Double_t | RegularizationPol0(TVectorD& params) |
static Double_t | RegularizationPol1(TVectorD& params) |
static Double_t | RegularizationPowerLaw(TVectorD& params) |
static Double_t | RegularizationRatio(TVectorD& params) |
static Double_t | RegularizationTotalCurvature(TVectorD& params) |
static void | SetStaticVariables(TH2* correlation, TH1* measured, TH1* efficiency) |
static void | TF1Function(Int_t& unused1, Double_t* unused2, Double_t& chi2, Double_t* params, Int_t unused3) |
static Int_t | UnfoldWithBayesian(TH2* correlation, TH1* aEfficiency, TH1* measured, TH1* initialConditions, TH1* aResult) |
static Int_t | UnfoldWithFunction(TH2* correlation, TH1* efficiency, TH1* measured, TH1*, TH1* aResult) |
static Int_t | UnfoldWithMinuit(TH2* correlation, TH1* efficiency, TH1* measured, TH1* initialConditions, TH1* result, Bool_t check) |
AliUnfolding(const AliUnfolding&) | |
AliUnfolding& | operator=(const AliUnfolding&) |
enum RegularizationType { | kNone | |
kPol0 | ||
kPol1 | ||
kLog | ||
kEntropy | ||
kCurvature | ||
kRatio | ||
kPowerLaw | ||
kLogLog | ||
}; | ||
enum MethodType { | kInvalid | |
kChi2Minimization | ||
kBayesian | ||
kFunction | ||
}; | ||
enum TObject::EStatusBits { | kCanDelete | |
kMustCleanup | ||
kObjInCanvas | ||
kIsReferenced | ||
kHasUUID | ||
kCannotPick | ||
kNoContextMenu | ||
kInvalidObject | ||
}; | ||
enum TObject::[unnamed] { | kIsOnHeap | |
kNotDeleted | ||
kZombie | ||
kBitMask | ||
kSingleKey | ||
kOverwrite | ||
kWriteDelete | ||
}; |
static Double_t | fAvgResidual | Sum residuals / nbins |
static Double_t | fChi2FromFit | Chi2 from fit at current iteration |
static Double_t | fPenaltyVal | Penalty value at current iteration (\beta * PU) |
static Int_t | fgBayesianIterations | number of iterations in Bayesian method |
static Float_t | fgBayesianSmoothing | smoothing parameter (0 = no smoothing) |
static Int_t | fgCallCount | call count to chi2 function |
static TCanvas* | fgCanvas | Canvas for interactive unfolder |
static TMatrixD* | fgCorrelationCovarianceMatrix | contains the errors of fCurrentESD |
static TMatrixD* | fgCorrelationMatrix | contains fCurrentCorrelation in matrix form |
static TMatrixD* | fgCorrelationMatrixSquared | contains squared fCurrentCorrelation in matrix form |
static TVectorD* | fgCurrentESDVector | contains fCurrentESD |
static Bool_t | fgDebug | debug flag |
static TVectorD* | fgEfficiency | efficiency |
static TVectorD* | fgEntropyAPriori | a-priori distribution for entropy regularization |
static TF1* | fgFitFunction | fit function |
static Int_t | fgMaxInput | bins in measured histogram |
static Int_t | fgMaxParams | bins in unfolded histogram = number of fit params |
static TAxis* | fgMeasuredAxis | bin widths and positions for measured |
static AliUnfolding::MethodType | fgMethodType | unfolding method to be used |
static Bool_t | fgMinimumInitialValue | set all initial values at least to the smallest value among the initial values |
static Float_t | fgMinimumInitialValueFix | use this as the minimum initial value instead of determining it automatically |
static Int_t | fgMinuitMaxIterations | maximum number of iterations used by minuit. default = 5000 |
static Float_t | fgMinuitPrecision | precision used by minuit. default = 1e-6 |
static Float_t | fgMinuitStepSize | (usually not needed to be changed) step size in minimization |
static Double_t | fgMinuitStrategy | minuit strategy: 0 (low), 1 (default), 2 (high) |
static Bool_t | fgNormalizeInput | normalize input spectrum |
static Float_t | fgNotFoundEvents | constraint on the total number of not found events sum(guess * (1/eff -1)) |
static Float_t | fgOverflowBinLimit | to fix fluctuations at high multiplicities, all entries above the limit are summarized in one bin |
static Int_t | fgPowern | power of power law for regularization with power law |
static Int_t | fgPrintChi2Details | debug for chi2 calc |
static AliUnfolding::RegularizationType | fgRegularizationType | regularization that is used during Chi2 method |
static Float_t | fgRegularizationWeight | factor for regularization term |
static Bool_t | fgSkipBin0InChi2 | skip bin 0 (= 0 measured) in chi2 function |
static Int_t | fgSkipBinsBegin | (optional) skip the given number of bins in the regularization |
static TAxis* | fgUnfoldedAxis | bin widths and positions for unfolded |
static TH2* | fghCorrelation | Response matrix for interactive unfolder |
static TH1* | fghEfficiency | Efficiency histo for interactive unfolder |
static TH1* | fghMeasured | Measured distribution for interactive unfolder |
static TH1* | fghUnfolded | Unfolding result for interactive unfolder |
Inheritance Chart: | ||||||||
|
enable the creation of a overflow bin that includes all statistics below the given limit
set number of bins in the input (measured) distribution and in the unfolded distribution
sets the parameters for chi2 minimization
sets the parameters for Bayesian unfolding
unfolds with unfolding method fgMethodType parameters: correlation: response matrix as measured vs. generated efficiency: (optional) efficiency that is applied on the unfolded spectrum, i.e. it has to be in unfolded variables. If 0 no efficiency is applied. measured: the measured spectrum initialConditions: (optional) initial conditions for the unfolding. if 0 the measured spectrum is used as initial conditions. result: target for the unfolded result check: depends on the unfolding method, see comments in specific functions return code: see UnfoldWithMinuit/UnfoldWithBayesian/UnfoldWithFunction
fill static variables needed for minuit fit
implementation of unfolding (internal function) unfolds <measured> using response from <correlation> and effiency <efficiency> output is in <result> <initialConditions> set the initial values for the minimization, if 0 <measured> is used negative values in initialConditions mean that the given parameter is fixed to the absolute of the value if <check> is true no unfolding is made, instead only the chi2 without unfolding is printed returns minuit status (0 = success), (-1 when check was set)
unfolds a spectrum using the Bayesian method
homogenity term for minuit fitting pure function of the parameters prefers constant function (pol0) Does not take into account efficiency
homogenity term for minuit fitting pure function of the parameters prefers linear function (pol1) Does not take into account efficiency
homogenity term for minuit fitting pure function of the parameters prefers logarithmic function (log) Does not take into account efficiency
homogenity term for minuit fitting pure function of the parameters minimizes the total curvature (from Unfolding Methods In High-Energy Physics Experiments, V. Blobel (Hamburg U.) . DESY 84/118, Dec 1984. 40pp. Does not take into account efficiency
homogenity term for minuit fitting pure function of the parameters calculates entropy, from The method of reduced cross-entropy (M. Schmelling 1993) Does not take into account efficiency
homogenity term for minuit fitting pure function of the parameters Does not take into account efficiency
homogenity term for minuit fitting pure function of the parameters prefers power law with n = -5 Does not take into account efficiency
homogenity term for minuit fitting pure function of the parameters prefers a powerlaw (linear on a log-log scale) The calculation takes into account the efficiencies
fit function for minuit does: (m - Ad)W(m - Ad) where m = measured, A correlation matrix, d = guess, W = covariance matrix
Draw histograms of - Result folded with response - Penalty factors - Chisquare contributions (Useful for debugging/sanity checks and the interactive unfolder) If a canvas pointer is given (canv != 0), it will be used for all plots; 3 pads are made if needed.
Function to do interactive unfolding A canvas is drawn with the unfolding result Change the histogram with your mouse and all histograms will be updated automatically
draws residuals of solution suggested by params and effect of regularization
MvL: THIS MUST BE INCORRECT. Need heff to calculate params from TH1 'corrected'
fill residuals histogram of solution suggested by params and effect of regularization
draws the penalty factors as function of multiplicity of the current selected regularization
draws the penalty factors as function of multiplicity of the current selected regularization
fit function for minuit uses the TF1 stored in fgFitFunction
correct spectrum using minuit chi2 method applying a functional fit
Finds the first bin where the content is below fgStatLimit and combines all values for this bin and larger bins The same limit is applied to the correlation
unfolds and assigns bias as errors with Eq. 19 of Cowan, "a survey of unfolding methods for particle physics" b_i = sum_j dmu_i/dn_j (nu_j - n_j) with nu_j as folded guess, n_j as data dmu_i/dn_j is found numerically by changing the bin content and re-unfolding return code: 0 (success) -1 (error: from Unfold(...) )
{ fgMinimumInitialValue = flag; fgMinimumInitialValueFix = value; }