GSI Object Oriented Online Offline (Go4)  GO4-6.2.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
TGo4MacroDialog.cpp
Go to the documentation of this file.
1 // $Id: TGo4MacroDialog.cpp 3126 2021-03-30 09:04:24Z linev $
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 
14 #include "TGo4MacroDialog.h"
15 
17  : QDialog( parent )
18 {
19  setObjectName("Go4MacroDialog");
20  setupUi(this);
21  QObject::connect(MacroListBox, SIGNAL(currentTextChanged(const QString &)), this, SLOT(setCommand(const QString &)));
22  setCommand("Add");
23 }
24 
25 void TGo4MacroDialog::setCommand( const QString & selection )
26 {
27  if(selection.contains("Add"))
28  {
29  fxCommand="addhistos(\"\",\"\",1,kTRUE);";
30  SyntaxLabel->setText("Bool_t addhistos(const char* histo1, const char* histo2, Double_t factor, Bool_t draw)");
31  setToolTip("Add histograms: result=histo1 + factor * histo2. \n If draw==true, display in new viewpanel, otherwise just update existing displays");
32  }
33  else if (selection.contains("Divide"))
34  {
35  fxCommand="divhistos(\"\",\"\",kTRUE, kTRUE);";
36  SyntaxLabel->setText("Bool_t divhistos(const char* histo1, const char* histo2, Bool_t draw, Bool_t floatresult)");
37  setToolTip("Divide histograms: result=histo1 by histo2.\n If draw==true, display in new viewpanel, otherwise just update existing displays. \n If floatresult==true, result histogram will be TH1F, otherwise same type as original histograms");
38  }
39  else if (selection.contains("Rebin"))
40  {
41  fxCommand="rebin(\"\",2,0,kTRUE);";
42  SyntaxLabel->setText("Bool_t rebin(const char* histo, int ngroupX, int ngroupY, Bool_t draw)");
43  setToolTip("Rebin histogram histo by merging ngroup neighboured channels together. \n If draw=true, display in new viewpanel, otherwise just update existing displays ");
44  }
45  else if (selection.contains("Projection X"))
46  {
47  fxCommand="projectionX(\"\",\"\",-1,-1,kTRUE);";
48  SyntaxLabel->setText("Bool_t projectionX(const char* histo, const char* polycon, Int_t firstybin, Int_t lastybin, Bool_t draw)");
49  setToolTip(" Do projection to X axis for 2d histogram histo.\n Optional polygon condition.\n Parameters firstybin, lastybin for y range. \n If draw==true, display in new viewpanel, otherwise just update existing displays ");
50  }
51  else if (selection.contains("Projection Y"))
52  {
53  fxCommand="projectionY(\"\",\"\",-1,-1,kTRUE);";
54  SyntaxLabel->setText("Bool_t projectionY(const char* histo, const char* polycon, Int_t firstxbin, Int_t lastxbin, Bool_t draw)");
55  setToolTip(" Do projection to Y axis for 2d histogram histo. \n Optional polygon condition.\n Parameters firstxbin, lastxbin for x range. \n If draw==true, display in new viewpanel, otherwise just update existing displays ");
56  }
57  else if (selection.contains("Correlate"))
58  {
59  fxCommand="corrhistos(\"\",\"\",kTRUE);";
60  SyntaxLabel->setText("Bool_t corrhistos(const char* histo1, const char* histo2, Bool_t draw)");
61  setToolTip(" Correlate bin contents of two histograms in a graph.\n If draw==true, display in new viewpanel, otherwise just update existing displays ");
62  }
63  else if (selection.contains("Histogram of"))
64  {
65  fxCommand="hishisto(\"\",1000,kTRUE);";
66  SyntaxLabel->setText("Bool_t hishisto(const char* histo, Int_t bins, Bool_t draw)");
67  setToolTip(" Create histogram and fill with contents of histogram histo. \n If draw==true, display in new viewpanel, otherwise just update existing displays ");
68  }
69  else if (selection.contains("Profile X"))
70  {
71  fxCommand="profileX(\"\",-1,-1,kTRUE);";
72  SyntaxLabel->setText("Bool_t profileX(const char* histo, Int_t firstybin, Int_t lastybin, Bool_t draw)");
73  setToolTip(" Do profile to X axis for 2d histogram histo. \n Parameters firstybin, lastybin for y range. \n If draw==true, display in new viewpanel, otherwise just update existing displays ");
74  }
75  else if (selection.contains("Profile Y"))
76  {
77  fxCommand="profileY(\"\",-1,-1,kTRUE);";
78  SyntaxLabel->setText("Bool_t profileY(const char* histo, Int_t firstxbin, Int_t lastxbin, Bool_t draw)");
79  setToolTip(" Do profile to Y axis for 2d histogram histo. \n Parameters firstxbin, lastxbin for x range. \n If draw==true, display in new viewpanel, otherwise just update existing displays ");
80  }
81  else if (selection.contains("Scale X"))
82  {
83  fxCommand="scalex(\"\",1,0,kTRUE);";
84  SyntaxLabel->setText("Bool_t scalex(const char* histo, Double_t a1, Double_t a0, Bool_t draw)");
85  setToolTip(" Scale x axis of histogram histo by linear function. \n Parameters: x'= a1*x + a0. \n If draw==true, display in new viewpanel, otherwise just update existing displays ");
86  }
87  else if (selection.contains("Fourier"))
88  {
89  fxCommand="fft(\"\",\"R2C M\",kTRUE);";
90  SyntaxLabel->setText("Bool_t fft(const char* histo, Option_t opt, Bool_t draw)");
91  setToolTip(" Do fast fourier transform of 1d histogram. \n Parameters: option string of TVirtualFFT::FFT() \n If draw==true, display in new viewpanel, otherwise just update existing displays ");
92  }
93 
94 
95  else
96  {
97  fxCommand="unknown macro function" ;
98  }
99 }
101 {
102  return fxCommand;
103 }
104 
105 
106 
107 
108 
TGo4MacroDialog(QWidget *parent=0)
const QString & getCommand()
virtual void setCommand(const QString &selection)