Logo ROOT   6.10/09
Reference Guide
RooAbsHiddenReal.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Project: RooFit *
3  * Package: RooFitCore *
4  * File: $Id: RooAbsHiddenReal.h,v 1.10 2007/05/11 09:11:30 verkerke Exp $
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_ABS_HIDDEN_REAL
17 #define ROO_ABS_HIDDEN_REAL
18 
19 class RooArgSet ;
20 #include "RooAbsReal.h"
21 #include "RooCategoryProxy.h"
22 
23 class RooCategory ;
24 
25 class RooAbsHiddenReal : public RooAbsReal {
26 public:
27  // Constructors, assignment etc.
28  inline RooAbsHiddenReal() {
29  // Default constructor
30  }
31  RooAbsHiddenReal(const char *name, const char *title, const char *unit= "") ;
32  RooAbsHiddenReal(const char *name, const char *title, RooAbsCategory& blindState, const char *unit= "") ;
33  RooAbsHiddenReal(const RooAbsHiddenReal& other, const char* name=0) ;
34  virtual ~RooAbsHiddenReal();
35 
36  // I/O streaming interface (machine readable)
37  virtual Bool_t readFromStream(std::istream& is, Bool_t compact, Bool_t verbose=kFALSE) ;
38  virtual void writeToStream(std::ostream& os, Bool_t compact) const ;
39 
40  // Printing interface (human readable)
41  virtual void printValue(std::ostream& stream) const ;
42 
43  inline Bool_t isHidden() const {
44  // If true, hiding mode is active
45  return _state.arg().getIndex()!=0 ;
46  }
47 
48  Double_t getHiddenVal(const RooArgSet* nset=0) const {
49  // Bypass accessor to function value that also works in hidden mode
50  return RooAbsReal::getVal(nset) ;
51  }
52 
53 protected:
54 
55  // This is dubious from a C++ point of view, but it blocks the interactive user
56  // from accidentally calling getVal() without explicit cast, which is the whole
57  // point of this class
58  virtual Double_t getValV(const RooArgSet* nset=0) const {
59  // Forward call to RooAbsReal
60  return RooAbsReal::getValV(nset) ;
61  }
62 
65 
66  RooCategoryProxy _state ; // Proxy to hiding state category
67 
68  ClassDef(RooAbsHiddenReal,1) // Abstract hidden real-valued variable
69 };
70 
71 #endif
virtual ~RooAbsHiddenReal()
Destructor.
Double_t getVal(const RooArgSet *set=0) const
Definition: RooAbsReal.h:64
bool Bool_t
Definition: RtypesCore.h:59
virtual Int_t getIndex() const
Return index number of current state.
Bool_t isHidden() const
virtual void writeToStream(std::ostream &os, Bool_t compact) const
Special version of writeToStream that disallows reading from stream.
virtual Double_t getValV(const RooArgSet *nset=0) const
Return value of object.
virtual Double_t getValV(const RooArgSet *set=0) const
Return value of object.
Definition: RooAbsReal.cxx:247
#define ClassDef(name, id)
Definition: Rtypes.h:297
const RooAbsCategory & arg() const
virtual void printValue(std::ostream &stream) const
Special version of printValue that doesn't reveal the objects value.
Double_t getHiddenVal(const RooArgSet *nset=0) const
bool verbose
virtual Bool_t readFromStream(std::istream &is, Bool_t compact, Bool_t verbose=kFALSE)
Special version of readFromStream that disallows reading from stream.
RooCategory represents a fundamental (non-derived) discrete value object.
Definition: RooCategory.h:24
const Bool_t kFALSE
Definition: RtypesCore.h:92
double Double_t
Definition: RtypesCore.h:55
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Definition: RooAbsReal.h:53
RooCategoryProxy is the proxy implementation for RooAbsCategory objects A RooCategoryProxy is the gen...
RooAbsHiddenReal is a base class for objects that want to hide their return value from interactive us...
RooCategoryProxy _state
RooAbsCategory is the common abstract base class for objects that represent a discrete value with a f...
static RooCategory * _dummyBlindState
RooAbsCategory & dummyBlindState() const
Return reference to internal dummy RooCategory implementation blinding state switch.