00001 /***************************************************************************** 00002 * Project: RooFit * 00003 * Package: RooFitCore * 00004 * File: $Id: RooExtendedTerm.h 24278 2008-06-15 15:21:16Z wouter $ 00005 * Authors: * 00006 * WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu * 00007 * DK, David Kirkby, UC Irvine, dkirkby@uci.edu * 00008 * * 00009 * Copyright (c) 2000-2005, Regents of the University of California * 00010 * and Stanford University. All rights reserved. * 00011 * * 00012 * Redistribution and use in source and binary forms, * 00013 * with or without modification, are permitted according to the terms * 00014 * listed in LICENSE (http://roofit.sourceforge.net/license.txt) * 00015 *****************************************************************************/ 00016 #ifndef ROO_EXTENDED_TERM 00017 #define ROO_EXTENDED_TERM 00018 00019 #include "RooAbsPdf.h" 00020 #include "RooRealProxy.h" 00021 00022 class RooExtendedTerm : public RooAbsPdf { 00023 public: 00024 00025 RooExtendedTerm() ; 00026 RooExtendedTerm(const char *name, const char *title, const RooAbsReal& n) ; 00027 RooExtendedTerm(const RooExtendedTerm& other, const char* name=0) ; 00028 virtual TObject* clone(const char* newname) const { return new RooExtendedTerm(*this,newname) ; } 00029 virtual ~RooExtendedTerm() ; 00030 00031 Double_t evaluate() const { return 1. ; } 00032 00033 virtual ExtendMode extendMode() const { return CanBeExtended ; } 00034 virtual Double_t expectedEvents(const RooArgSet* nset) const ; 00035 virtual Double_t expectedEvents(const RooArgSet& nset) const { 00036 // Return number of expected events, i.e. the value of the associated n parameter 00037 return expectedEvents(&nset) ; 00038 } 00039 00040 protected: 00041 00042 RooRealProxy _n ; // Number of expected events 00043 00044 ClassDef(RooExtendedTerm,1) // Meta-p.d.f flat in all observables introducing only extended ML term 00045 }; 00046 00047 #endif