Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
RooChebychev.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Project: RooFit *
3  * Package: RooFitModels *
4  * File: $Id: RooChebychev.h,v 1.6 2007/05/11 09:13:07 verkerke Exp $
5  * Authors: *
6  * GR, Gerhard Raven, UC San Diego, Gerhard.Raven@slac.stanford.edu
7  * *
8  * Copyright (c) 2000-2005, Regents of the University of California *
9  * and Stanford University. All rights reserved. *
10  * *
11  * Redistribution and use in source and binary forms, *
12  * with or without modification, are permitted according to the terms *
13  * listed in LICENSE (http://roofit.sourceforge.net/license.txt) *
14  *****************************************************************************/
15 #ifndef ROO_CHEBYCHEV
16 #define ROO_CHEBYCHEV
17 
18 #include "RooAbsPdf.h"
19 #include "RooRealProxy.h"
20 #include "RooListProxy.h"
21 
22 class RooRealVar;
23 class RooArgList ;
24 
25 class RooChebychev : public RooAbsPdf {
26 public:
27 
28  RooChebychev() ;
29  RooChebychev(const char *name, const char *title,
30  RooAbsReal& _x, const RooArgList& _coefList) ;
31 
32  RooChebychev(const RooChebychev& other, const char* name = 0);
33  virtual TObject* clone(const char* newname) const { return new RooChebychev(*this, newname); }
34  inline virtual ~RooChebychev() { }
35 
36  Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=0) const ;
37  Double_t analyticalIntegral(Int_t code, const char* rangeName=0) const ;
38  RooSpan<double> evaluateBatch(std::size_t begin, std::size_t batchSize) const;
39 
40  virtual void selectNormalizationRange(const char* rangeName=0, Bool_t force=kFALSE) ;
41 
42 private:
43 
44  RooRealProxy _x;
45  RooListProxy _coefList ;
46  mutable TNamed* _refRangeName ;
47 
48  Double_t evaluate() const;
49  Double_t evalAnaInt(const Double_t a, const Double_t b) const;
50 
51  ClassDef(RooChebychev,2) // Chebychev polynomial PDF
52 };
53 
54 #endif