Logo ROOT  
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
23class RooRealVar;
24class RooArgList ;
25
26class RooGenProdProj : public RooAbsReal {
27public:
28
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 doFactorize=true) ;
32
33 RooGenProdProj(const RooGenProdProj& other, const char* name = 0);
34 TObject* clone(const char* newname) const override { return new RooGenProdProj(*this, newname); }
35 ~RooGenProdProj() override ;
36
37protected:
38
39 RooAbsReal* makeIntegral(const char* name, const RooArgSet& compSet, const RooArgSet& intSet,
40 RooArgSet& saveSet, const char* isetRangeName, bool doFactorize) ;
41
42 void operModeHook() override ;
43
44 double evaluate() const override;
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 _haveD ; ///< Do we have a denominator term?
51
52 ClassDefOverride(RooGenProdProj,1) // General form of projected integral of product of PDFs, utility class for RooProdPdf
53};
54
55#endif
#define ClassDefOverride(name, id)
Definition: Rtypes.h:339
char name[80]
Definition: TGX11.cxx:110
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Definition: RooAbsReal.h:64
RooArgList is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgList.h:22
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgSet.h:57
RooGenProdProj is an auxiliary class for RooProdPdf that calculates a general normalised projection o...
void operModeHook() override
Intercept cache mode operation changes and propagate them to the components.
RooGenProdProj()
Default constructor.
double evaluate() const override
Calculate and return value of normalization projection.
RooAbsReal * makeIntegral(const char *name, const RooArgSet &compSet, const RooArgSet &intSet, RooArgSet &saveSet, const char *isetRangeName, bool doFactorize)
Utility function to create integral for product over certain observables.
~RooGenProdProj() override
Destructor.
RooSetProxy _compSetD
Set proxy for denominator components.
RooListProxy _intList
Master integrals representing numerator and denominator.
TObject * clone(const char *newname) const override
RooArgSet * _compSetOwnedD
Owner of denominator components.
bool _haveD
Do we have a denominator term?
RooArgSet * _compSetOwnedN
Owner of numerator components.
RooSetProxy _compSetN
Set proxy for numerator components.
RooRealVar represents a variable that can be changed from the outside.
Definition: RooRealVar.h:40
Mother of all ROOT objects.
Definition: TObject.h:37