/usr/include/root/RooProduct.h is in libroot-roofit-dev 5.34.30-0ubuntu8.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | /*****************************************************************************
* Project: RooFit *
* Package: RooFitCore *
* File: $Id: RooProduct.h,v 1.5 2007/05/11 09:11:30 verkerke Exp $
* Authors: *
* WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu *
* GR, Gerhard Raven, VU Amsterdan, graven@nikhef.nl *
* *
* Copyright (c) 2000-2007, Regents of the University of California *
* and Stanford University. All rights reserved. *
* *
* Redistribution and use in source and binary forms, *
* with or without modification, are permitted according to the terms *
* listed in LICENSE (http://roofit.sourceforge.net/license.txt) *
*****************************************************************************/
#ifndef ROO_PRODUCT
#define ROO_PRODUCT
#include "RooAbsReal.h"
#include "RooListProxy.h"
#include "RooCacheManager.h"
#include "RooObjCacheManager.h"
#include <vector>
#include <utility>
class RooRealVar;
class RooArgList ;
class RooProduct : public RooAbsReal {
public:
RooProduct() ;
RooProduct(const char *name, const char *title, const RooArgList& _prodSet) ;
RooProduct(const RooProduct& other, const char* name = 0);
virtual TObject* clone(const char* newname) const { return new RooProduct(*this, newname); }
virtual Bool_t forceAnalyticalInt(const RooAbsArg& dep) const ;
virtual Int_t getAnalyticalIntegralWN(RooArgSet& allVars, RooArgSet& analVars,
const RooArgSet* normSet,
const char* rangeName=0) const ;
virtual Double_t analyticalIntegral(Int_t code, const char* rangeName=0) const;
RooArgSet components() { RooArgSet tmp(_compRSet) ; tmp.add(_compCSet) ; return tmp ; }
virtual ~RooProduct() ;
class ProdMap ;
void printMetaArgs(std::ostream& os) const ;
virtual std::list<Double_t>* binBoundaries(RooAbsRealLValue& /*obs*/, Double_t /*xlo*/, Double_t /*xhi*/) const ;
virtual std::list<Double_t>* plotSamplingHint(RooAbsRealLValue& /*obs*/, Double_t /*xlo*/, Double_t /*xhi*/) const ;
virtual Bool_t isBinnedDistribution(const RooArgSet& obs) const ;
virtual CacheMode canNodeBeCached() const { return RooAbsArg::NotAdvised ; } ;
virtual void setCacheAndTrackHints(RooArgSet&) ;
protected:
RooListProxy _compRSet ;
RooListProxy _compCSet ;
TIterator* _compRIter ; //! do not persist
TIterator* _compCIter ; //! do not persist
class CacheElem : public RooAbsCacheElement {
public:
virtual ~CacheElem();
// Payload
RooArgList _prodList ;
RooArgList _ownedList ;
virtual RooArgList containedArgs(Action) ;
};
mutable RooObjCacheManager _cacheMgr ; // The cache manager
Double_t calculate(const RooArgList& partIntList) const;
Double_t evaluate() const;
const char* makeFPName(const char *pfx,const RooArgSet& terms) const ;
ProdMap* groupProductTerms(const RooArgSet&) const;
Int_t getPartIntList(const RooArgSet* iset, const char *rangeName=0) const;
ClassDef(RooProduct,2) // Product of RooAbsReal and/or RooAbsCategory terms
};
#endif
|