Loading [MathJax]/extensions/tex2jax.js
ROOT
6.06/09
Reference Guide
ROOT Home Page
Main Page
Related Pages
User's Classes
Namespaces
All Classes
Files
Release Notes
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
roofit
roofitcore
src
RooFracRemainder.cxx
Go to the documentation of this file.
1
/*****************************************************************************
2
* Project: RooFit *
3
* Package: RooFitCore *
4
* @(#)root/roofitcore:$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
//////////////////////////////////////////////////////////////////////////////
18
//
19
// BEGIN_HTML
20
//
21
// RooFracRemainder calculates the remainder fraction of a sum of RooAbsReal
22
// fraction, i.e (1 - sum_i a_i). This class is used by RooSimWSTool to
23
// as specialization of the remainder fraction term of a parameter with
24
// a constrained split
25
// END_HTML
26
//
27
28
29
#include "
RooFit.h
"
30
31
#include "
Riostream.h
"
32
#include "
Riostream.h
"
33
#include <math.h>
34
35
#include "
RooFracRemainder.h
"
36
#include "
RooAbsReal.h
"
37
#include "
RooAbsPdf.h
"
38
#include "
RooErrorHandler.h
"
39
#include "
RooArgSet.h
"
40
#include "
RooMsgService.h
"
41
42
using namespace
std
;
43
44
ClassImp
(
RooFracRemainder
)
45
;
46
47
48
////////////////////////////////////////////////////////////////////////////////
49
/// Default constructor
50
51
RooFracRemainder::RooFracRemainder
()
52
{
53
_setIter1 = _set1.createIterator() ;
54
}
55
56
57
58
////////////////////////////////////////////////////////////////////////////////
59
/// Constructor with given set of input fractions. All arguments in sumSet must be of type RooAbsReal.
60
61
RooFracRemainder::RooFracRemainder
(
const
char
*
name
,
const
char
* title,
const
RooArgSet
& sumSet) :
62
RooAbsReal
(name, title),
63
_set1(
"set1"
,
"First set of components"
,this)
64
{
65
_setIter1
=
_set1
.
createIterator
() ;
66
67
TIterator
* inputIter = sumSet.
createIterator
() ;
68
RooAbsArg
* comp ;
69
while
((comp = (
RooAbsArg
*)inputIter->
Next
())) {
70
if
(!dynamic_cast<RooAbsReal*>(comp)) {
71
coutE
(
InputArguments
) <<
"RooFracRemainder::ctor("
<<
GetName
() <<
") ERROR: component "
<< comp->
GetName
()
72
<<
" is not of type RooAbsReal"
<< endl ;
73
RooErrorHandler::softAbort
() ;
74
}
75
_set1
.
add
(*comp) ;
76
}
77
78
delete
inputIter ;
79
}
80
81
82
83
84
////////////////////////////////////////////////////////////////////////////////
85
/// Copy constructor
86
87
RooFracRemainder::RooFracRemainder
(
const
RooFracRemainder
& other,
const
char
*
name
) :
88
RooAbsReal
(other, name),
89
_set1(
"set1"
,this,other._set1)
90
{
91
_setIter1
=
_set1
.
createIterator
() ;
92
93
// Member _ownedList is intentionally not copy-constructed -- ownership is not transferred
94
}
95
96
97
98
////////////////////////////////////////////////////////////////////////////////
99
/// Destructor
100
101
RooFracRemainder::~RooFracRemainder
()
102
{
103
if
(
_setIter1
)
delete
_setIter1
;
104
}
105
106
107
108
////////////////////////////////////////////////////////////////////////////////
109
/// Calculate value
110
111
Double_t
RooFracRemainder::evaluate
()
const
112
{
113
Double_t
sum(1);
114
RooAbsReal
* comp ;
115
const
RooArgSet
* nset =
_set1
.
nset
() ;
116
117
_setIter1
->
Reset
() ;
118
119
while
((comp=(
RooAbsReal
*)
_setIter1
->
Next
())) {
120
sum -= comp->
getVal
(nset) ;
121
}
122
123
return
sum ;
124
}
125
RooAbsProxy::nset
const RooArgSet * nset() const
Definition:
RooAbsProxy.h:47
coutE
#define coutE(a)
Definition:
RooMsgService.h:35
RooErrorHandler::softAbort
static void softAbort()
Definition:
RooErrorHandler.h:30
RooArgSet.h
TIterator::Reset
virtual void Reset()=0
RooArgSet
Definition:
RooArgSet.h:26
RooFracRemainder::_setIter1
TIterator * _setIter1
Definition:
RooFracRemainder.h:38
RooMsgService.h
std
STL namespace.
ClassImp
ClassImp(RooFracRemainder)
TIterator
Iterator abstract base class.
Definition:
TIterator.h:32
RooFracRemainder::RooFracRemainder
RooFracRemainder()
Default constructor.
Definition:
RooFracRemainder.cxx:51
RooAbsCollection::createIterator
TIterator * createIterator(Bool_t dir=kIterForward) const
Definition:
RooAbsCollection.h:98
RooErrorHandler.h
RooAbsReal::getVal
Double_t getVal(const RooArgSet *set=0) const
Definition:
RooAbsReal.h:64
RooAbsPdf.h
RooListProxy::add
virtual Bool_t add(const RooAbsArg &var, Bool_t silent=kFALSE)
Reimplementation of standard RooArgList::add()
Definition:
RooListProxy.cxx:104
RooFracRemainder::~RooFracRemainder
virtual ~RooFracRemainder()
Destructor.
Definition:
RooFracRemainder.cxx:101
RooFracRemainder::evaluate
Double_t evaluate() const
Iterator over set of input fractions.
Definition:
RooFracRemainder.cxx:111
TNamed::GetName
virtual const char * GetName() const
Returns name of object.
Definition:
TNamed.h:51
Riostream.h
RooAbsReal.h
Double_t
double Double_t
Definition:
RtypesCore.h:55
RooAbsReal
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Definition:
RooAbsReal.h:53
RooFracRemainder.h
name
#define name(a, b)
Definition:
linkTestLib0.cpp:5
RooFracRemainder::_set1
RooListProxy _set1
Definition:
RooFracRemainder.h:37
TIterator::Next
virtual TObject * Next()=0
RooFit::InputArguments
Definition:
RooGlobalFunc.h:58
RooFit.h
RooFracRemainder
Definition:
RooFracRemainder.h:25
RooAbsArg
RooAbsArg is the common abstract base class for objects that represent a value (of arbitrary type) an...
Definition:
RooAbsArg.h:66