Logo ROOT  
Reference Guide
RooChangeTracker.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Project: RooFit *
3 * Package: RooFitCore *
4 * File: $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#ifndef ROO_CHANGE_TRACKER
17#define ROO_CHANGE_TRACKER
18
19#include "RooAbsReal.h"
20#include "RooListProxy.h"
21#include <vector>
22
23class RooRealVar;
24class RooArgList ;
25
27public:
28
30 RooChangeTracker(const char *name, const char *title, const RooArgSet& trackSet, bool checkValues=false) ;
31 ~RooChangeTracker() override ;
32
33 RooChangeTracker(const RooChangeTracker& other, const char* name = nullptr);
34 TObject* clone(const char* newname) const override { return new RooChangeTracker(*this, newname); }
35
36 bool hasChanged(bool clearState) ;
37
38 RooArgSet parameters() const ;
39
40
41protected:
42
43 RooListProxy _realSet ; ///< List of reals to track
44 RooListProxy _catSet ; ///< List of categories to check
45 std::vector<double> _realRef ; ///< Reference values for reals
46 std::vector<Int_t> _catRef ; ///< Reference values for categories
47 bool _checkVal ; ///< Check contents as well if true
48
49 bool _init ; //!
50
51 double evaluate() const override { return 1 ; }
52
53 ClassDefOverride(RooChangeTracker,1) // Meta object that tracks changes in set of other arguments
54};
55
56#endif
#define ClassDefOverride(name, id)
Definition: Rtypes.h:339
char name[80]
Definition: TGX11.cxx:110
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Definition: RooAbsReal.h:62
RooArgList is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgList.h:22
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgSet.h:56
RooChangeTracker is a meta object that tracks value changes in a given set of RooAbsArgs by registeri...
bool hasChanged(bool clearState)
Returns true if state has changed since last call with clearState=true.
RooListProxy _catSet
List of categories to check.
bool _checkVal
Check contents as well if true.
RooChangeTracker()
Default constructor.
double evaluate() const override
Evaluate this PDF / function / constant. Needs to be overridden by all derived classes.
std::vector< Int_t > _catRef
Reference values for categories.
TObject * clone(const char *newname) const override
RooArgSet parameters() const
~RooChangeTracker() override
Destructor.
std::vector< double > _realRef
Reference values for reals.
RooListProxy _realSet
List of reals to track.
RooRealVar represents a variable that can be changed from the outside.
Definition: RooRealVar.h:40
Mother of all ROOT objects.
Definition: TObject.h:41