GSI Object Oriented Online Offline (Go4) GO4-6.4.0
Loading...
Searching...
No Matches
TGo4ComAddTreeHistogram.cxx
Go to the documentation of this file.
1// $Id$
2//-----------------------------------------------------------------------
3// The GSI Online Offline Object Oriented (Go4) Project
4// Experiment Data Processing at EE department, GSI
5//-----------------------------------------------------------------------
6// Copyright (C) 2000- GSI Helmholtzzentrum fuer Schwerionenforschung GmbH
7// Planckstr. 1, 64291 Darmstadt, Germany
8// Contact: http://go4.gsi.de
9//-----------------------------------------------------------------------
10// This software can be used under the license agreements as stated
11// in Go4License.txt file which is part of the distribution.
12//-----------------------------------------------------------------------
13
15
16#include "TGo4Log.h"
18#include "TGo4AnalysisImp.h"
19#include "TGo4RemoteCommand.h"
20
22 TGo4AnalysisCommand("ANAddTreeHis","Add a tree histogram to dynamic list")
23{
24 GO4TRACE((12,"TGo4ComAddTreeHistogram::TGo4ComAddTreeHistogram() ctor",__LINE__, __FILE__));
26}
27
28TGo4ComAddTreeHistogram::TGo4ComAddTreeHistogram(const char *histogramname, const char *treename, const char *varexp, const char *cut) :
29 TGo4AnalysisCommand("ANAddTreeHis","Add a tree histogram to dynamic list")
30{
31 GO4TRACE((12,"TGo4ComAddTreeHistogram::TGo4ComAddTreeHistogram() ctor",__LINE__, __FILE__));
32 SetReceiverName("AnalysisClient"); // this command needs client as receiver
33 // to send back status message
35 SetHistogramName(histogramname);
36 SetTreeName(treename);
37 SetVarexp(varexp);
38 SetCut(cut);
39}
40
42{
43 if (!remcom)
44 return;
45 SetHistogramName(remcom->GetString(0));
46 SetTreeName(remcom->GetString(1));
47 SetVarexp(remcom->GetString(2));
48 SetCut(remcom->GetString(3));
49}
50
52{
53 GO4TRACE((12,"TGo4ComAddTreeHistogram::ExeCom()",__LINE__, __FILE__));
54
56 if (cli) {
58 if (ana) {
59 TString histo = fxHistoName;
60 if (histo.IsNull())
61 histo = "hTreeDraw";
62 Bool_t result = ana->AddTreeHistogram(histo.Data(), fxTreeName.Data(), fxVarexp.Data(), fxCut.Data());
63 if (result) {
65 1, kTRUE,
66 TString::Format("Added Dynamic histogram %s for tree %s.", fxHistoName.Data(), fxTreeName.Data()));
67 } else {
68 cli->SendStatusMessage(2, kTRUE,
69 TString::Format("Could not add Dynamic histogram %s for tree %s !!!",
70 fxHistoName.Data(), fxTreeName.Data()));
71 }
72 } else {
73 cli->SendStatusMessage(3, kTRUE, TString::Format(" %s ERROR no analysis ", GetName()));
74 }
75 } else {
76 GO4TRACE((11, "TGo4ComAddTreeHistogram::ExeCom() - no receiver specified ERROR!", __LINE__, __FILE__));
77 TGo4Log::Debug(" !!! ComAddTreeHistogram ''%s'': NO RECEIVER ERROR!!!", GetName());
78
79 return 1;
80 }
81
82 return -1;
83}
@ kGo4ComModeController
Definition TGo4Command.h:30
#define GO4TRACE(X)
Definition TGo4Log.h:25
void SendStatusMessage(Int_t level, Bool_t printout, const TString &text) override
Send message to gui.
The mother of all go4 analysis.
static TGo4Analysis * Instance()
return analysis instance
Bool_t AddTreeHistogram(const char *hisname, const char *treename, const char *varexp, const char *cutexp)
Add Histogram into the dynamic list which is linked to a tree.
void SetCut(const char *cut)
Set TCut to be applied on this tree histogram.
void SetHistogramName(const char *name)
Set histogram (dynamic entry) name.
void Set(TGo4RemoteCommand *remcon) override
Set internals of this command from specification of external remote command (command container).
TString fxVarexp
Variable expression defining what to draw in the histogram.
void SetTreeName(const char *name)
Set tree name.
TString fxTreeName
Name of Tree linked to that histogram.
Int_t ExeCom() override
Do the command action.
TString fxHistoName
Name of the histogram for dynamic list.
TString fxCut
String with cut expression.
void SetVarexp(const char *exp)
Set dynamic entry index name.
void SetProtection(Go4CommandMode_t m)
TGo4CommandReceiver * fxReceiverBase
void SetReceiverName(const char *)
static void Debug(const char *text,...) GO4_PRINTF_ARGS
User shortcut for message with prio 0.
Definition TGo4Log.cxx:281
This command is a container for commands to be send from master to slave via inter-process transport.
const char * GetString(Int_t i) const