#include <rarKeys.hh>
Inheritance diagram for rarKeys:

Public Member Functions | |
| rarKeys () | |
| Trivial ctor. | |
| rarKeys (const char *configFile, const char *configSec, const char *configStr, rarDatasets *theDatasets, RooDataSet *theData, const char *name, const char *title) | |
| Default ctor. | |
| virtual | ~rarKeys () |
| void | setFitData (RooDataSet *theData=0) |
| Load Keys dataset. | |
Protected Member Functions | |
| void | init () |
| Initial function called by ctor. | |
Protected Attributes | |
| RooAbsReal * | _x |
| Default obs. | |
| RooAbsReal * | _y |
| Default obs. | |
| Double_t | _rho |
| Width scale factor. | |
| TString | _keysOption |
| Options. | |
Private Member Functions | |
| rarKeys (const rarKeys &) | |
| ClassDef (rarKeys, 0) | |
Build RooKeysPdf / Roo2DKeysPdf Pdf.
/// configStr = Keys ["<Optional Title>"] /// configStr = 2DKeys ["<Optional Title>"] /// x = AbsReal Def /// y = AbsReal Def /// rho = Double_t /// keysOption = Options
x and y are the default observables (y for 2D only). rho is width scale factor. keysOption is 1/2D Keys opitons. For 1D, the options can be any enum value of RooKeysPdf::Mirror, for 2D, the options can be any valid characters of Roo2DKeysPdf::setOptions. All the AbsReal parameters can be RooRealVar or RooFormulaVar.
Definition at line 45 of file rarKeys.hh.
| rarKeys::rarKeys | ( | ) |
Trivial ctor.
Usually the objects should be created using other ctors.
Definition at line 41 of file rarKeys.cc.
References init().
00042 : rarBasePdf(), 00043 _x(0), _y(0), _rho(1.), _keysOption("") 00044 { 00045 init(); 00046 }
| rarKeys::rarKeys | ( | const char * | configFile, | |
| const char * | configSec, | |||
| const char * | configStr, | |||
| rarDatasets * | theDatasets, | |||
| RooDataSet * | theData, | |||
| const char * | name, | |||
| const char * | title | |||
| ) |
Default ctor.
| configFile | The config file | |
| configSec | The config section | |
| configStr | The config string | |
| theDatasets | Available datasets | |
| theData | Default dataset for this PDF | |
| name | The name | |
| title | The title |
Definition at line 60 of file rarKeys.cc.
References init().
00064 : rarBasePdf(configFile, configSec, configStr, 00065 theDatasets, theData, name, title), 00066 _x(0), _y(0), _rho(1.), _keysOption("") 00067 { 00068 init(); 00069 }
| rarKeys::~rarKeys | ( | ) | [virtual] |
| rarKeys::rarKeys | ( | const rarKeys & | ) | [private] |
| rarKeys::ClassDef | ( | rarKeys | , | |
| 0 | ||||
| ) | [private] |
| void rarKeys::init | ( | ) | [protected, virtual] |
Initial function called by ctor.
init is called by the ctor.
There is no need to do pdfFit, so the first step is to set _pdfFit to false. It reads in _rho and _keysOption, and finally it builds RooKeysPdf/Roo2DKeysPdf PDF with _pdfType being Keys/2DKeys, respectively.
Reimplemented from rarBasePdf.
Definition at line 84 of file rarKeys.cc.
References _keysOption, rarBasePdf::_pdfType, _rho, rarBasePdf::_theData, rarBasePdf::_thePdf, _x, _y, rarConfig::createAbsReal(), rarBasePdf::getVarSec(), rarConfig::readConfStr(), and rarBasePdf::setControlBits().
Referenced by rarKeys().
00085 { 00086 cout<<"init of rarKeys for "<<GetName()<<":"<<endl; 00087 00088 // no need for pdf fit 00089 setControlBits("noPdfFit"); 00090 00091 // get its obs 00092 _x=createAbsReal("x", "observable"); assert(_x); 00093 if ("2DKeys"==_pdfType) { 00094 _y=createAbsReal("y", "observable"); assert(_y); 00095 } 00096 // it should always have fitData 00097 if (!_theData) { 00098 cout<<" No dataset for Keys Pdf"<<endl; 00099 exit(-1); 00100 } 00101 // read in options 00102 _rho=atof(readConfStr("rho", "1.", getVarSec())); 00103 _keysOption=readConfStr("keysOption", "", getVarSec()); 00104 00105 // create pdf 00106 if ("2DKeys"==_pdfType) { 00107 _thePdf=new Roo2DKeysPdf(Form("the_%s", GetName()),_pdfType+" "+GetTitle(), 00108 *_x, *_y, *_theData, _keysOption, _rho); 00109 } else { // default 00110 // parse the option 00111 RooKeysPdf::Mirror mirror=RooKeysPdf::NoMirror; 00112 if ("NoMirror"==_keysOption) mirror=RooKeysPdf::NoMirror; 00113 else if ("MirrorLeft"==_keysOption) mirror=RooKeysPdf::MirrorLeft; 00114 else if ("MirrorRight"==_keysOption) mirror=RooKeysPdf::MirrorRight; 00115 else if ("MirrorBoth"==_keysOption) mirror=RooKeysPdf::MirrorBoth; 00116 else if ("MirrorAsymLeft"==_keysOption) mirror=RooKeysPdf::MirrorAsymLeft; 00117 else if ("MirrorAsymLeftRight"==_keysOption) 00118 mirror=RooKeysPdf::MirrorAsymLeftRight; 00119 else if ("MirrorAsymRight"==_keysOption)mirror=RooKeysPdf::MirrorAsymRight; 00120 else if ("MirrorLeftAsymRight"==_keysOption) 00121 mirror=RooKeysPdf::MirrorLeftAsymRight; 00122 else if ("MirrorAsymBoth"==_keysOption) mirror=RooKeysPdf::MirrorAsymBoth; 00123 else mirror=RooKeysPdf::NoMirror; 00124 _thePdf=new RooKeysPdf(Form("the_%s", GetName()), _pdfType+" "+GetTitle(), 00125 *_x, *_theData, mirror, _rho); 00126 } 00127 }
| void rarKeys::setFitData | ( | RooDataSet * | theData = 0 |
) | [virtual] |
Load Keys dataset.
| theData | The dataset to be loaded |
theData as Keys dataset for pdf modeling. There is no need to do pdfFit, instead, 1/2D Keys PDFs call their LoadDataSet/loadDataSet functions to load initial values (datasets).
Reimplemented from rarBasePdf.
Definition at line 137 of file rarKeys.cc.
References _keysOption, rarBasePdf::_pdfType, rarBasePdf::_theData, rarBasePdf::_thePdf, and rarBasePdf::setFitData().
00138 { 00139 RooDataSet *oldData=_theData; 00140 // set dataset 00141 rarBasePdf::setFitData(theData); 00142 if (_theData==oldData) return; 00143 // recalculate keys pdf 00144 if ("Keys"==_pdfType) ((RooKeysPdf*)_thePdf)->LoadDataSet(*_theData); 00145 if ("2DKeys"==_pdfType) 00146 ((Roo2DKeysPdf*)_thePdf)->loadDataSet(*_theData, _keysOption); 00147 }
TString rarKeys::_keysOption [protected] |
Double_t rarKeys::_rho [protected] |
RooAbsReal* rarKeys::_x [protected] |
RooAbsReal* rarKeys::_y [protected] |
1.4.7