00001 /***************************************************************************** 00002 * Project: RooFit * 00003 * * 00004 * Copyright (c) 2000-2005, Regents of the University of California * 00005 * and Stanford University. All rights reserved. * 00006 * * 00007 * Redistribution and use in source and binary forms, * 00008 * with or without modification, are permitted according to the terms * 00009 * listed in LICENSE (http://roofit.sourceforge.net/license.txt) * 00010 *****************************************************************************/ 00011 00012 ////////////////////////////////////////////////////////////////////////////// 00013 // 00014 // BEGIN_HTML 00015 // Class RooNumCdf is an implementation of RooNumRunningInt specialized 00016 // to calculate cumulative distribution functions from p.d.f.s. The main 00017 // difference between RooNumCdf and RooNumRunningInt is that this class 00018 // imposes special end-point conditions on the interpolated histogram 00019 // that represents the output so that the value at the lower bound is 00020 // guaranteed to converge to exactly zero and that the value at the 00021 // upper bound is guaranteed to converge to exactly one, at all interpolation 00022 // orders. 00023 // END_HTML 00024 // 00025 00026 #include "Riostream.h" 00027 00028 #include "RooAbsPdf.h" 00029 #include "RooNumCdf.h" 00030 #include "RooAbsReal.h" 00031 #include "RooMsgService.h" 00032 #include "RooDataHist.h" 00033 #include "RooHistPdf.h" 00034 #include "RooRealVar.h" 00035 00036 ClassImp(RooNumCdf) 00037 ; 00038 00039 00040 00041 //_____________________________________________________________________________ 00042 RooNumCdf::RooNumCdf(const char *name, const char *title, RooAbsPdf& _pdf, RooRealVar& _x, const char* bname) : 00043 RooNumRunningInt(name,title,_pdf,_x,bname) 00044 { 00045 // Construct a cumulative distribution function from given input p.d.f over observable x. 00046 // using a numeric sampling algorithm. Use binning named 'bname' to control sampling 00047 // granularity 00048 } 00049 00050 00051 00052 //_____________________________________________________________________________ 00053 RooNumCdf::RooNumCdf(const RooNumCdf& other, const char* name) : 00054 RooNumRunningInt(other,name) 00055 { 00056 // Copy constructor 00057 } 00058 00059 00060 00061 //_____________________________________________________________________________ 00062 RooNumCdf::~RooNumCdf() 00063 { 00064 // Destructor 00065 } 00066 00067 00068 00069 //_____________________________________________________________________________ 00070 void RooNumCdf::fillCacheObject(RooAbsCachedReal::FuncCacheElem& cache) const 00071 { 00072 // Fill cache using running integral cache elements calculate() 00073 // method with specification of cdf-specific boundary conditions 00074 00075 RICacheElem& riCache = static_cast<RICacheElem&>(cache) ; 00076 riCache.calculate(kTRUE) ; 00077 } 00078 00079