00001 /***************************************************************************** 00002 * Project: RooFit * 00003 * Package: RooFitCore * 00004 * File: $Id: RooMultiBinomial.h 31258 2009-11-17 22:41:06Z wouter $ 00005 * Author: * 00006 * Tristan du Pree, Nikhef, Amsterdam, tdupree@nikhef.nl * 00007 * * 00008 * Copyright (c) 2000-2005, Regents of the University of California * 00009 * and Stanford University. All rights reserved. * 00010 * * 00011 * Redistribution and use in source and binary forms, * 00012 * with or without modification, are permitted according to the terms * 00013 * listed in LICENSE (http://roofit.sourceforge.net/license.txt) * 00014 *****************************************************************************/ 00015 #ifndef ROO_MULTIBINOMIAL 00016 #define ROO_MUTLIBINOMIAL 00017 00018 #include "RooAbsReal.h" 00019 #include "RooListProxy.h" 00020 #include "TString.h" 00021 00022 class RooArgList ; 00023 00024 00025 class RooMultiBinomial : public RooAbsReal { 00026 public: 00027 // Constructors, assignment etc 00028 inline RooMultiBinomial() { 00029 } 00030 00031 RooMultiBinomial(const char *name, const char *title, const RooArgList& effFuncList, const RooArgList& catList, Bool_t ignoreNonVisible); 00032 RooMultiBinomial(const RooMultiBinomial& other, const char* name=0); 00033 virtual TObject* clone(const char* newname) const { return new RooMultiBinomial(*this,newname); } 00034 virtual ~RooMultiBinomial(); 00035 00036 protected: 00037 00038 // Function evaluation 00039 virtual Double_t evaluate() const ; 00040 00041 private: 00042 00043 RooListProxy _catList ; // Accept/reject categories 00044 RooListProxy _effFuncList ; // Efficiency functions per category 00045 Bool_t _ignoreNonVisible ; // Ignore combination of only rejects (since invisible) 00046 00047 ClassDef(RooMultiBinomial,1) // Simultaneous pdf of N Binomial distributions with associated efficiency functions 00048 }; 00049 00050 #endif