14 #include <TVirtualPad.h> 16 #include <TObjArray.h> 17 #include <TObjString.h> 22 #include <TGFileDialog.h> 23 #include <TGInputDialog.h> 27 #include <TGListBox.h> 28 #include <TGComboBox.h> 29 #include <TGNumberEntry.h> 30 #include <TRootEmbeddedCanvas.h> 31 #include <TGSplitter.h> 32 #include <TGButtonGroup.h> 43 : TGCompositeFrame(p, w, h),
58 fContDrawOptSub1D2D(0),
72 fBtnAddFitFunction(0),
85 fListNormalization(0),
98 fcontDrawOpt1DSubLR(0),
99 fContDrawOpt1DSubNSC(0),
109 fCheckCumulativePM(0),
111 fContDrawOpt1DSubMML(0),
124 fChkStatUnderflow(0),
129 fChkStatSkewnessPM(0),
132 fChkStatKurtosisPM(0),
155 fChkAddAsReference(0),
173 SetCleanup(kDeepCleanup);
179 fContTopBottom =
new TGCompositeFrame(
this, w, h, kVerticalFrame | kFixedWidth | kFixedHeight);
180 AddFrame(
fContTopBottom,
new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 0, 0, 0, 0));
189 fContLeft =
new TGCompositeFrame(
fContLCR, 200, 200, kVerticalFrame | kFixedWidth | kFitHeight);
190 fContLCR->AddFrame(
fContLeft,
new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandY, 5, 3, 3, 3));
193 TGVSplitter *splitLeft =
new TGVSplitter(
fContLCR);
195 fContLCR->AddFrame(splitLeft,
new TGLayoutHints(kLHintsLeft | kLHintsExpandY, 0, 0, 0, 0));
198 fContRight =
new TGCompositeFrame(
fContLCR, 200, 200, kVerticalFrame | kFixedWidth | kFitHeight);
199 fContLCR->AddFrame(
fContRight,
new TGLayoutHints(kLHintsTop | kLHintsRight | kLHintsExpandY, 3, 5, 3, 3));
202 fContCenter =
new TGCompositeFrame(
fContLCR, 200, 200, kVerticalFrame | kFixedWidth | kFitHeight);
203 fContLCR->AddFrame(
fContCenter,
new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 0, 0, 0, 0));
206 TGVSplitter *splitRight =
new TGVSplitter(
fContLCR);
208 fContLCR->AddFrame(splitRight,
new TGLayoutHints(kLHintsLeft | kLHintsExpandY, 0, 0, 0, 0));
219 fBtnDraw->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"DoDraw()");
220 fBtnDraw->SetToolTipText(
"Press here to draw according to selections.");
224 fContLeft->AddFrame(
ftabLeft,
new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 0, 0, 8, 0));
242 fRadio1D->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsGeneral()");
243 fRadio1D->SetToolTipText(
"1D drawing \nSelect this if you want to have the full control for the custom draw.");
248 fRadio2D->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsGeneral()");
249 fRadio2D->SetToolTipText(
"2D drawing");
260 fChkAddDrawOpt->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"DoNewSelection()");
261 fChkAddDrawOpt->SetToolTipText(
"Enter additional draw options like 'prof' or 'colz' here.\nBe careful with the option 'same' for 2D drawings as it will crash (ROOT feature).");
268 fComboAddDrawOpt->Connect(
"ReturnPressed()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsGeneral(=14)");
269 fComboAddDrawOpt->Connect(
"Selected(Int_t)",
"AliBaseCalibViewerGUI",
this,
"DoNewSelection()");
274 fChkAuto->SetToolTipText(
"Decide if you want an automatic redraw on each new selection.\nNot recommended on a slow machine, during remote connection or if your draw option is 'same'.");
279 fChkAutoAppend->SetToolTipText(
"Tries to repair your custom draw string or custom cut string, if you forgot '~' or '.fElements' \nThis function may be buggy!");
285 fRadioPredefined->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsGeneral()");
286 fRadioPredefined->SetToolTipText(
"Draw predefined variables according to selection.");
290 ftabLeft0->AddFrame(
fListVariables,
new TGLayoutHints(kLHintsNormal | kLHintsExpandX | kLHintsExpandY, 10, 0, 0, 0));
291 fListVariables->Connect(
"Selected(Int_t)",
"AliBaseCalibViewerGUI",
this,
"DoNewSelection()");
296 fContPlotOpt =
new TGGroupFrame(
ftabLeft0,
"Normalization options", kVerticalFrame | kFitWidth | kFitHeight);
303 fRadioRaw->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsGeneral()");
304 fRadioRaw->SetToolTipText(
"Plot without normalization");
309 fRadioNormalized->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsGeneral()");
322 fComboMethod->Connect(
"Selected(Int_t)",
"AliBaseCalibViewerGUI",
this,
"DoNewSelection()");
327 fListNormalization->Connect(
"Selected(Int_t)",
"AliBaseCalibViewerGUI",
this,
"DoNewSelection()");
332 fRadioCustom->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsGeneral()");
333 fRadioCustom->SetToolTipText(
"Draw data according to user specific text entry in the 'Custom Draw' line. Remember '~' (= '.fElements')!");
352 fRadioNorm->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtons1D()");
353 fRadioNorm->SetToolTipText(
"Produce a normal 1D plot, a histogram of the selected data.");
357 fRadioSigma->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtons1D()");
358 fRadioSigma->SetToolTipText(
"Draw a normal histogram, but also lines that indicate the mean/median/LTM \nand sigmas of the selected data.");
362 fTxtSigmas->Connect(
"ReturnPressed()",
"AliBaseCalibViewerGUI",
this,
"HandleButtons1D(=111)");
363 fTxtSigmas->SetToolTipText(
"Enter sigma intervals you would like to be indicated by lines. \nExample: '2; 4; 6'");
373 fRadioCumulative->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtons1D()");
374 fRadioCumulative->SetToolTipText(
"Draw the cumulative (SigmaCut) of the given selection. \nThe data distribution is integrated, starting from the mean/median/LTM.");
378 fCheckCumulativePM->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtons1D()");
379 fCheckCumulativePM->SetToolTipText(
"Decide whether you want the cumulative integration for each direction (+/-) \nor only for the absolute distance to the mean/median/LTM value.");
383 fRadioIntegrate->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtons1D()");
384 fRadioIntegrate->SetToolTipText(
"Draw the integral of the given selection.");
395 fTxtSigmaMax->Connect(
"ReturnPressed()",
"AliBaseCalibViewerGUI",
this,
"HandleButtons1D(=112)");
396 fTxtSigmaMax->SetToolTipText(
"Enter up to which multiple of sigma you want to integrate.");
405 fChkMean->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtons1D()");
406 fChkMean->SetToolTipText(
"Activate Mean for Sigma/Cumulative/Integrate");
410 fChkMedian->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtons1D()");
411 fChkMedian->SetToolTipText(
"Activate Median for Sigma/Cumulative/Integrate");
415 fChkLTM->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtons1D()");
416 fChkLTM->SetToolTipText(
"Activate LTM for Sigma/Cumulative/Integrate");
420 fContStatOpt =
new TGGroupFrame(
ftabLeft1,
"Statistic options", kVerticalFrame | kFitWidth | kFitHeight);
425 fChkStatName->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsStat()");
426 fChkStatName->SetToolTipText(
"Display the name in the statistics legend.");
430 fChkStatEntries->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsStat()");
431 fChkStatEntries->SetToolTipText(
"Display the number of entries in the statistics legend.");
438 fChkStatMean->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsStat()");
439 fChkStatMean->SetToolTipText(
"Display the mean value of the data in the statistics legend.");
443 fChkStatMeanPM->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsStat()");
444 fChkStatMeanPM->SetToolTipText(
"Display the mean value's error in the statistics legend.");
451 fChkStatRMS->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsStat()");
452 fChkStatRMS->SetToolTipText(
"Display the RMS value of the data in the statistics legend.");
456 fChkStatRMSPM->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsStat()");
457 fChkStatRMSPM->SetToolTipText(
"Display the RMS value's error in the statistics legend.");
461 fChkStatUnderflow->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsStat()");
462 fChkStatUnderflow->SetToolTipText(
"Display the number of entries in the underflow bin.");
466 fChkStatOverflow->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsStat()");
467 fChkStatOverflow->SetToolTipText(
"Display the number of entries in the overflow bin.");
471 fChkStatIntegral->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsStat()");
472 fChkStatIntegral->SetToolTipText(
"Display the integral of the data in the statistics legend.");
479 fChkStatSkewness->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsStat()");
480 fChkStatSkewness->SetToolTipText(
"Display the skewness of the data in the statistics legend. \nBe careful! Sometimes the skewness causes a floating point exception that hangs the GUI!");
484 fChkStatSkewnessPM->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsStat()");
485 fChkStatSkewnessPM->SetToolTipText(
"Display the skewness' error in the statistics legend.");
492 fChkStatKurtosis->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsStat()");
493 fChkStatKurtosis->SetToolTipText(
"Display the kurtosis of the data in the statistics legend.");
497 fChkStatKurtosisPM->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsStat()");
498 fChkStatKurtosisPM->SetToolTipText(
"Display the kurtosis' error in the statistics legend.");
502 fBtnUnchekAll->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"UnchekAllStat()");
503 fBtnUnchekAll->SetToolTipText(
"Disable all statistics legend entries, \nno statistics legend.");
520 fComboCustom->Connect(
"ReturnPressed()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsGeneral(=42)");
521 fComboCustom->Connect(
"Selected(Int_t)",
"AliBaseCalibViewerGUI",
this,
"DoNewSelection()");
537 fComboAddCuts->Connect(
"Selected(Int_t)",
"AliBaseCalibViewerGUI",
this,
"DoNewSelection()");
543 fCanvMain =
new TRootEmbeddedCanvas(
"Main_Canvas",
fContCenter, 200, 200, kFitWidth | kFitHeight);
544 fContCenter->AddFrame(
fCanvMain,
new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 0, 0, 0, 0));
546 fCanvMain->GetCanvas()->Connect(
"ProcessedEvent(Int_t, Int_t, Int_t, TObject*)",
"AliBaseCalibViewerGUI",
this,
"MouseMove(Int_t, Int_t, Int_t, TObject*)");
548 fCanvMain->GetCanvas()->Connect(
"RangeAxisChanged()",
"AliTPCCalibViewerGUI",
this,
"GetMinMax()");
549 fCanvMain->GetCanvas()->SetToolTipText(
"The Main_Canvas, here your plots are displayed.");
558 fContRight->AddFrame(
ftabRight,
new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 0, 0, 8, 0));
582 fChkSetMax->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsNoRedraw()");
583 fChkSetMax->SetToolTipText(
"Set the maximum fixed to the value specified here.");
588 fTxtSetMax->Connect(
"ReturnPressed()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsNoRedraw()");
589 fTxtSetMax->SetToolTipText(
"maximum value for the drawing");
599 fChkSetMin->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsNoRedraw()");
600 fChkSetMin->SetToolTipText(
"Set the minimum fixed to the value specified here.");
605 fTxtSetMin->Connect(
"ReturnPressed()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsNoRedraw()");
606 fTxtSetMin->SetToolTipText(
"minimum value for the drawing");
611 fBtnGetMinMax->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"GetMinMax()");
612 fBtnGetMinMax->SetToolTipText(
"Get min and max from plot, e.g. after rescaling by dragging the palette. \nObsolete! The button's function will change to 'Unzoom all'.");
617 fChkGetMinMaxAuto->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsNoRedraw()");
618 fChkGetMinMaxAuto->SetToolTipText(
"Get minimum and maximum automatically from each new plot. \nDeactivate this, if you want to 'save' your specified minimum and maximum.");
626 fChkLabelTitle->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsNoRedraw()");
631 fTxtLabelTitle->Connect(
"ReturnPressed()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsNoRedraw(=50)");
636 fChkLabelXaxis->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsNoRedraw()");
641 fTxtLabelXaxis->Connect(
"ReturnPressed()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsNoRedraw(=51)");
646 fChkLabelYaxis->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsNoRedraw()");
651 fTxtLabelYaxis->Connect(
"ReturnPressed()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsNoRedraw(=52)");
656 fChkLabelGetAuto->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"HandleButtonsNoRedraw()");
657 fChkLabelGetAuto->SetToolTipText(
"Get labels automatically from each new plot \nDeactivate this, if you want to 'save' your specified labels.");
667 fBtnSave->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"SavePicture()");
668 fBtnSave->SetToolTipText(
"Open a 'Save as...' dialog to save the current plot as picture or macro.");
678 fChkAddSaveOpt->Connect(
"Clicked()",
"AliBaseCalibViewerGUI",
this,
"DoNewSelection()");
679 fChkAddSaveOpt->SetToolTipText(
"Additional save options (see documentation for TPad::Print()).");
686 fComboAddSaveOpt->Connect(
"ReturnPressed()",
"AliBaseCalibViewerGUI",
this,
"SavePicture()");
689 fContExport =
new TGGroupFrame(
fTabRight1,
"Export AliTPCCalPad", kVerticalFrame | kFitWidth | kFitHeight);
707 fBtnExport->SetToolTipText(
"Lifeless button :(");
733 fContTree->AddFrame(
fTxtRefName,
new TGLayoutHints(kLHintsNormal | kLHintsExpandX, 15, 0, 0, 0));
737 fContFit =
new TGGroupFrame(
fTabRight1,
"Custom fit", kVerticalFrame | kFitWidth | kFitHeight);
742 fContAddFit =
new TGCompositeFrame(
fContFit, 200, 200, kVerticalFrame | kFitWidth | kFitHeight);
755 fBtnFit->SetToolTipText(
"Lifeless button :(");
760 : TGCompositeFrame(c.fParent, c.fWidth, c.fHeight),
925 Int_t statOpt =
gStyle->GetOptStat();
926 if (statOpt == 1) statOpt = 1111;
927 if (statOpt / 200000000 >= 1) {
930 statOpt -= 200000000;
932 if (statOpt / 100000000 >= 1) {
934 statOpt -= 100000000;
936 if (statOpt / 20000000 >= 1) {
941 if (statOpt / 10000000 >= 1) {
945 if (statOpt / 1000000 >= 1) {
949 if (statOpt / 100000 >= 1) {
953 if (statOpt / 10000 >= 1) {
957 if (statOpt / 2000 >= 1) {
962 if (statOpt / 1000 >= 1) {
966 if (statOpt / 200 >= 1) {
971 if (statOpt / 100 >= 1) {
975 if (statOpt / 10 >= 1) {
979 if (statOpt / 1 >= 1) {
1034 TGButton *btn = (TGButton *) gTQSender;
1035 id = btn->WidgetId();
1085 TGButton *btn = (TGButton *) gTQSender;
1086 id = btn->WidgetId();
1126 TGButton *btn = (TGButton *) gTQSender;
1127 id = btn->WidgetId();
1129 TString statOpt(
"");
1130 if (
fChkStatName->GetState() == kButtonDown) statOpt.Append(
"n");
1133 if (
fChkStatMeanPM->GetState() == kButtonDown) statOpt.Append(
"M");
1135 if (
fChkStatRMSPM->GetState() == kButtonDown) statOpt.Append(
"R");
1144 gStyle->SetOptStat(statOpt);
1155 TGButton *btn = (TGButton *) gTQSender;
1156 id = btn->WidgetId();
1185 TString drawPlaceHolder(
"#draw#");
1186 TString normPlaceHolder(
"#norm#");
1189 TString desiredData(
"");
1191 desiredData += ((TGTextLBEntry*)(
fListVariables->GetSelectedEntry()))->GetTitle();
1192 str.ReplaceAll(drawPlaceHolder,desiredData);
1196 TString normalizationData(
"");
1198 normalizationData += ((TGTextLBEntry*)(
fListNormalization->GetSelectedEntry()))->GetTitle();
1199 if (! (TString(((TGTextLBEntry*)(
fListNormalization->GetSelectedEntry()))->GetTitle())).BeginsWith(
"Fit"))
1200 if ( normalizationData.BeginsWith(
"_") ) normalizationData = desiredData+normalizationData;
1202 normalizationData+=
"~";
1203 str.ReplaceAll(normPlaceHolder,normalizationData);
1240 const char *kSaveAsTypes[] = {
1241 "Postscript",
"*.ps",
1242 "Encapsulated Postscript",
"*.eps",
1251 "C++ macro",
"*.cxx",
1252 "Macro file",
"*.C",
1253 "ROOT file",
"*.root",
1257 TString addSaveOpt(
"");
1262 fi.fFileTypes = kSaveAsTypes;
1263 fi.fOverwrite = kFALSE;
1264 new TGFileDialog(gClient->GetRoot(), gClient->GetRoot(), kFDSave, &fi);
1265 if (fi.fFilename && strlen(fi.fFilename)) {
1266 if (addSaveOpt !=
"")
1267 fCanvMain->GetCanvas()->Print(fi.fFilename, addSaveOpt.Data());
1269 fCanvMain->GetCanvas()->Print(fi.fFilename);
1279 TList* listOfPrimitives =
fCanvMain->GetCanvas()->GetListOfPrimitives();
1281 for (Int_t i = 0; i < listOfPrimitives->GetEntries(); i++) {
1282 ptr = listOfPrimitives->At(i);
1283 if ( ptr->InheritsFrom(
"TH1") )
break;
1285 if ( !ptr || !ptr->InheritsFrom(
"TH1") )
return;
1286 TH1 *hist = (TH1*)ptr;
1288 if (
fRadio2D->GetState() == kButtonDown) {
1290 fTxtSetMax->SetText(Form(
"%f", hist->GetMaximum()));
1292 fTxtSetMin->SetText(Form(
"%f", hist->GetMinimum()));
1294 else if (
fRadio1D->GetState() == kButtonDown) {
1296 fTxtSetMax->SetText( Form(
"%f", hist->GetXaxis()->GetXmax()) );
1298 fTxtSetMin->SetText( Form(
"%f", hist->GetXaxis()->GetXmin()) );
1310 TList* listOfPrimitives =
fCanvMain->GetCanvas()->GetListOfPrimitives();
1312 for (Int_t i = 0; i < listOfPrimitives->GetEntries(); i++) {
1313 ptr = listOfPrimitives->At(i);
1314 if ( ptr->InheritsFrom(
"TH1") )
break;
1316 if ( ptr == 0 || !ptr->InheritsFrom(
"TH1") ) {
1318 Warning(
"SetMinMaxLabel",
"No Histogram found!");
1323 TH1 *hist = (TH1*)ptr;
1328 if (
fRadio2D->GetState() == kButtonDown) {
1329 if (
fChkSetMax->GetState() == kButtonDown &&
fChkSetMax->GetState() == kButtonDown &&(maxTxt.IsDigit() || maxTxt.IsFloat()) )
1330 hist->SetMaximum(maxTxt.Atof());
1332 hist->SetMaximum(-1111);
1333 if (
fChkSetMin->GetState() == kButtonDown && (minTxt.IsDigit() || minTxt.IsFloat()) )
1334 hist->SetMinimum(minTxt.Atof());
1336 hist->SetMinimum(-1111);
1338 else if (
fRadio2D->GetState() == kButtonDown) {
1340 fChkSetMax->GetState() == kButtonDown && hist->GetXaxis())
1341 hist->GetXaxis()->SetRangeUser(hist->GetXaxis()->GetXmin(), hist->GetXaxis()->GetXmax());
1342 else if (
fChkSetMax->GetState() == kButtonDown && hist->GetXaxis())
1343 hist->GetXaxis()->SetRangeUser(hist->GetXaxis()->GetXmin(), maxTxt.Atof());
1344 else if (
fChkSetMin->GetState() == kButtonDown && hist->GetXaxis())
1345 hist->GetXaxis()->SetRangeUser(minTxt.Atof(), hist->GetXaxis()->GetXmax());
1346 hist->SetTitle(hist->GetTitle());
1365 hist->SetTitle(hist->GetTitle());
TGCompositeFrame * ftabLeft1
TGCompositeFrame * fContDrawOptSub1D2D
TGCompositeFrame * fContNormalized
TGCheckButton * fChkAddSaveOpt
void HandleButtonsNoRedraw(Int_t id=-1)
TGCheckButton * fChkGetMinMaxAuto
void HandleButtons1D(Int_t id=-1)
TGCheckButton * fChkStatMean
TGCompositeFrame * fContRight
TGCompositeFrame * fContFit
TGGroupFrame * fContStatOpt
TGRadioButton * fRadioSigma
TGCompositeFrame * fContPlotOpt
TGCheckButton * fChkStatSkewnessPM
TGComboBox * fComboAddSaveOpt
TGCompositeFrame * ftabLeft0
void HandleButtonsGeneral(Int_t id=-1)
TGCompositeFrame * fContStatKurt
TGCheckButton * fChkAutoAppend
TGCompositeFrame * fcontDrawOpt1DSubLR
TGCheckButton * fChkStatEntries
TGListBox * fListNormalization
TGTextEntry * fTxtLabelYaxis
TGGroupFrame * fContDrawOpt1D
TGCompositeFrame * fContStatRMS
TGGroupFrame * fContExport
TGCompositeFrame * fContCustom
AliBaseCalibViewerGUI & operator=(const AliBaseCalibViewerGUI ¶m)
TGRadioButton * fRadioRaw
TGCompositeFrame * fContCumLeft
TGCompositeFrame * fContLCR
TRootEmbeddedCanvas * fCanvMain
TGCompositeFrame * fContCumRight
TGCheckButton * fChkStatMeanPM
TGCompositeFrame * fContTopBottom
virtual ~AliBaseCalibViewerGUI()
TGTextButton * fBtnGetMinMax
TGCheckButton * fChkMedian
TGComboBox * fComboAddDrawOpt
TGCompositeFrame * fContCumuLR
TGTextButton * fBtnDumpToFile
TGRadioButton * fRadioCustom
TGCompositeFrame * fContCuts
void DrawGUI(const TGWindow *p, UInt_t w, UInt_t h)
TGCheckButton * fChkStatKurtosis
TGCompositeFrame * fContLeft
TGCheckButton * fChkStatIntegral
TGCompositeFrame * fContTree
TGTextEntry * fTxtRefName
TGCompositeFrame * fContSetMax
void ReplacePlaceHolders(TString &str)
TGCompositeFrame * fContScaling
TGGroupFrame * fContLabeling
TGCheckButton * fChkStatUnderflow
TGComboBox * fComboCustomFit
TGCheckButton * fChkStatRMS
TGCompositeFrame * fContStatSkew
TGComboBox * fComboCustom
TGCheckButton * fChkStatSkewness
TGTextButton * fBtnAddFitFunction
TGCheckButton * fChkLabelYaxis
TGRadioButton * fRadioCumulative
void HandleButtonsStat(Int_t id=-1)
TGCompositeFrame * fContStatMean
TGRadioButton * fRadioIntegrate
TGComboBox * fComboMethod
TGTextEntry * fTxtSigmaMax
TGComboBox * fComboExportName
TGTextButton * fBtnLoadTree
TGListBox * fListVariables
TGCheckButton * fChkStatOverflow
TGComboBox * fComboAddCuts
TGTextEntry * fTxtLabelTitle
TGCompositeFrame * fContAddExport
TGCompositeFrame * fContAddDrawOpt
TGCompositeFrame * fContCenter
TGCompositeFrame * fContDrawOpt1DSubMML
TGCompositeFrame * fContAddFit
TGCompositeFrame * fContAddSaveOpt
AliBaseCalibViewerGUI(const TGWindow *p, UInt_t w, UInt_t h)
TGRadioButton * fRadioNorm
TGCheckButton * fChkSetMax
TGCheckButton * fChkAddDrawOpt
TGRadioButton * fRadioNormalized
TGTextButton * fBtnExport
TGCompositeFrame * fTabRight1
TGCheckButton * fCheckCumulativePM
TGCheckButton * fChkAddAsReference
TGCompositeFrame * fContSetMin
TGCheckButton * fChkSetMin
TGCheckButton * fChkStatRMSPM
TGTextEntry * fTxtLabelXaxis
TGCheckButton * fChkLabelXaxis
TGRadioButton * fRadioPredefined
TGTextButton * fBtnAddNorm
TGCheckButton * fChkLabelTitle
TGCompositeFrame * fContDrawOpt1DSubNSC
TGCheckButton * fChkStatKurtosisPM
AliBaseCalibViewer * fViewer
TGCompositeFrame * fContAddCuts
TGCompositeFrame * fTabRight0
TGCheckButton * fChkLabelGetAuto
TGCheckButton * fChkStatName
TGCompositeFrame * fContDrawOpt