/usr/include/root/RooProjectedPdf.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 | /*****************************************************************************
* Project: RooFit *
* *
* Copyright (c) 2000-2005, 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 ROOPROJECTEDPDF
#define ROOPROJECTEDPDF
#include "RooAbsPdf.h"
#include "RooRealProxy.h"
#include "RooAbsReal.h"
#include "RooObjCacheManager.h"
#include "RooSetProxy.h"
class RooProjectedPdf : public RooAbsPdf {
public:
RooProjectedPdf() ;
RooProjectedPdf(const char *name, const char *title, RooAbsReal& _intpdf, const RooArgSet& intObs);
RooProjectedPdf(const RooProjectedPdf& other, const char* name=0) ;
virtual TObject* clone(const char* newname) const { return new RooProjectedPdf(*this,newname); }
inline virtual ~RooProjectedPdf() { }
// Analytical integration support
virtual Int_t getAnalyticalIntegralWN(RooArgSet& allVars, RooArgSet& analVars, const RooArgSet* normSet, const char* rangeName=0) const ;
virtual Double_t analyticalIntegralWN(Int_t code, const RooArgSet* normSet, const char* rangeName=0) const ;
virtual Bool_t forceAnalyticalInt(const RooAbsArg& dep) const ;
virtual Double_t getValV(const RooArgSet* set=0) const ;
Int_t getGenerator(const RooArgSet& directVars, RooArgSet &generateVars, Bool_t staticInitOK=kTRUE) const;
void initGenerator(Int_t /*code*/) {} ; // optional pre-generation initialization
void generateEvent(Int_t code);
virtual Bool_t selfNormalized() const { return kTRUE ; }
// Handle projection of projection explicitly
virtual RooAbsPdf* createProjection(const RooArgSet& iset) ;
void printMetaArgs(std::ostream& os) const ;
protected:
RooRealProxy intpdf ; // p.d.f that is integrated
RooSetProxy intobs ; // observables that p.d.f is integrated over
RooSetProxy deps ; // dependents of this p.d.f
class CacheElem : public RooAbsCacheElement {
public:
virtual ~CacheElem() { delete _projection ; } ;
// Payload
RooAbsReal* _projection ;
// Cache management functions
virtual RooArgList containedArgs(Action) ;
virtual void printCompactTreeHook(std::ostream&, const char *, Int_t, Int_t) ;
} ;
mutable RooObjCacheManager _cacheMgr ; //! The cache manager
Bool_t redirectServersHook(const RooAbsCollection& newServerList, Bool_t /*mustReplaceAll*/, Bool_t /*nameChange*/, Bool_t /*isRecursive*/) ;
mutable RooArgSet* _curNormSet ; //!
const RooAbsReal* getProjection(const RooArgSet* iset, const RooArgSet* nset, const char* rangeName, int& code) const ;
Double_t evaluate() const ;
private:
ClassDef(RooProjectedPdf,1) // Operator p.d.f calculating projection of another p.d.f
};
#endif
|