12 #ifndef ROOSTATS_RooStatsUtils
13 #define ROOSTATS_RooStatsUtils
40 struct RooStatsConfig {
41 bool useLikelihoodOffset{
false};
42 bool useEvalErrorWall{
true};
47 RooStatsConfig& GetGlobalRooStatsConfig();
50 inline Double_t PValueToSignificance(Double_t pvalue){
51 return ::ROOT::Math::normal_quantile_c(pvalue,1);
55 inline Double_t SignificanceToPValue(Double_t Z){
56 return ::ROOT::Math::normal_cdf_c(Z);
62 Double_t AsimovSignificance(Double_t s, Double_t b, Double_t sigma_b = 0.0 );
64 inline void SetParameters(
const RooArgSet* desiredVals, RooArgSet* paramsToChange){
65 *paramsToChange=*desiredVals ;
68 inline void RemoveConstantParameters(RooArgSet* set){
70 RooLinkedListIter it = set->iterator();
72 while ((myarg = (RooRealVar *)it.Next())) {
73 if(myarg->isConstant()) constSet.add(*myarg);
75 set->remove(constSet);
78 inline void RemoveConstantParameters(RooArgList& set){
80 RooLinkedListIter it = set.iterator();
82 while ((myarg = (RooRealVar *)it.Next())) {
83 if(myarg->isConstant()) constSet.add(*myarg);
88 inline bool SetAllConstant(
const RooAbsCollection &coll,
bool constant =
true) {
92 RooLinkedListIter iter = coll.iterator();
93 for (RooAbsArg *a = (RooAbsArg *) iter.Next(); a != 0; a = (RooAbsArg *) iter.Next()) {
94 RooRealVar *v =
dynamic_cast<RooRealVar *
>(a);
95 if (v && (v->isConstant() != constant)) {
97 v->setConstant(constant);
105 inline void RandomizeCollection(RooAbsCollection& set,
106 Bool_t randomizeConstants = kTRUE)
108 RooLinkedListIter it = set.iterator();
112 if (randomizeConstants) {
113 while ((var = (RooRealVar*)it.Next()) != NULL)
118 while ((var = (RooRealVar*)it.Next()) != NULL)
119 if (!var->isConstant() )
126 void FactorizePdf(
const RooArgSet &observables, RooAbsPdf &pdf, RooArgList &obsTerms, RooArgList &constraints);
128 void FactorizePdf(RooStats::ModelConfig &model, RooAbsPdf &pdf, RooArgList &obsTerms, RooArgList &constraints);
131 RooAbsPdf * MakeNuisancePdf(RooAbsPdf &pdf,
const RooArgSet &observables,
const char *name);
132 RooAbsPdf * MakeNuisancePdf(
const RooStats::ModelConfig &model,
const char *name);
134 RooAbsPdf * MakeUnconstrainedPdf(RooAbsPdf &pdf,
const RooArgSet &observables,
const char *name = NULL);
135 RooAbsPdf * MakeUnconstrainedPdf(
const RooStats::ModelConfig &model,
const char *name = NULL);
138 TTree* GetAsTTree(TString name, TString desc,
const RooDataSet& data);
141 void PrintListContent(
const RooArgList & l, std::ostream & os = std::cout);
145 void UseNLLOffset(
bool on);