Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
RooUnblindPrecision.cxx
Go to the documentation of this file.
1/*****************************************************************************
2 * Project: RooFit *
3 * Package: RooFitModels *
4 * @(#)root/roofit:$Id$
5 * Authors: *
6 * WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu *
7 * DK, David Kirkby, UC Irvine, dkirkby@uci.edu *
8 * *
9 * Copyright (c) 2000-2005, Regents of the University of California *
10 * and Stanford University. All rights reserved. *
11 * *
12 * Redistribution and use in source and binary forms, *
13 * with or without modification, are permitted according to the terms *
14 * listed in LICENSE (http://roofit.sourceforge.net/license.txt) *
15 *****************************************************************************/
16
17/** \class RooUnblindPrecision
18 \ingroup Roofit
19
20Implementation of BlindTools' precision blinding method
21A RooUnblindPrecision object is a real valued function
22object, constructed from a blind value holder and a
23set of unblinding parameters. When supplied to a PDF
24in lieu of a regular parameter, the blind value holder
25supplied to the unblinded objects will in a fit be minimized
26to blind value corresponding to the actual minimum of the
27parameter. The transformation is chosen such that the
28the error on the blind parameters is identical to that
29of the unblind parameter
30**/
31
32#include "RooArgSet.h"
33#include "RooUnblindPrecision.h"
34
35
36////////////////////////////////////////////////////////////////////////////////
37/// Constructor from a given RooAbsReal (to hold the blind value) and a set of blinding parameters
38
39RooUnblindPrecision::RooUnblindPrecision(const char *name, const char *title,
40 const char *blindString, double centralValue,
41 double scale, RooAbsReal& value,
42 bool sin2betaMode)
43 : RooAbsHiddenReal(name,title),
44 _value("value","Precision blinded value",this,value),
45 _blindEngine(blindString,RooBlindTools::full,centralValue,scale,sin2betaMode)
46{
47}
48
49////////////////////////////////////////////////////////////////////////////////
50/// Constructor from a given RooAbsReal (to hold the blind value) and a set of blinding parameters
51
52RooUnblindPrecision::RooUnblindPrecision(const char *name, const char *title,
53 const char *blindString, double centralValue,
54 double scale, RooAbsReal& value, RooAbsCategory& blindState,
55 bool sin2betaMode)
56 : RooAbsHiddenReal(name,title,blindState),
57 _value("value","Precision blinded value",this,value),
58 _blindEngine(blindString,RooBlindTools::full,centralValue,scale,sin2betaMode)
59{
60}
61
62////////////////////////////////////////////////////////////////////////////////
63/// Copy constructor
64
66 RooAbsHiddenReal(other, name),
67 _value("asym",this,other._value),
69{
70}
71
72////////////////////////////////////////////////////////////////////////////////
73/// Evaluate RooBlindTools unhide-precision method on blind value
74
76{
77 if (isHidden()) {
78 // Blinding active for this event
79 return _blindEngine.UnHidePrecision(_value);
80 } else {
81 // Blinding not active for this event
82 return _value ;
83 }
84}
char name[80]
Definition TGX11.cxx:148
A space to attach TBranches.
bool isHidden() const
RooAbsReal()
coverity[UNINIT_CTOR] Default constructor
double evaluate() const override
Evaluate RooBlindTools unhide-precision method on blind value.
RooUnblindPrecision()=default