// $Id$ //----------------------------------------------------------------------- // The GSI Online Offline Object Oriented (Go4) Project // Experiment Data Processing at EE department, GSI //----------------------------------------------------------------------- // Copyright (C) 2000- GSI Helmholtzzentrum fuer Schwerionenforschung GmbH // Planckstr. 1, 64291 Darmstadt, Germany // Contact: http://go4.gsi.de //----------------------------------------------------------------------- // This software can be used under the license agreements as stated // in Go4License.txt file which is part of the distribution. //----------------------------------------------------------------------- #include "TGo4MacroDialog.h" TGo4MacroDialog::TGo4MacroDialog( QWidget *parent ) : QDialog( parent ) { setObjectName("Go4MacroDialog"); setupUi(this); QObject::connect(MacroListBox, &QListWidget::currentTextChanged, this, &TGo4MacroDialog::setCommand); setCommand("Add"); } void TGo4MacroDialog::setCommand( const QString & selection ) { if (selection.contains("Add")) { fxCommand = "addhistos(\"\",\"\",1,kTRUE);"; SyntaxLabel->setText("Bool_t addhistos(const char *histo1, const char *histo2, Double_t factor, Bool_t draw)"); setToolTip("Add histograms: result=histo1 + factor * histo2. \n If draw==true, display in new viewpanel, " "otherwise just update existing displays"); } else if (selection.contains("Divide")) { fxCommand = "divhistos(\"\",\"\",kTRUE, kTRUE);"; SyntaxLabel->setText("Bool_t divhistos(const char *histo1, const char *histo2, Bool_t draw, Bool_t floatresult)"); 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"); } else if (selection.contains("Rebin")) { fxCommand = "rebin(\"\",2,0,kTRUE);"; SyntaxLabel->setText("Bool_t rebin(const char *histo, int ngroupX, int ngroupY, Bool_t draw)"); setToolTip("Rebin histogram histo by merging ngroup neighboured channels together. \n If draw=true, display in " "new viewpanel, otherwise just update existing displays "); } else if (selection.contains("Projection X")) { fxCommand = "projectionX(\"\",\"\",-1,-1,kTRUE);"; SyntaxLabel->setText( "Bool_t projectionX(const char *histo, const char *polycon, Int_t firstybin, Int_t lastybin, Bool_t draw)"); 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 "); } else if (selection.contains("Projection Y")) { fxCommand = "projectionY(\"\",\"\",-1,-1,kTRUE);"; SyntaxLabel->setText( "Bool_t projectionY(const char *histo, const char *polycon, Int_t firstxbin, Int_t lastxbin, Bool_t draw)"); 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 "); } else if (selection.contains("Correlate")) { fxCommand = "corrhistos(\"\",\"\",kTRUE);"; SyntaxLabel->setText("Bool_t corrhistos(const char *histo1, const char *histo2, Bool_t draw)"); setToolTip(" Correlate bin contents of two histograms in a graph.\n If draw==true, display in new viewpanel, " "otherwise just update existing displays "); } else if (selection.contains("Histogram of")) { fxCommand = "hishisto(\"\",1000,kTRUE);"; SyntaxLabel->setText("Bool_t hishisto(const char *histo, Int_t bins, Bool_t draw)"); setToolTip(" Create histogram and fill with contents of histogram histo. \n If draw==true, display in new " "viewpanel, otherwise just update existing displays "); } else if (selection.contains("Profile X")) { fxCommand = "profileX(\"\",-1,-1,kTRUE);"; SyntaxLabel->setText("Bool_t profileX(const char *histo, Int_t firstybin, Int_t lastybin, Bool_t draw)"); 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 "); } else if (selection.contains("Profile Y")) { fxCommand = "profileY(\"\",-1,-1,kTRUE);"; SyntaxLabel->setText("Bool_t profileY(const char *histo, Int_t firstxbin, Int_t lastxbin, Bool_t draw)"); 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 "); } else if (selection.contains("Scale X")) { fxCommand = "scalex(\"\",1,0,kTRUE);"; SyntaxLabel->setText("Bool_t scalex(const char *histo, Double_t a1, Double_t a0, Bool_t draw)"); 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 "); } else if (selection.contains("Fourier")) { fxCommand = "fft(\"\",\"R2C M\",kTRUE);"; SyntaxLabel->setText("Bool_t fft(const char *histo, Option_t opt, Bool_t draw)"); 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 "); } else { fxCommand = "unknown macro function"; } } const QString& TGo4MacroDialog::getCommand() { return fxCommand; }