28 namespace RooFit {
class BidirMMapPipe; }
30 class RooRealMPFE :
public RooAbsReal {
33 RooRealMPFE(
const char *name,
const char *title, RooAbsReal& arg, Bool_t calcInline=kFALSE) ;
34 RooRealMPFE(
const RooRealMPFE& other,
const char* name=0);
35 virtual TObject* clone(
const char* newname)
const {
return new RooRealMPFE(*
this,newname); }
36 virtual ~RooRealMPFE();
38 void calculate()
const ;
39 virtual Double_t getValV(
const RooArgSet* nset=0)
const ;
42 void setVerbose(Bool_t clientFlag=kTRUE, Bool_t serverFlag=kTRUE) ;
44 void applyNLLWeightSquared(Bool_t flag) ;
46 void enableOffsetting(Bool_t flag) ;
48 void followAsSlave(RooRealMPFE& master) { _updateMaster = &master ; }
53 virtual Double_t evaluate()
const ;
54 friend class RooAbsTestStatistic ;
55 virtual void constOptimizeTestStatistic(ConstOpCode opcode, Bool_t doAlsoTracking=kTRUE) ;
56 virtual Double_t getCarry()
const;
58 enum State { Initialize,Client,Server,Inline } ;
61 enum Message { SendReal=0, SendCat, Calculate, Retrieve, ReturnValue, Terminate,
62 ConstOpt, Verbose, LogEvalError, ApplyNLLW2, EnableOffset, CalculateNoOffset } ;
68 void doApplyNLLW2(Bool_t flag) ;
72 RooArgList _saveVars ;
73 mutable Bool_t _calcInProgress ;
74 Bool_t _verboseClient ;
75 Bool_t _verboseServer ;
77 mutable Bool_t _forceCalc ;
78 mutable RooAbsReal::ErrorLoggingMode _remoteEvalErrorLoggingState ;
80 RooFit::BidirMMapPipe *_pipe;
82 mutable std::vector<Bool_t> _valueChanged ;
83 mutable std::vector<Bool_t> _constChanged ;
84 RooRealMPFE* _updateMaster ;
85 mutable Bool_t _retrieveDispatched ;
86 mutable Double_t _evalCarry;
88 static RooMPSentinel _sentinel ;
90 ClassDef(RooRealMPFE,2)