#ifndef ROO_ADDITION
#define ROO_ADDITION
#include "RooAbsReal.h"
#include "RooListProxy.h"
class RooRealVar;
class RooArgList ;
class RooAddition : public RooAbsReal {
public:
RooAddition() ;
RooAddition(const char *name, const char *title, const RooArgSet& sumSet, Bool_t takeOwnerShip=kFALSE) ;
RooAddition(const char *name, const char *title, const RooArgList& sumSet1, const RooArgList& sumSet2, Bool_t takeOwnerShip=kFALSE) ;
virtual ~RooAddition() ;
RooAddition(const RooAddition& other, const char* name = 0);
virtual TObject* clone(const char* newname) const { return new RooAddition(*this, newname); }
virtual Double_t defaultErrorLevel() const ;
void printMetaArgs(ostream& os) const ;
const RooArgList& list1() const { return _set1 ; }
const RooArgList& list2() const { return _set2 ; }
protected:
RooArgList _ownedList ;
RooListProxy _set1 ;
RooListProxy _set2 ;
mutable TIterator* _setIter1 ;
mutable TIterator* _setIter2 ;
Double_t evaluate() const;
ClassDef(RooAddition,1)
};
#endif