Docs | All | Real | Category | PDF | DataSet | Plot | Container | Misc | Aux | User |
Roo2DKeysPdfclass description - source file - inheritance tree (.pdf) class Roo2DKeysPdf : public RooAbsPdf
private: Data Membersprivate: Class DescriptionUse of the PDF: If you generate the PDF using the same domain as you fit to, for data populated near the edges, there will be no compensating 'feed through from the other side of the boundary'. There are the following options available to you to avoid or reduce edge effects in your fits: 1) enlarge your fit domain to avoid having significant data at the boundaries of your fit. 2) try using the 'm' option. This mirrors all gaussuans within the domain at the domain boundary. This will lead to an overestimate of the PDF near the boundary instead of the previously observed deficit. 3) define the fit domain [the RooRealVars in the ctor] to be smaller than the domain which the data set ctor used. This PDF is construced using the events in the data set, so if the boundaries are really giving you a problem and mirroring is not satisfactory solution to the problem, you have to take a hit in using a reduced data set to construct the PDF from. Recall that you will be fitting to data in a different domain [and hence dataset] so there are no inconsistencies as a result [unless you are really limited by MC stats and use the same MC to generate the PDF and test the PDF's systematics]. Roo2DKeysPdf(const char *name, const char *title, RooAbsReal& xx, RooAbsReal & yy, RooDataSet& data, TString options, Double_t widthScaleFactor): RooAbsPdf(name,title), x("x", "x dimension",this, xx), y("y", "y dimension",this, yy) Roo2DKeysPdf(const Roo2DKeysPdf & other, const char* name) : RooAbsPdf(other,name), x("x", this, other.x), y("y", this, other.y) ~Roo2DKeysPdf() Int_t loadDataSet(RooDataSet& data, TString options) void setOptions(TString options) void getOptions(void) const Int_t calculateBandWidth(Int_t kernel) Double_t evaluate() const use the cacheing intrinsic in RFC to bypass the grid and remove the grid and extrapolation approximation in the kernel estimation method implementation - cheers Wouter :) Double_t evaluateFull(Double_t thisX, Double_t thisY) const Double_t highBoundaryCorrection(Double_t thisVar, Double_t thisH, Double_t high, Double_t tVar) const Double_t lowBoundaryCorrection(Double_t thisVar, Double_t thisH, Double_t low, Double_t tVar) const Double_t g(Double_t varMean1, Double_t * _var1, Double_t sigma1, Double_t varMean2, Double_t * _var2, Double_t sigma2) const Int_t getBandWidthType() const Double_t getMean(const char * axis) const Double_t getSigma(const char * axis) const void writeToFile(char * outputFile, const char * name) const void writeHistToFile(char * outputFile, const char * histName) const void writeNTupleToFile(char * outputFile, const char * name) const void PrintInfo(ostream & out) const Inline FunctionsTObject* clone(const char* newname) const void setWidthScaleFactor(Double_t widthScaleFactor) TClass* Class() TClass* IsA() const void ShowMembers(TMemberInspector& insp, char* parent) void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)
|
Page maintained by Wouter Verkerke and David Kirkby |