Logo ROOT   master
Reference Guide
RooGenProdProj.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Project: RooFit *
3  * Package: RooFitCore *
4  * File: $Id: RooGenProdProj.h,v 1.7 2007/05/11 09:11:30 verkerke Exp $
5  * Authors: *
6  * WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu *
7  * DK, David Kirkby, UC Irvine, dkirkby@uci.edu *
8  * *
9  * Copyright (c) 2000-2005, Regents of the University of California *
10  * and Stanford University. All rights reserved. *
11  * *
12  * Redistribution and use in source and binary forms, *
13  * with or without modification, are permitted according to the terms *
14  * listed in LICENSE (http://roofit.sourceforge.net/license.txt) *
15  *****************************************************************************/
16 #ifndef ROO_GEN_PROD_PROJ
17 #define ROO_GEN_PROD_PROJ
18 
19 #include "RooAbsReal.h"
20 #include "RooSetProxy.h"
21 #include "RooListProxy.h"
22 
23 class RooRealVar;
24 class RooArgList ;
25 
26 class RooGenProdProj : public RooAbsReal {
27 public:
28 
29  RooGenProdProj() ;
30  RooGenProdProj(const char *name, const char *title, const RooArgSet& _prodSet, const RooArgSet& _intSet,
31  const RooArgSet& _normSet, const char* isetRangeName, const char* normRangeName=0, Bool_t doFactorize=kTRUE) ;
32 
33  RooGenProdProj(const RooGenProdProj& other, const char* name = 0);
34  virtual TObject* clone(const char* newname) const { return new RooGenProdProj(*this, newname); }
35  virtual ~RooGenProdProj() ;
36 
37 protected:
38 
39  RooAbsReal* makeIntegral(const char* name, const RooArgSet& compSet, const RooArgSet& intSet,
40  RooArgSet& saveSet, const char* isetRangeName, Bool_t doFactorize) ;
41 
42  virtual void operModeHook() ;
43 
44  Double_t evaluate() const;
45  RooArgSet* _compSetOwnedN ; // Owner of numerator components
46  RooArgSet* _compSetOwnedD ; // Owner of denominator components
47  RooSetProxy _compSetN ; // Set proxy for numerator components
48  RooSetProxy _compSetD ; // Set proxy for denominator components
49  RooListProxy _intList ; // Master integrals representing numerator and denominator
50  Bool_t _haveD ; // Do we have a denominator term?
51 
52  ClassDef(RooGenProdProj,1) // General form of projected integral of product of PDFs, utility class for RooProdPdf
53 };
54 
55 #endif
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgSet.h:28
virtual void operModeHook()
Intercept cache mode operation changes and propagate them to the components.
virtual ~RooGenProdProj()
Destructor.
#define ClassDef(name, id)
Definition: Rtypes.h:322
RooRealVar represents a variable that can be changed from the outside.
Definition: RooRealVar.h:35
virtual TObject * clone(const char *newname) const
RooListProxy _intList
RooGenProdProj()
Default constructor.
RooArgSet * _compSetOwnedN
RooSetProxy _compSetD
RooListProxy is the concrete proxy for RooArgList objects.
Definition: RooListProxy.h:25
RooArgSet * _compSetOwnedD
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Definition: RooAbsReal.h:60
RooGenProdProj is an auxiliary class for RooProdPdf that calculates a general normalised projection o...
RooSetProxy _compSetN
Mother of all ROOT objects.
Definition: TObject.h:37
RooAbsReal * makeIntegral(const char *name, const RooArgSet &compSet, const RooArgSet &intSet, RooArgSet &saveSet, const char *isetRangeName, Bool_t doFactorize)
Utility function to create integral for product over certain observables.
Double_t evaluate() const
Calculate and return value of normalization projection.
RooSetProxy is the concrete proxy for RooArgSet objects.
Definition: RooSetProxy.h:24
RooArgList is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgList.h:21
const Bool_t kTRUE
Definition: RtypesCore.h:89
char name[80]
Definition: TGX11.cxx:109