Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:11:17

0001 /*****************************************************************************
0002  * Project: RooFit                                                           *
0003  * Package: RooFitCore                                                       *
0004  *    File: $Id$
0005  * Authors:                                                                  *
0006  *   WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu       *
0007  *   DK, David Kirkby,    UC Irvine,         dkirkby@uci.edu                 *
0008  *                                                                           *
0009  * Copyright (c) 2000-2005, Regents of the University of California          *
0010  *                          and Stanford University. All rights reserved.    *
0011  *                                                                           *
0012  * Redistribution and use in source and binary forms,                        *
0013  * with or without modification, are permitted according to the terms        *
0014  * listed in LICENSE (http://roofit.sourceforge.net/license.txt)             *
0015  *****************************************************************************/
0016 #ifndef ROO_ABS_MOMENT
0017 #define ROO_ABS_MOMENT
0018 
0019 #include "RooAbsReal.h"
0020 #include "RooRealProxy.h"
0021 #include "RooSetProxy.h"
0022 
0023 
0024 class RooRealVar;
0025 class RooArgList ;
0026 
0027 class RooAbsMoment : public RooAbsReal {
0028 public:
0029 
0030   RooAbsMoment() = default;
0031   RooAbsMoment(const char *name, const char *title, RooAbsReal& func, RooRealVar& x, Int_t order=1, bool takeRoot=false) ;
0032   RooAbsMoment(const RooAbsMoment& other, const char* name = nullptr);
0033 
0034   Int_t order() const { return _order ; }
0035   bool central() const { return _mean.absArg() ? true : false ; }
0036   RooAbsReal* mean() { return (RooAbsReal*) _mean.absArg() ; }
0037 
0038 
0039 protected:
0040 
0041   Int_t _order = 1;                      ///< Moment order
0042   Int_t _takeRoot = false;               ///< Return n-order root of moment
0043   RooSetProxy  _nset ;                   ///< Normalization set (optional)
0044   RooRealProxy _func ;                   ///< Input function
0045   RooRealProxy _x     ;                  ///< Observable
0046   RooRealProxy _mean ;                   ///< Mean (if calculated for central moment)
0047 
0048   ClassDefOverride(RooAbsMoment,1) // Abstract representation of moment in a RooAbsReal in a given RooRealVar
0049 };
0050 
0051 #endif