Logo ROOT   6.08/07
Reference Guide
TProofPlayer.h
Go to the documentation of this file.
1 // @(#)root/proofplayer:$Id$
2 // Author: Maarten Ballintijn 07/01/02
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2001, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TProofPlayer
13 #define ROOT_TProofPlayer
14 
15 
16 //////////////////////////////////////////////////////////////////////////
17 // //
18 // TProofPlayer //
19 // //
20 // This internal class and its subclasses steer the processing in PROOF.//
21 // Instances of the TProofPlayer class are created on the worker nodes //
22 // per session and do the processing. //
23 // Instances of its subclass - TProofPlayerRemote are created per each //
24 // query on the master(s) and on the client. On the master(s), //
25 // TProofPlayerRemote coordinate processing, check the dataset, create //
26 // the packetizer and take care of merging the results of the workers. //
27 // The instance on the client collects information on the input //
28 // (dataset and selector), it invokes the Begin() method and finalizes //
29 // the query by calling Terminate(). //
30 // //
31 //////////////////////////////////////////////////////////////////////////
32 
33 #ifndef ROOT_TVirtualProofPlayer
34 #include "TVirtualProofPlayer.h"
35 #endif
36 #ifndef ROOT_TArrayL64
37 #include "TArrayL64.h"
38 #endif
39 #ifndef ROOT_TArrayF
40 #include "TArrayF.h"
41 #endif
42 #ifndef ROOT_TArrayI
43 #include "TArrayI.h"
44 #endif
45 #ifndef ROOT_TList
46 #include "TList.h"
47 #endif
48 #ifndef ROOT_TSystem
49 #include "TSystem.h"
50 #endif
51 #ifndef ROOT_TQueryResult
52 #include "TQueryResult.h"
53 #endif
54 #ifndef ROOT_TProofProgressStatus
55 #include "TProofProgressStatus.h"
56 #endif
57 #ifndef ROOT_TError
58 #include "TError.h"
59 #endif
60 
61 #include <mutex>
62 
63 class TSelector;
64 class TSocket;
65 class TVirtualPacketizer;
66 class TSlave;
67 class TEventIter;
68 class TProofStats;
69 class TStatus;
70 class TTimer;
71 class THashList;
72 class TH1;
73 class TFile;
74 class TStopwatch;
75 
76 //------------------------------------------------------------------------
77 
79 
80 private:
81  TList *fAutoBins; // Map of min/max values by name for slaves
82 
83 protected:
84  TList *fInput; //-> list with input objects
85  THashList *fOutput; // list with output objects
86  TSelector *fSelector; //! the latest selector
87  Bool_t fCreateSelObj; //! kTRUE when fSelector has been created locally
88  TClass *fSelectorClass; //! class of the latest selector
89  TTimer *fFeedbackTimer; //! timer for sending intermediate results
90  Long_t fFeedbackPeriod; //! period (ms) for sending intermediate results
91  TEventIter *fEvIter; //! iterator on events or objects
92  TStatus *fSelStatus; //! status of query in progress
93  EExitStatus fExitStatus; // exit status
94  Long64_t fTotalEvents; // number of events requested
95  TProofProgressStatus *fProgressStatus; // the progress status object;
96 
97  Long64_t fReadBytesRun; //! Bytes read in this run
98  Long64_t fReadCallsRun; //! Read calls in this run
99  Long64_t fProcessedRun; //! Events processed in this run
100 
101  TList *fQueryResults; //List of TQueryResult
102  TQueryResult *fQuery; //Instance of TQueryResult currently processed
103  TQueryResult *fPreviousQuery; //Previous instance of TQueryResult processed
104  Int_t fDrawQueries; //Number of Draw queries in the list
105  Int_t fMaxDrawQueries; //Max number of Draw queries kept
106 
107  TTimer *fStopTimer; //Timer associated with a stop request
108  std::mutex fStopTimerMtx; //To protect the stop timer
109 
110  TTimer *fDispatchTimer; //Dispatch pending events while processing
111 
112  TTimer *fProcTimeTimer; //Notifies reaching of allowed max proc time
113  TStopwatch *fProcTime; //Packet proc time
114 
115  TString fOutputFilePath; //Path to file with (partial) results of the query
116  TFile *fOutputFile; //TFile object attached to fOutputFilePath
117  Long_t fSaveMemThreshold; //Threshold for saving output to file
118  Bool_t fSavePartialResults; //Whether to save the partial results
119  Bool_t fSaveResultsPerPacket; //Whether to save partial results after each packet
120 
121  static THashList *fgDrawInputPars; // List of input parameters to be kept on drawing actions
122 
123  void *GetSender() { return this; } //used to set gTQSender
124 
125  virtual Int_t DrawCanvas(TObject *obj); // Canvas drawing via libProofDraw
126 
127  virtual void SetupFeedback(); // specialized setup
128 
129  virtual void MergeOutput(Bool_t savememvalues = kFALSE);
130 
131 public: // fix for broken compilers so TCleanup can call StopFeedback()
132  virtual void StopFeedback(); // specialized teardown
133 
134 protected:
135  class TCleanup {
136  private:
138  public:
139  TCleanup(TProofPlayer *p) : fPlayer(p) { }
140  ~TCleanup() { fPlayer->StopFeedback(); }
141  };
142 
143  Int_t AssertSelector(const char *selector_file);
144  Bool_t CheckMemUsage(Long64_t &mfreq, Bool_t &w80r, Bool_t &w80v, TString &wmsg);
145 
146  void MapOutputListToDataMembers() const;
147 
148 public:
151 
152  TProofPlayer(TProof *proof = 0);
153  virtual ~TProofPlayer();
154 
155  Long64_t Process(TDSet *set,
156  const char *selector, Option_t *option = "",
157  Long64_t nentries = -1, Long64_t firstentry = 0);
158  Long64_t Process(TDSet *set,
159  TSelector *selector, Option_t *option = "",
160  Long64_t nentries = -1, Long64_t firstentry = 0);
161  virtual Bool_t JoinProcess(TList *workers);
162  TVirtualPacketizer *GetPacketizer() const { return 0; }
163  Long64_t Finalize(Bool_t force = kFALSE, Bool_t sync = kFALSE);
165  Long64_t DrawSelect(TDSet *set, const char *varexp,
166  const char *selection, Option_t *option = "",
167  Long64_t nentries = -1, Long64_t firstentry = 0);
168  Int_t GetDrawArgs(const char *var, const char *sel, Option_t *opt,
169  TString &selector, TString &objname);
170  void HandleGetTreeHeader(TMessage *mess);
171  void HandleRecvHisto(TMessage *mess);
172  void FeedBackCanvas(const char *name, Bool_t create);
173 
174  void StopProcess(Bool_t abort, Int_t timeout = -1);
175  void AddInput(TObject *inp);
176  void ClearInput();
177  TObject *GetOutput(const char *name) const;
178  TList *GetOutputList() const;
179  TList *GetInputList() const { return fInput; }
180  TList *GetListOfResults() const { return fQueryResults; }
182  TQueryResult *GetCurrentQuery() const { return fQuery; }
183  TQueryResult *GetQueryResult(const char *ref);
184  void RemoveQueryResult(const char *ref);
185  void SetCurrentQuery(TQueryResult *q);
186  void SetMaxDrawQueries(Int_t max) { fMaxDrawQueries = max; }
189  void AddOutput(TList *out); // Incorporate a list
190  void StoreOutput(TList *out); // Adopts the list
191  void StoreFeedback(TObject *slave, TList *out); // Adopts the list
192  void Progress(Long64_t total, Long64_t processed); // *SIGNAL*
193  void Progress(TSlave *, Long64_t total, Long64_t processed)
194  { Progress(total, processed); }
195  void Progress(Long64_t total, Long64_t processed, Long64_t bytesread,
196  Float_t initTime, Float_t procTime,
197  Float_t evtrti, Float_t mbrti); // *SIGNAL*
198  void Progress(TSlave *, Long64_t total, Long64_t processed, Long64_t bytesread,
199  Float_t initTime, Float_t procTime,
200  Float_t evtrti, Float_t mbrti)
201  { Progress(total, processed, bytesread, initTime, procTime,
202  evtrti, mbrti); } // *SIGNAL*
203  void Progress(TProofProgressInfo *pi); // *SIGNAL*
204  void Progress(TSlave *, TProofProgressInfo *pi) { Progress(pi); } // *SIGNAL*
205  void Feedback(TList *objs); // *SIGNAL*
206 
210 
212 
214 
215  void UpdateAutoBin(const char *name,
218  Double_t& zmin, Double_t& zmax);
219 
220  Bool_t IsClient() const { return kFALSE; }
221 
222  void SetExitStatus(EExitStatus st) { fExitStatus = st; }
224  Long64_t GetEventsProcessed() const { return fProgressStatus->GetEntries(); }
225  void AddEventsProcessed(Long64_t ev) { fProgressStatus->IncEntries(ev); }
226 
227  void SetDispatchTimer(Bool_t on = kTRUE);
228  void SetStopTimer(Bool_t on = kTRUE,
229  Bool_t abort = kFALSE, Int_t timeout = 0);
230 
231  virtual void SetInitTime() { }
232 
233  virtual void SetMerging(Bool_t = kTRUE) { }
234 
237 
238  void SetOutputFilePath(const char *fp) { fOutputFilePath = fp; }
239  Int_t SavePartialResults(Bool_t queryend = kFALSE, Bool_t force = kFALSE);
240 
241  void SetProcessing(Bool_t on = kTRUE);
243 
244  void UpdateProgressInfo();
245 
246  ClassDef(TProofPlayer,0) // Basic PROOF player
247 };
248 
249 
250 //------------------------------------------------------------------------
251 
253 
254 private:
256 
257 protected:
258  void SetupFeedback() { }
259  void StopFeedback() { }
260 
261 public:
262  TProofPlayerLocal(Bool_t client = kTRUE) : fIsClient(client) { }
263  virtual ~TProofPlayerLocal() { }
264 
265  Bool_t IsClient() const { return fIsClient; }
266  Long64_t Process(const char *selector, Long64_t nentries = -1, Option_t *option = "");
267  Long64_t Process(TSelector *selector, Long64_t nentries = -1, Option_t *option = "");
269  const char *selector, Option_t *option = "",
270  Long64_t nentries = -1, Long64_t firstentry = 0) {
271  return TProofPlayer::Process(set, selector, option, nentries, firstentry); }
273  TSelector *selector, Option_t *option = "",
274  Long64_t nentries = -1, Long64_t firstentry = 0) {
275  return TProofPlayer::Process(set, selector, option, nentries, firstentry); }
276  ClassDef(TProofPlayerLocal,0) // PROOF player running on client
277 };
278 
279 
280 //------------------------------------------------------------------------
281 
282 //////////////////////////////////////////////////////////////////////////
283 // //
284 // TProofPlayerRemote //
285 // //
286 // Instances of TProofPlayerRemote are created per each query on the //
287 // master(s) and on the client. On the master(s), TProofPlayerRemote //
288 // coordinate processing, check the dataset, create the packetizer //
289 // and take care of merging the results of the workers. //
290 // The instance on the client collects information on the input //
291 // (dataset and selector), it invokes the Begin() method and finalizes //
292 // the query by calling Terminate(). //
293 // //
294 //////////////////////////////////////////////////////////////////////////
295 
296 
298 
299 protected:
300  TProof *fProof; // link to associated PROOF session
301  TList *fOutputLists; // results returned by slaves
302  TList *fFeedback; // reference for use on master
303  TList *fFeedbackLists; // intermediate results
304  TVirtualPacketizer *fPacketizer; // transform TDSet into packets for slaves
305  Bool_t fMergeFiles; // is True when merging output files centrally is needed
306  TDSet *fDSet; //!tdset for current processing
307  ErrorHandlerFunc_t fErrorHandler; // Store previous handler when redirecting output
308  Bool_t fMergeTH1OneByOne; // If kTRUE forces TH1 merge one-by-one [kTRUE]
309  TH1 *fProcPackets; //!Histogram with packets being processed (owned by TPerfStats)
310  TMessage *fProcessMessage; // Process message to replay when adding new workers dynamically
311  TString fSelectorFileName; // Current Selector's name, set by Process()
312 
313  TStopwatch *fMergeSTW; // Merging stop watch
314  Int_t fNumMergers; // Number of submergers
315 
316  virtual Bool_t HandleTimer(TTimer *timer);
317  Int_t InitPacketizer(TDSet *dset, Long64_t nentries,
318  Long64_t first, const char *defpackunit,
319  const char *defpackdata);
320  TList *MergeFeedback();
321  Bool_t MergeOutputFiles();
322  void NotifyMemory(TObject *obj);
323  void SetLastMergingMsg(TObject *obj);
324  virtual Bool_t SendSelector(const char *selector_file); //send selector to slaves
325  TProof *GetProof() const { return fProof; }
326  void SetupFeedback(); // specialized setup
327  void StopFeedback(); // specialized teardown
328  void SetSelectorDataMembersFromOutputList();
329 
330 public:
331  TProofPlayerRemote(TProof *proof = 0) : fProof(proof), fOutputLists(0), fFeedback(0),
332  fFeedbackLists(0), fPacketizer(0),
333  fMergeFiles(kFALSE), fDSet(0), fErrorHandler(0),
334  fMergeTH1OneByOne(kTRUE), fProcPackets(0),
335  fProcessMessage(0), fMergeSTW(0), fNumMergers(0)
337  virtual ~TProofPlayerRemote(); // Owns the fOutput list
338  virtual Long64_t Process(TDSet *set, const char *selector,
339  Option_t *option = "", Long64_t nentries = -1,
340  Long64_t firstentry = 0);
341  virtual Long64_t Process(TDSet *set, TSelector *selector,
342  Option_t *option = "", Long64_t nentries = -1,
343  Long64_t firstentry = 0);
344  virtual Bool_t JoinProcess(TList *workers);
345  virtual Long64_t Finalize(Bool_t force = kFALSE, Bool_t sync = kFALSE);
346  virtual Long64_t Finalize(TQueryResult *qr);
347  Long64_t DrawSelect(TDSet *set, const char *varexp,
348  const char *selection, Option_t *option = "",
349  Long64_t nentries = -1, Long64_t firstentry = 0);
350 
351  void RedirectOutput(Bool_t on = kTRUE);
352  void StopProcess(Bool_t abort, Int_t timeout = -1);
353  void StoreOutput(TList *out); // Adopts the list
354  virtual void StoreFeedback(TObject *slave, TList *out); // Adopts the list
355  Int_t Incorporate(TObject *obj, TList *out, Bool_t &merged);
356  TObject *HandleHistogram(TObject *obj, Bool_t &merged);
357  Bool_t HistoSameAxis(TH1 *h0, TH1 *h1);
359  void AddOutput(TList *out); // Incorporate a list
360  virtual void MergeOutput(Bool_t savememvalues = kFALSE);
361  void Progress(Long64_t total, Long64_t processed); // *SIGNAL*
362  void Progress(TSlave*, Long64_t total, Long64_t processed)
363  { Progress(total, processed); }
364  void Progress(Long64_t total, Long64_t processed, Long64_t bytesread,
365  Float_t initTime, Float_t procTime,
366  Float_t evtrti, Float_t mbrti); // *SIGNAL*
367  void Progress(TSlave *, Long64_t total, Long64_t processed, Long64_t bytesread,
368  Float_t initTime, Float_t procTime,
369  Float_t evtrti, Float_t mbrti)
370  { Progress(total, processed, bytesread, initTime, procTime,
371  evtrti, mbrti); } // *SIGNAL*
372  void Progress(TProofProgressInfo *pi); // *SIGNAL*
373  void Progress(TSlave *, TProofProgressInfo *pi) { Progress(pi); } // *SIGNAL*
374  void Feedback(TList *objs); // *SIGNAL*
376  TVirtualPacketizer *GetPacketizer() const { return fPacketizer; }
377 
378  Bool_t IsClient() const;
379 
380  void SetInitTime();
381 
382  void SetMerging(Bool_t on = kTRUE);
383 
384  ClassDef(TProofPlayerRemote,0) // PROOF player running on master server
385 };
386 
387 
388 //------------------------------------------------------------------------
389 
391 
392 private:
394  TList *fFeedback; // List of objects to send updates of
395 
397 
398 protected:
399  void SetupFeedback();
400  void StopFeedback();
401 
402 public:
403  TProofPlayerSlave(TSocket *socket = 0) : fSocket(socket), fFeedback(0) { }
404 
405  void HandleGetTreeHeader(TMessage *mess);
406 
407  ClassDef(TProofPlayerSlave,0) // PROOF player running on slave server
408 };
409 
410 
411 //------------------------------------------------------------------------
412 
414 
415 private:
428 
429 protected:
431  void SetupFeedback();
432 
433 public:
435  TProofPlayerRemote(proof), fReturnFeedback(kFALSE) { }
437 
438  Long64_t Process(TDSet *set, const char *selector,
439  Option_t *option = "", Long64_t nentries = -1,
440  Long64_t firstentry = 0);
441  Long64_t Process(TDSet *set, TSelector *selector,
442  Option_t *option = "", Long64_t nentries = -1,
443  Long64_t firstentry = 0)
444  { return TProofPlayerRemote::Process(set, selector, option,
445  nentries, firstentry); }
446  void Progress(Long64_t total, Long64_t processed)
447  { TProofPlayerRemote::Progress(total, processed); }
448  void Progress(Long64_t total, Long64_t processed, Long64_t bytesread,
449  Float_t initTime, Float_t procTime,
450  Float_t evtrti, Float_t mbrti)
451  { TProofPlayerRemote::Progress(total, processed, bytesread,
452  initTime, procTime, evtrti, mbrti); }
454  void Progress(TSlave *sl, Long64_t total, Long64_t processed);
455  void Progress(TSlave *sl, Long64_t total, Long64_t processed, Long64_t bytesread,
456  Float_t initTime, Float_t procTime,
457  Float_t evtrti, Float_t mbrti);
458  void Progress(TSlave *sl, TProofProgressInfo *pi);
459 
460  ClassDef(TProofPlayerSuperMaster,0) // PROOF player running on super master
461 };
462 
463 #endif
virtual void SetMerging(Bool_t=kTRUE)
Definition: TProofPlayer.h:233
TCleanup(TProofPlayer *p)
Definition: TProofPlayer.h:139
TProof * GetProof() const
Definition: TProofPlayer.h:325
TProofProgressStatus * fProgressStatus
Definition: TProofPlayer.h:95
TProofPlayerSuperMaster(TProof *proof=0)
Definition: TProofPlayer.h:434
virtual ~TProofPlayerSuperMaster()
Definition: TProofPlayer.h:436
float xmin
Definition: THbookFile.cxx:93
Internal class steering processing in PROOF.
Definition: TProofPlayer.h:78
long long Long64_t
Definition: RtypesCore.h:69
EExitStatus fExitStatus
status of query in progress
Definition: TProofPlayer.h:93
Int_t AssertSelector(const char *selector_file)
Make sure that a valid selector object Return -1 in case of problems, 0 otherwise.
void StoreOutput(TList *out)
Store output list (may not be used in this class).
TQueryResult * GetCurrentQuery() const
Definition: TProofPlayer.h:182
Int_t GetLearnEntries()
Return the number of entries in the learning phase.
virtual ~TProofPlayerLocal()
Definition: TProofPlayer.h:263
Long_t fFeedbackPeriod
timer for sending intermediate results
Definition: TProofPlayer.h:90
const double pi
float Float_t
Definition: RtypesCore.h:53
const char Option_t
Definition: RtypesCore.h:62
float ymin
Definition: THbookFile.cxx:93
TQueryResult * GetQueryResult(const char *ref)
Get query result instances referenced &#39;ref&#39; from the list of results.
virtual Bool_t JoinProcess(TList *workers)
Not implemented: meaningful only in the remote player. Returns kFALSE.
Bool_t CheckMemUsage(Long64_t &mfreq, Bool_t &w80r, Bool_t &w80v, TString &wmsg)
Check the memory usage, if requested.
This class implements a data set to be used for PROOF processing.
Definition: TDSet.h:153
Bool_t fSaveResultsPerPacket
Definition: TProofPlayer.h:119
TProofPlayer(TProof *proof=0)
Default ctor.
#define BIT(n)
Definition: Rtypes.h:120
TQueryResult * fPreviousQuery
Definition: TProofPlayer.h:103
void AddOutput(TList *out)
Incorporate output list (may not be used in this class).
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format...
Definition: TFile.h:50
TString fSelectorFileName
Definition: TProofPlayer.h:311
Long64_t GetEventsProcessed() const
Definition: TProofPlayer.h:224
void RemoveQueryResult(const char *ref)
Remove all query result instances referenced &#39;ref&#39; from the list of results.
TTimer * fProcTimeTimer
Definition: TProofPlayer.h:112
Basic string class.
Definition: TString.h:137
void Progress(TSlave *, TProofProgressInfo *pi)
Definition: TProofPlayer.h:373
Array of floats (32 bits per element).
Definition: TArrayF.h:29
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
const Bool_t kFALSE
Definition: Rtypes.h:92
Bool_t IsClient() const
Definition: TProofPlayer.h:265
Bool_t IsClient() const
Definition: TProofPlayer.h:220
Long64_t GetEntries() const
TQueryResult * fQuery
Definition: TProofPlayer.h:102
void SetDispatchTimer(Bool_t on=kTRUE)
Enable/disable the timer to dispatch pening events while processing.
Array of integers (32 bits per element).
Definition: TArrayI.h:29
TList * GetOutputList() const
Get output list.
Int_t SavePartialResults(Bool_t queryend=kFALSE, Bool_t force=kFALSE)
Save the partial results of this query to a dedicated file under the user data directory.
TList * fInput
Definition: TProofPlayer.h:84
TMessage * fProcessMessage
Histogram with packets being processed (owned by TPerfStats)
Definition: TProofPlayer.h:310
TList * fAutoBins
Definition: TProofPlayer.h:81
void SetStopTimer(Bool_t on=kTRUE, Bool_t abort=kFALSE, Int_t timeout=0)
Enable/disable the timer to stop/abort processing.
Manages an element of a TDSet.
Definition: TDSet.h:68
TProofProgressStatus * GetProgressStatus() const
Definition: TProofPlayer.h:242
TStopwatch timer
Definition: pirndm.C:37
TProofPlayerSlave(TSocket *socket=0)
Definition: TProofPlayer.h:403
void Progress(TSlave *, Long64_t total, Long64_t processed)
Definition: TProofPlayer.h:193
#define ClassDef(name, id)
Definition: Rtypes.h:254
TList * GetInputList() const
Definition: TProofPlayer.h:179
void AddEventsProcessed(Long64_t ev)
Definition: TProofPlayer.h:225
Long64_t fReadBytesRun
Definition: TProofPlayer.h:97
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
Definition: THashList.h:36
TEventIter * fEvIter
period (ms) for sending intermediate results
Definition: TProofPlayer.h:91
This class holds the status of an ongoing operation and collects error messages.
Definition: TStatus.h:39
void * GetSender()
Definition: TProofPlayer.h:123
void IncEntries(Long64_t entries=1)
void AddQueryResult(TQueryResult *q)
Add query result to the list, making sure that there are no duplicates.
virtual Bool_t HandleTimer(TTimer *timer)
Execute action in response of a timer timing out.
Definition: TObject.cxx:470
void DeleteDrawFeedback(TDrawFeedback *f)
Delete draw feedback object.
void Progress(TSlave *, Long64_t total, Long64_t processed)
Definition: TProofPlayer.h:362
void SetDrawFeedbackOption(TDrawFeedback *f, Option_t *opt)
Set draw feedback option.
TList * GetListOfResults() const
Definition: TProofPlayer.h:180
Long64_t fProcessedRun
Read calls in this run.
Definition: TProofPlayer.h:99
virtual Long64_t Process(TDSet *set, const char *selector, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)
Process specified TDSet on PROOF.
Int_t fMaxDrawQueries
Definition: TProofPlayer.h:105
virtual void SetupFeedback()
Set up feedback (may not be used in this class).
TClass * fSelectorClass
kTRUE when fSelector has been created locally
Definition: TProofPlayer.h:88
void Progress(TSlave *, Long64_t total, Long64_t processed, Long64_t bytesread, Float_t initTime, Float_t procTime, Float_t evtrti, Float_t mbrti)
Definition: TProofPlayer.h:198
void SetCurrentQuery(TQueryResult *q)
Set current query and save previous value.
TH1F * h1
Definition: legend1.C:5
void SetupFeedback()
Set up feedback (may not be used in this class).
Definition: TProofPlayer.h:258
A container class for query results.
Definition: TQueryResult.h:44
THashList * fOutput
Definition: TProofPlayer.h:85
TTimer * fFeedbackTimer
class of the latest selector
Definition: TProofPlayer.h:89
void SetOutputFilePath(const char *fp)
Definition: TProofPlayer.h:238
A doubly linked list.
Definition: TList.h:47
TProofPlayerLocal(Bool_t client=kTRUE)
Definition: TProofPlayer.h:262
TStopwatch * fProcTime
Definition: TProofPlayer.h:113
void ClearInput()
Clear input list.
void UpdateAutoBin(const char *name, Double_t &xmin, Double_t &xmax, Double_t &ymin, Double_t &ymax, Double_t &zmin, Double_t &zmax)
Update automatic binning parameters for given object "name".
void HandleGetTreeHeader(TMessage *mess)
Handle tree header request.
void Progress(TProofProgressInfo *pi)
Progress signal.
Definition: TProofPlayer.h:453
float ymax
Definition: THbookFile.cxx:93
TDSetElement * GetNextPacket(TSlave *slave, TMessage *r)
Get next packet (may not be used in this class).
TRandom2 r(17)
TObject * GetOutput(const char *name) const
Get output object by name.
Long64_t Process(TDSet *set, const char *selector, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)
Process specified TDSet on PROOF worker.
Definition: TProofPlayer.h:268
Long64_t fReadCallsRun
Bytes read in this run.
Definition: TProofPlayer.h:98
void AddInput(TObject *inp)
Add object to input list.
virtual void StopFeedback()
Stop feedback (may not be used in this class).
Long_t fSaveMemThreshold
Definition: TProofPlayer.h:117
Long64_t Process(TDSet *set, const char *selector, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)
Process specified TDSet on PROOF worker.
virtual void SetInitTime()
Definition: TProofPlayer.h:231
Special iterator class used in TProofPlayer to iterate over events or objects in the packets...
Definition: TEventIter.h:46
Handles synchronous and a-synchronous timer events.
Definition: TTimer.h:57
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:81
float xmax
Definition: THbookFile.cxx:93
Int_t ReinitSelector(TQueryResult *qr)
Reinitialize fSelector using the selector files in the query result.
void HandleRecvHisto(TMessage *mess)
Receive histo from slave.
TList * fQueryResults
Events processed in this run.
Definition: TProofPlayer.h:101
Long64_t Finalize(Bool_t force=kFALSE, Bool_t sync=kFALSE)
Finalize query (may not be used in this class).
TStatus * fSelStatus
iterator on events or objects
Definition: TProofPlayer.h:92
void FeedBackCanvas(const char *name, Bool_t create)
Create/destroy a named canvas for feedback.
void Progress(TSlave *, Long64_t total, Long64_t processed, Long64_t bytesread, Float_t initTime, Float_t procTime, Float_t evtrti, Float_t mbrti)
Definition: TProofPlayer.h:367
void MapOutputListToDataMembers() const
void UpdateProgressInfo()
Update fProgressStatus.
static unsigned int total
long Long_t
Definition: RtypesCore.h:50
void SetMaxDrawQueries(Int_t max)
Definition: TProofPlayer.h:186
The packetizer is a load balancing object created for each query.
TString fOutputFilePath
Definition: TProofPlayer.h:115
TFile * fOutputFile
Definition: TProofPlayer.h:116
virtual void MergeOutput(Bool_t savememvalues=kFALSE)
Merge output (may not be used in this class).
Long64_t Process(TDSet *set, TSelector *selector, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)
Process specified TDSet on PROOF worker with TSelector object The return value is -1 in case of error...
Definition: TProofPlayer.h:272
void RestorePreviousQuery()
Definition: TProofPlayer.h:187
double f(double x)
TSelector * fSelector
Definition: TProofPlayer.h:86
void StopFeedback()
Stop feedback (may not be used in this class).
Definition: TProofPlayer.h:259
double Double_t
Definition: RtypesCore.h:55
TTimer * fDispatchTimer
Definition: TProofPlayer.h:110
EStatusBits
Definition: TObject.h:55
This class controls a Parallel ROOT Facility, PROOF, cluster.
Definition: TProof.h:346
static THashList * fgDrawInputPars
Definition: TProofPlayer.h:121
int nentries
Definition: THbookFile.cxx:89
ErrorHandlerFunc_t fErrorHandler
tdset for current processing
Definition: TProofPlayer.h:307
void(* ErrorHandlerFunc_t)(int level, Bool_t abort, const char *location, const char *msg)
Definition: TError.h:48
The TH1 histogram class.
Definition: TH1.h:80
Long64_t DrawSelect(TDSet *set, const char *varexp, const char *selection, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)
Draw (may not be used in this class).
virtual Int_t DrawCanvas(TObject *obj)
Draw the object if it is a canvas.
Mother of all ROOT objects.
Definition: TObject.h:37
void Progress(Long64_t total, Long64_t processed)
Report progress (may not be used in this class).
Int_t AddOutputObject(TObject *obj)
Incorporate output object (may not be used in this class).
TProofPlayer * fPlayer
Definition: TProofPlayer.h:137
Utility class to draw objects in the feedback list during queries.
Definition: TDrawFeedback.h:39
void Progress(Long64_t total, Long64_t processed)
Progress signal.
Definition: TProofPlayer.h:446
Array of long64s (64 bits per element).
Definition: TArrayL64.h:29
TVirtualPacketizer * GetPacketizer() const
Definition: TProofPlayer.h:376
void StopProcess(Bool_t abort, Int_t timeout=-1)
Stop the process after this event.
TVirtualPacketizer * fPacketizer
Definition: TProofPlayer.h:304
Int_t GetDrawArgs(const char *var, const char *sel, Option_t *opt, TString &selector, TString &objname)
Parse the arguments from var, sel and opt and fill the selector and object name accordingly.
Long64_t Process(TDSet *set, TSelector *selector, Option_t *option="", Long64_t nentries=-1, Long64_t firstentry=0)
Process specified TDSet on PROOF.
Definition: TProofPlayer.h:441
Long64_t fTotalEvents
Definition: TProofPlayer.h:94
void StoreFeedback(TObject *slave, TList *out)
Store feedback list (may not be used in this class).
Long64_t GetCacheSize()
Return the size in bytes of the cache.
std::mutex fStopTimerMtx
Definition: TProofPlayer.h:108
Bool_t fCreateSelObj
the latest selector
Definition: TProofPlayer.h:87
Abstract interface for the PROOF player.
Definition: first.py:1
Int_t fDrawQueries
Definition: TProofPlayer.h:104
Class describing a PROOF worker server.
Definition: TSlave.h:50
Container class for processing statistics.
A TSelector object is used by the TTree::Draw, TTree::Scan, TTree::Process to navigate in a TTree and...
Definition: TSelector.h:39
const Bool_t kTRUE
Definition: Rtypes.h:91
float * q
Definition: THbookFile.cxx:87
TVirtualPacketizer * GetPacketizer() const
Definition: TProofPlayer.h:162
void Progress(TSlave *, TProofProgressInfo *pi)
Definition: TProofPlayer.h:204
TProofPlayerRemote(TProof *proof=0)
Definition: TProofPlayer.h:331
char name[80]
Definition: TGX11.cxx:109
TStopwatch * fMergeSTW
Definition: TProofPlayer.h:313
void SetProcessing(Bool_t on=kTRUE)
Set processing bit according to &#39;on&#39;.
void Progress(Long64_t total, Long64_t processed)
Progress signal.
virtual ~TProofPlayer()
Destructor.
TTimer * fStopTimer
Definition: TProofPlayer.h:107
void Progress(Long64_t total, Long64_t processed, Long64_t bytesread, Float_t initTime, Float_t procTime, Float_t evtrti, Float_t mbrti)
Progress signal.
Definition: TProofPlayer.h:448
EExitStatus GetExitStatus() const
Definition: TProofPlayer.h:223
void Feedback(TList *objs)
Set feedback list (may not be used in this class).
void SetExitStatus(EExitStatus st)
Definition: TProofPlayer.h:222
TDrawFeedback * CreateDrawFeedback(TProof *p)
Draw feedback creation proxy.
Bool_t fSavePartialResults
Definition: TProofPlayer.h:118
Stopwatch class.
Definition: TStopwatch.h:30