Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
RooStepFunction.h
Go to the documentation of this file.
1 
2 
3 /*****************************************************************************
4  * Project: RooFit *
5  * Package: RooFitModels *
6  * File: $Id$
7  * Authors: *
8  * Tristan du Pree, Nikhef, Amsterdam, tdupree@nikhef.nl *
9  * *
10  * Copyright (c) 2000-2005, Stanford University. All rights reserved. *
11  *
12  * *
13  * Redistribution and use in source and binary forms, *
14  * with or without modification, are permitted according to the terms *
15  * listed in LICENSE (http://roofit.sourceforge.net/license.txt) *
16  *****************************************************************************/
17 #ifndef ROO_STEP_FUNCTION
18 #define ROO_STEP_FUNCTION
19 
20 #include "TArrayD.h"
21 #include "RooAbsReal.h"
22 #include "RooRealProxy.h"
23 #include "RooListProxy.h"
24 
25 class RooRealVar;
26 class RooArgList ;
27 
28 class RooStepFunction : public RooAbsReal {
29  public:
30 
31  RooStepFunction() ;
32  RooStepFunction(const char *name, const char *title,
33  RooAbsReal& x, const RooArgList& coefList, const RooArgList& limits, Bool_t interpolate=kFALSE) ;
34 
35  RooStepFunction(const RooStepFunction& other, const char* name = 0);
36  virtual TObject* clone(const char* newname) const { return new RooStepFunction(*this, newname); }
37  virtual ~RooStepFunction() ;
38 
39  const RooArgList& coefficients() { return _coefList; }
40  const RooArgList& boundaries() { return _boundaryList; }
41 
42  protected:
43 
44  Double_t evaluate() const;
45 
46  private:
47 
48  RooRealProxy _x;
49  RooListProxy _coefList ;
50  RooListProxy _boundaryList ;
51  Bool_t _interpolate ;
52  TIterator* _coefIter ; //! do not persist
53  TIterator* _boundIter ; //! do not persist
54 
55  ClassDef(RooStepFunction,1) // Step Function
56 };
57 
58 #endif