/usr/include/root/RooStats/HistFactory/RooBarlowBeestonLL.h is in libroot-roofit-dev 5.34.00-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | /*****************************************************************************
* Project: RooFit *
* *
* Copyright (c) 2000-2005, Regents of the University of California *
* and Stanford University. All rights reserved. *
* *
* Redistribution and use in source and binary forms, *
* with or without modification, are permitted according to the terms *
* listed in LICENSE (http://roofit.sourceforge.net/license.txt) *
*****************************************************************************/
#ifndef ROOBARLOWBEESTONLL
#define ROOBARLOWBEESTONLL
#include "RooAbsReal.h"
#include "RooRealProxy.h"
#include "RooSetProxy.h"
#include <map>
#include <set>
#include <string>
class RooMinuit ;
namespace RooStats{
namespace HistFactory{
class RooBarlowBeestonLL : public RooAbsReal {
public:
RooBarlowBeestonLL() ;
RooBarlowBeestonLL(const char *name, const char *title, RooAbsReal& nll /*, const RooArgSet& observables*/);
RooBarlowBeestonLL(const RooBarlowBeestonLL& other, const char* name=0) ;
virtual TObject* clone(const char* newname) const { return new RooBarlowBeestonLL(*this,newname); }
virtual ~RooBarlowBeestonLL() ;
// A simple class to store the
// necessary objects for a
// single gamma in a single channel
class BarlowCache {
public:
BarlowCache() : hasStatUncert(false), gamma(NULL),
observables(NULL), bin_center(NULL),
tau(NULL), nom_pois_mean(NULL),
sumPdf(NULL), nData(-1) {}
bool hasStatUncert;
RooRealVar* gamma;
RooArgSet* observables;
RooArgSet* bin_center; // Snapshot
RooRealVar* tau;
RooAbsReal* nom_pois_mean;
RooAbsReal* sumPdf;
double nData;
double binVolume;
void SetBinCenter() const;
/*
// Restore original values and constant status of observables
TIterator* iter = obsSetOrig->createIterator() ;
RooRealVar* var ;
while((var=(RooRealVar*)iter->Next())) {
RooRealVar* target = (RooRealVar*) _obs.find(var->GetName()) ;
target->setVal(var->getVal()) ;
target->setConstant(var->isConstant()) ;
}
*/
};
void initializeBarlowCache();
RooArgSet* getParameters(const RooArgSet* depList, Bool_t stripDisconnected=kTRUE) const;
// void setAlwaysStartFromMin(Bool_t flag) { _startFromMin = flag ; }
// Bool_t alwaysStartFromMin() const { return _startFromMin ; }
//RooMinuit* minuit() { return _minuit ; }
RooAbsReal& nll() { return const_cast<RooAbsReal&>(_nll.arg()) ; }
// const RooArgSet& bestFitParams() const ;
// const RooArgSet& bestFitObs() const ;
// virtual RooAbsReal* createProfile(const RooArgSet& paramsOfInterest) ;
virtual Bool_t redirectServersHook(const RooAbsCollection& /*newServerList*/, Bool_t /*mustReplaceAll*/, Bool_t /*nameChange*/, Bool_t /*isRecursive*/) ;
// void clearAbsMin() { _absMinValid = kFALSE ; }
// Int_t numEval() const { return _neval ; }
void setPdf(RooAbsPdf* pdf) { _pdf = pdf; }
void setDataset(RooAbsData* data) { _data = data; }
//void FactorizePdf(const RooArgSet &observables, RooAbsPdf &pdf,
// RooArgList &obsTerms, RooArgList &constraints) const;
protected:
// void validateAbsMin() const ;
RooRealProxy _nll ; // Input -log(L) function
/*
RooSetProxy _obs ; // Parameters of profile likelihood
RooSetProxy _par ; // Marginialized parameters of likelihood
*/
RooAbsPdf* _pdf;
RooAbsData* _data;
mutable std::map< std::string, std::vector< BarlowCache > > _barlowCache;
mutable std::set< std::string > _statUncertParams;
// Bool_t _startFromMin ; // Always start minimization for global minimum?
/*
TIterator* _piter ; //! Iterator over profile likelihood parameters to be minimized
TIterator* _oiter ; //! Iterator of profile likelihood output parameter(s)
*/
// mutable RooMinuit* _minuit ; //! Internal minuit instance
// mutable Bool_t _absMinValid ; // flag if absmin is up-to-date
// mutable Double_t _absMin ; // absolute minimum of -log(L)
// mutable RooArgSet _paramAbsMin ; // Parameter values at absolute minimum
// mutable RooArgSet _obsAbsMin ; // Observable values at absolute minimum
mutable std::map<std::string,bool> _paramFixed ; // Parameter constant status at last time of use
// mutable Int_t _neval ; // Number evaluations used in last minimization
Double_t evaluate() const ;
//Double_t evaluate_bad() const ;
private:
ClassDef(RooStats::HistFactory::RooBarlowBeestonLL,0) // Real-valued function representing a Barlow-Beeston minimized profile likelihood of external (likelihood) function
};
}
}
#endif
|