13#ifndef ROO_ABS_TEST_STATISTIC
14#define ROO_ABS_TEST_STATISTIC
30class RooAbsTestStatistic ;
32typedef RooRealMPFE* pRooRealMPFE ;
35 friend class RooRealMPFE;
38 struct Configuration {
40 std::string rangeName;
41 std::string addCoefRangeName;
45 bool splitCutRange =
false;
46 bool cloneInputData =
true;
47 double integrateOverBinsPrecision = -1.;
49 bool takeGlobalObservablesFromData =
false;
54 const RooArgSet& projDeps, Configuration
const& cfg);
55 RooAbsTestStatistic(
const RooAbsTestStatistic& other,
const char*
name=
nullptr);
56 ~RooAbsTestStatistic()
override;
58 const RooArgSet& projDeps, Configuration
const& cfg) = 0;
60 virtual double combinedValue(
RooAbsReal** gofArray,
Int_t nVal)
const = 0 ;
61 virtual double globalNormalization()
const {
68 void enableOffsetting(
bool flag)
override ;
69 bool isOffsetting()
const override {
return _doOffset ; }
70 double offset()
const override {
return _offset.Sum() ; }
71 virtual double offsetCarry()
const {
return _offset.Carry(); }
73 enum GOFOpMode { SimMaster,MPMaster,Slave } ;
74 GOFOpMode operMode()
const {
81 void printCompactTreeHook(std::ostream& os,
const char*
indent=
"")
override ;
83 bool redirectServersHook(
const RooAbsCollection& newServerList,
bool mustReplaceAll,
bool nameChange,
bool isRecursive)
override ;
86 virtual double evaluatePartition(std::size_t firstEvent, std::size_t lastEvent, std::size_t stepSize)
const = 0 ;
87 virtual double getCarry()
const;
90 void setSimCount(
Int_t simCount) {
92 _simCount = simCount ;
95 void setEventCount(
Int_t nEvents) {
100 Int_t numSets()
const {
104 Int_t setNum()
const {
116 std::string _rangeName ;
117 std::string _addCoefRangeName ;
118 bool _splitRange =
false;
120 bool _verbose =
false;
122 virtual bool setDataSlave(
RooAbsData& ,
bool =
true,
bool =
false) {
return true ; }
127 virtual bool processEmptyDataSets()
const {
return true ; }
133 mutable bool _init =
false;
134 GOFOpMode _gofOpMode = Slave;
142 std::vector<std::unique_ptr<RooAbsTestStatistic>> _gofArray;
146 pRooRealMPFE* _mpfeArray =
nullptr;
149 bool _doOffset =
false;
150 const bool _takeGlobalObservablesFromData =
false;
152 mutable double _evalCarry = 0.0;
int Int_t
Signed integer 4 bytes (int)
static void indent(ostringstream &buf, int indent_level)
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h offset
The Kahan summation is a compensated summation algorithm, which significantly reduces numerical error...
Abstract container object that can hold multiple RooAbsArg objects.
Abstract base class for binned and unbinned datasets.
Abstract base class for objects that represent a real value and implements functionality common to al...
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Facilitates simultaneous fitting of multiple PDFs to subsets of a given dataset.
void evaluate(typename Architecture_t::Tensor_t &A, EActivationFunction f)
Apply the given activation function to each value in the given tensor A.
void initialize(typename Architecture_t::Matrix_t &A, EInitialization m)