Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RooMPSentinel.cxx
Go to the documentation of this file.
1/*****************************************************************************
2 * Project: RooFit *
3 * Package: RooFitCore *
4 * @(#)root/roofitcore:$Id$
5 * Authors: *
6 * WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu *
7 * DK, David Kirkby, UC Irvine, dkirkby@uci.edu *
8 * *
9 * Copyright (c) 2000-2005, Regents of the University of California *
10 * and Stanford University. All rights reserved. *
11 * *
12 * Redistribution and use in source and binary forms, *
13 * with or without modification, are permitted according to the terms *
14 * listed in LICENSE (http://roofit.sourceforge.net/license.txt) *
15 *****************************************************************************/
16
17/**
18\file RooMPSentinel.cxx
19\class RooMPSentinel
20\ingroup Roofitcore
21
22RooMPSentinel is a singleton class that keeps track of all
23parellel execution processes for goodness-of-fit calculations.
24The primary task of RooMPSentinel is to terminate all server processes
25when the main ROOT process is exiting.
26**/
27
28
29#include "RooFit.h"
30
31#include "RooMPSentinel.h"
32#include "RooRealMPFE.h"
33
34using namespace std;
35
37 ;
38
39
40////////////////////////////////////////////////////////////////////////////////
41/// Constructor
42
44{
45}
46
47
48
49////////////////////////////////////////////////////////////////////////////////
50/// Destructor. Terminate all parallel processes still registered with
51/// the sentinel
52
54{
56 RooRealMPFE* mpfe ;
57 while((mpfe=(RooRealMPFE*)iter->Next())) {
58 mpfe->standby() ;
59 }
60 delete iter ;
61}
62
63
64
65////////////////////////////////////////////////////////////////////////////////
66/// Register given multi-processor front-end object with the sentinel
67
69{
70 _mpfeSet.add(mpfe,kTRUE) ;
71}
72
73
74
75////////////////////////////////////////////////////////////////////////////////
76/// Remove given multi-processor front-end object from the sentinel
77
79{
80 _mpfeSet.remove(mpfe,kTRUE) ;
81}
const Bool_t kTRUE
Definition RtypesCore.h:91
#define ClassImp(name)
Definition Rtypes.h:364
virtual Bool_t remove(const RooAbsArg &var, Bool_t silent=kFALSE, Bool_t matchByNameOnly=kFALSE)
Remove the specified argument from our list.
TIterator * createIterator(Bool_t dir=kIterForward) const
TIterator-style iteration over contained elements.
Bool_t add(const RooAbsArg &var, Bool_t silent=kFALSE) override
Add element to non-owning set.
RooMPSentinel is a singleton class that keeps track of all parellel execution processes for goodness-...
void remove(RooRealMPFE &mpfe)
Remove given multi-processor front-end object from the sentinel.
RooArgSet _mpfeSet
void add(RooRealMPFE &mpfe)
Register given multi-processor front-end object with the sentinel.
RooMPSentinel()
Constructor.
virtual ~RooMPSentinel()
Destructor.
RooRealMPFE is the multi-processor front-end for parallel calculation of RooAbsReal objects.
Definition RooRealMPFE.h:30
void standby()
Terminate remote server process and return front-end class to standby mode.
Iterator abstract base class.
Definition TIterator.h:30
virtual TObject * Next()=0