00001 /***************************************************************************** 00002 * Project: RooFit * 00003 * Package: RooFitCore * 00004 * File: $Id: RooDataProjBinding.h,v 1.6 2007/05/11 09:11:30 verkerke Exp $ 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_DATA_PROJ_BINDING 00017 #define ROO_DATA_PROJ_BINDING 00018 00019 #include "RooRealBinding.h" 00020 class RooAbsReal ; 00021 class RooAbsData ; 00022 class RooSuperCategory ; 00023 class Roo1DTable ; 00024 00025 class RooDataProjBinding : public RooRealBinding { 00026 public: 00027 RooDataProjBinding(const RooAbsReal &real, const RooAbsData& data, const RooArgSet &vars, const RooArgSet* normSet=0) ; 00028 virtual ~RooDataProjBinding() ; 00029 00030 virtual Double_t operator()(const Double_t xvector[]) const; 00031 00032 protected: 00033 00034 mutable Bool_t _first ; // Bit indicating if operator() has been called yet 00035 const RooAbsReal* _real ; // Real function to be projected 00036 const RooAbsData* _data ; // Dataset used for projection 00037 const RooArgSet* _nset ; // Normalization set for real function 00038 00039 RooSuperCategory* _superCat ; // Supercategory constructed from _data's category variables 00040 Roo1DTable* _catTable ; // Supercategory table generated from _data 00041 00042 ClassDef(RooDataProjBinding,0) // RealFunc/Dataset binding for data projection of a real function 00043 }; 00044 00045 #endif 00046