#include <TFancyHistogramCanvas.hxx>
Public Member Functions | |
TFancyHistogramCanvas (THistogramArrayBase *histoArray, std::string name, int numberChannelsInGroups=-1, bool disableAutoUpdate=false) | |
~TFancyHistogramCanvas () | |
void | ResetCanvasHistograms () |
Reset the histograms for this canvas. | |
void | UpdateCanvasHistograms (TDataContainer &dataContainer) |
Update the histograms for this canvas. | |
void | PlotCanvas (TDataContainer &dataContainer, TRootEmbeddedCanvas *embedCanvas) |
Plot the histograms for this canvas. | |
void | BeginRun (int transition, int run, int time) |
Take actions at begin run. | |
void | EndRun (int transition, int run, int time) |
Take actions at end run. | |
void | SetUpCompositeFrame (TGCompositeFrame *compFrame, TRootanaDisplay *display) |
This is the complicated part, where we create a bunch of buttons and widgets. | |
void | ActivateMultiCanvasButton () |
void | ActivateOverlayButton () |
void | SetGroupName (std::string groupName) |
Allow the user to set explicitly the group name. | |
void | SetChannelName (std::string channelName) |
Allow the user to set explicitly the channel name. | |
std::string | GetTabName () |
TRootEmbeddedCanvas * | GetEmbeddedCanvas () |
This method is only. | |
Private Member Functions | |
void | CheckExtraButtons () |
Helper function to remove extra buttons if not needed anymore. | |
TFancyHistogramCanvas () | |
Private Attributes | |
THistogramArrayBase * | fHistoArray |
Pointer to the THistogramArrayBase class; memory is not owned by TFancyHistogramCanvas. | |
bool | fDisableAutoUpdate |
int | fNumberChannelsInGroups |
TGHorizontalFrame * | fLabelframe |
Overall frame in which we will add buttons and widgets. | |
TGNumberEntry * | fChannelCounterButton |
Button for the histogram number. | |
TGLabel * | fLabelChannels |
A label for the histogram number button. | |
std::string | fChannelName |
Name for the channel button. | |
TGNumberEntry * | fGroupCounterButton |
Button for the group number. | |
TGLabel * | fLabelGroup |
A label for the group button. | |
std::string | fGroupName |
Name for the group button. | |
TGCheckButton * | fMultiCanvasButton |
This button controls whether to display mutliple sub-canvases. | |
TGHButtonGroup * | fNCanvasButtonGroup |
Button group to select how many canvases to show. | |
TGRadioButton * | fNCanvasButtons [4] |
TGCheckButton * | fOverlayHistoButton |
This button controls whether to display overlaid histograms. | |
TGNumberEntry * | fNHistoButton |
Button group to select how many histograms to show. | |
TGLabel * | labelNHisto |
TLegend * | fNHistoLegend |
TRootanaDisplay * | fDisplay |
A canvas that plots THistogramArrayBase type histograms in a nice way. The basic idea is to allow the user to easily plot an array of histograms in three different ways: 1) They can scroll through the histograms one by one, using the "Histogram Number" button. 2) They can have a set of NNN different canvases, each with a different histogram, where NNN can be 2, 4, 8 or 16. 3) They can have multiple histograms overlaid on the same canvas; the user can choose how many histograms to overlay.
Definition at line 28 of file TFancyHistogramCanvas.hxx.
TFancyHistogramCanvas::TFancyHistogramCanvas | ( | THistogramArrayBase * | histoArray, | |
std::string | name, | |||
int | numberChannelsInGroups = -1 , |
|||
bool | disableAutoUpdate = false | |||
) |
Pass the THistogramArrayBase pointer during constructor; does not pass ownership (TFancyHistogramCanvas will not delete histoArray); parameters: 'histoArray': this is the pointer to the class derived from THistogramArrayBase base;
TFancyHistogramCanvas::~TFancyHistogramCanvas | ( | ) |
Definition at line 53 of file TFancyHistogramCanvas.cxx.
TFancyHistogramCanvas::TFancyHistogramCanvas | ( | ) | [private] |
void TFancyHistogramCanvas::ActivateMultiCanvasButton | ( | ) |
These methods are callbacks to ensure that multi-canvas and overlay-histo modes are used exclusively.
Definition at line 300 of file TFancyHistogramCanvas.cxx.
References fMultiCanvasButton, fNCanvasButtonGroup, fNHistoButton, and fOverlayHistoButton.
00300 { 00301 if(fMultiCanvasButton->IsOn()){ 00302 fOverlayHistoButton->SetDown(false); // Deactivate overlay button 00303 fNCanvasButtonGroup->SetState(true); // Enable the set of Ncanvas buttons 00304 fNHistoButton->SetState(false); 00305 }else{ 00306 fNCanvasButtonGroup->SetState(false);// Disable the set of Ncanvas buttons 00307 00308 } 00309 }
void TFancyHistogramCanvas::ActivateOverlayButton | ( | ) |
Definition at line 310 of file TFancyHistogramCanvas.cxx.
References fMultiCanvasButton, fNCanvasButtonGroup, fNHistoButton, and fOverlayHistoButton.
00310 { 00311 if(fOverlayHistoButton->IsOn()){ 00312 fMultiCanvasButton->SetDown(false); // Deactivate multi-canvas button 00313 fNCanvasButtonGroup->SetState(false); // Disable the set of Ncanvas buttons 00314 fNHistoButton->SetState(true); 00315 }else{ 00316 fNHistoButton->SetState(false); 00317 } 00318 00319 00320 00321 }
void TFancyHistogramCanvas::BeginRun | ( | int | transition, | |
int | run, | |||
int | time | |||
) | [virtual] |
Take actions at begin run.
Reimplemented from TCanvasHandleBase.
Definition at line 290 of file TFancyHistogramCanvas.cxx.
References THistogramArrayBase::BeginRun(), and fHistoArray.
00290 { 00291 fHistoArray->BeginRun(transition, run, time); 00292 };
void TFancyHistogramCanvas::CheckExtraButtons | ( | ) | [private] |
Helper function to remove extra buttons if not needed anymore.
void TFancyHistogramCanvas::EndRun | ( | int | transition, | |
int | run, | |||
int | time | |||
) | [virtual] |
Take actions at end run.
Reimplemented from TCanvasHandleBase.
Definition at line 295 of file TFancyHistogramCanvas.cxx.
References THistogramArrayBase::EndRun(), and fHistoArray.
00295 { 00296 fHistoArray->EndRun(transition, run, time); 00297 };
TRootEmbeddedCanvas* TCanvasHandleBase::GetEmbeddedCanvas | ( | ) | [inline, inherited] |
This method is only.
Definition at line 41 of file TCanvasHandleBase.hxx.
std::string TCanvasHandleBase::GetTabName | ( | ) | [inline, inherited] |
Definition at line 38 of file TCanvasHandleBase.hxx.
References TCanvasHandleBase::fTabName.
Referenced by TRootanaDisplay::AddSingleCanvas().
00038 {return fTabName;}
void TFancyHistogramCanvas::PlotCanvas | ( | TDataContainer & | dataContainer, | |
TRootEmbeddedCanvas * | embedCanvas | |||
) | [virtual] |
Plot the histograms for this canvas.
Implements TCanvasHandleBase.
Definition at line 193 of file TFancyHistogramCanvas.cxx.
References fChannelCounterButton, fGroupCounterButton, fHistoArray, fMultiCanvasButton, fNCanvasButtons, fNHistoButton, fNHistoLegend, fNumberChannelsInGroups, and fOverlayHistoButton.
00193 { 00194 00195 00196 TCanvas* c1 = embedCanvas->GetCanvas(); 00197 c1->Clear(); 00198 00199 int channel = fChannelCounterButton->GetNumberEntry()->GetIntNumber(); 00200 if(fNumberChannelsInGroups > 1) 00201 channel = fGroupCounterButton->GetNumberEntry()->GetIntNumber() * fNumberChannelsInGroups 00202 + fChannelCounterButton->GetNumberEntry()->GetIntNumber(); 00203 00204 // Choose the display pattern based on which buttons have been pushed. 00205 00206 // Multiple canvas option 00207 if(fMultiCanvasButton->IsOn()){ 00208 00209 int ncanvas = 1; 00210 if(fNCanvasButtons[0]->IsOn()){ 00211 c1->Divide(1,2); 00212 ncanvas = 2; 00213 } 00214 if(fNCanvasButtons[1]->IsOn()){ 00215 c1->Divide(2,2); 00216 ncanvas = 4; 00217 } 00218 if(fNCanvasButtons[2]->IsOn()){ 00219 c1->Divide(2,4); 00220 ncanvas = 8; 00221 } 00222 if(fNCanvasButtons[3]->IsOn()){ 00223 c1->Divide(4,4); 00224 ncanvas = 16; 00225 } 00226 00227 for(int i = 0; i < ncanvas; i++){ 00228 c1->cd(i+1); 00229 int index = i + channel; 00230 if(index >=0 && index < (int)fHistoArray->size() && (*fHistoArray)[index]){ 00231 (*fHistoArray)[index]->Draw(); 00232 (*fHistoArray)[index]->SetLineColor(1); 00233 } 00234 } 00235 00236 }else if(fOverlayHistoButton->IsOn()){ // Show multiple histograms on same canvas. 00237 00238 int nhisto = fNHistoButton->GetNumberEntry()->GetIntNumber(); 00239 00240 // Kind of annoying; need to do two loops through the data in order to check which is 00241 // the maximum histogram. 00242 int first_channel = channel; 00243 int last_channel = channel + nhisto; 00244 if(last_channel > (int)fHistoArray->size()) 00245 last_channel = fHistoArray->size(); 00246 00247 // find the maximum histogram; 00248 TH1 *max_histo = 0; 00249 for(int ichan = first_channel; ichan < last_channel; ichan++){ 00250 if(max_histo == 0) 00251 max_histo = (*fHistoArray)[ichan]; 00252 else if((*fHistoArray)[ichan]->GetMaximum() > max_histo->GetMaximum()) 00253 max_histo = (*fHistoArray)[ichan]; 00254 00255 } 00256 00257 // New loop again and draw as we go. 00258 max_histo->Draw(); 00259 fNHistoLegend->Clear(); 00260 char name[100]; 00261 for(int ichan = first_channel; ichan < last_channel; ichan++){ 00262 00263 (*fHistoArray)[ichan]->SetLineColor(ichan-channel+1); 00264 sprintf(name,"Histogram # %i",ichan); 00265 fNHistoLegend->AddEntry((*fHistoArray)[ichan],(*fHistoArray)[ichan]->GetTitle()); 00266 00267 if((*fHistoArray)[ichan] == max_histo) continue; 00268 (*fHistoArray)[ichan]->Draw("SAME"); 00269 } 00270 00271 fNHistoLegend->Draw("SAME"); 00272 00273 }else{ // Default: single canvas, single histogram. 00274 00275 00276 if(channel >=0 && channel < (int) fHistoArray->size() && (*fHistoArray)[channel]){ 00277 (*fHistoArray)[channel]->Draw(); 00278 (*fHistoArray)[channel]->SetLineColor(1); 00279 } 00280 00281 } 00282 c1->Modified(); 00283 c1->Update(); 00284 00285 }
void TFancyHistogramCanvas::ResetCanvasHistograms | ( | ) | [virtual] |
Reset the histograms for this canvas.
Reset the histograms in fHistoArray.
Implements TCanvasHandleBase.
Definition at line 177 of file TFancyHistogramCanvas.cxx.
References fHistoArray.
00177 { 00178 for(unsigned int i = 0; i < fHistoArray->size(); i++) 00179 (*fHistoArray)[i]->Reset(); 00180 }
void TFancyHistogramCanvas::SetChannelName | ( | std::string | channelName | ) |
Allow the user to set explicitly the channel name.
Definition at line 336 of file TFancyHistogramCanvas.cxx.
References fChannelName, fHistoArray, fLabelChannels, and fNumberChannelsInGroups.
Referenced by SetUpCompositeFrame().
00336 { 00337 00338 fChannelName = channelName; 00339 00340 if(!fLabelChannels) return; 00341 int numberChannels = fHistoArray->size(); 00342 if(fNumberChannelsInGroups > 1){ 00343 numberChannels = fNumberChannelsInGroups; 00344 } 00345 00346 char tlabel[100]; 00347 sprintf(tlabel,"%s# (0-%i)",channelName.c_str(),(int)numberChannels-1); 00348 00349 fLabelChannels->SetText(tlabel);//TGLabel 00350 00351 00352 }
void TFancyHistogramCanvas::SetGroupName | ( | std::string | groupName | ) |
Allow the user to set explicitly the group name.
Definition at line 324 of file TFancyHistogramCanvas.cxx.
References fGroupName, fHistoArray, fLabelGroup, and fNumberChannelsInGroups.
Referenced by SetUpCompositeFrame().
00324 { 00325 00326 fGroupName = groupName; 00327 00328 if(!fLabelGroup) return; 00329 int numberGroups = (int)(((double)fHistoArray->size())/((double)fNumberChannelsInGroups)); 00330 char tlabel[100]; 00331 sprintf(tlabel,"%s# (0-%i)",groupName.c_str(),(int)numberGroups-1); 00332 00333 fLabelGroup->SetText(tlabel);//TGLabel 00334 }
void TFancyHistogramCanvas::SetUpCompositeFrame | ( | TGCompositeFrame * | compFrame, | |
TRootanaDisplay * | display | |||
) | [virtual] |
This is the complicated part, where we create a bunch of buttons and widgets.
Cached pointer to rootana display; needed so that we can create new buttons with correct callbacks.
Add the button group to control how many sub-canvases to plot.
Add the button to control how many histograns to plot to plot.
Reimplemented from TCanvasHandleBase.
Definition at line 58 of file TFancyHistogramCanvas.cxx.
References fChannelCounterButton, fChannelName, fDisplay, fGroupCounterButton, fGroupName, fHistoArray, fLabelChannels, fLabelframe, fLabelGroup, fMultiCanvasButton, fNCanvasButtonGroup, fNCanvasButtons, fNHistoButton, fNumberChannelsInGroups, fOverlayHistoButton, labelNHisto, SetChannelName(), and SetGroupName().
00058 { 00059 00060 /// Cached pointer to rootana display; needed so that we can 00061 /// create new buttons with correct callbacks. 00062 fDisplay = display; 00063 00064 // Now create my embedded canvas, along with the various buttons for this canvas. 00065 // Sub-frame, to reduce space used 00066 fLabelframe = new TGHorizontalFrame(compFrame,200,40); 00067 compFrame->AddFrame(fLabelframe, new TGLayoutHints(kLHintsCenterX,2,2,2,2)); 00068 00069 // ________________________________________________________________________________ 00070 // Add a button for the groups, if we are using groups 00071 if(fNumberChannelsInGroups > 1){ 00072 00073 TGVerticalFrame *hframe1 = new TGVerticalFrame(fLabelframe, 120, 40, kFixedWidth); 00074 fLabelframe->AddFrame(hframe1, new TGLayoutHints(kLHintsLeft,2,2,2,2)); 00075 int numberGroups = (int)(((double)fHistoArray->size())/((double)fNumberChannelsInGroups)); 00076 00077 fGroupCounterButton = new TGNumberEntry(hframe1, 0, 9,999, TGNumberFormat::kNESInteger, 00078 TGNumberFormat::kNEANonNegative, 00079 TGNumberFormat::kNELLimitMinMax, 00080 0, numberGroups-1); 00081 00082 hframe1->AddFrame(fGroupCounterButton, new TGLayoutHints(kLHintsLeft, 1, 1, 1, 1)); 00083 // Add call-backs to update plots if widget is used 00084 fGroupCounterButton->Connect("ValueSet(Long_t)", "TRootanaDisplay", display, "UpdatePlotsAction()"); 00085 fGroupCounterButton->GetNumberEntry()->Connect("ReturnPressed()", "TRootanaDisplay", display, "UpdatePlotsAction()"); 00086 00087 // Add a label for channel selector 00088 fLabelGroup = new TGLabel(hframe1, ""); 00089 hframe1->AddFrame(fLabelGroup, new TGLayoutHints(kLHintsLeft , 1, 1, 1, 1)); 00090 SetGroupName(fGroupName); 00091 } 00092 00093 // ________________________________________________________________________________ 00094 // Create the default set of widgets used for all display options: namely a counter 00095 // that keeps track of which channel to start from. 00096 00097 // Sub-frame, to reduce space used 00098 TGVerticalFrame *hframe2 = new TGVerticalFrame(fLabelframe, 120, 40, kFixedWidth); 00099 fLabelframe->AddFrame(hframe2, new TGLayoutHints(kLHintsLeft,2,2,2,2)); 00100 int numberChannels = fHistoArray->size(); 00101 if(fNumberChannelsInGroups > 1){ 00102 numberChannels = fNumberChannelsInGroups; 00103 } 00104 fChannelCounterButton = new TGNumberEntry(hframe2, 0, 9,999, TGNumberFormat::kNESInteger, 00105 TGNumberFormat::kNEANonNegative, 00106 TGNumberFormat::kNELLimitMinMax, 00107 0, numberChannels-1); 00108 00109 hframe2->AddFrame(fChannelCounterButton, new TGLayoutHints(kLHintsLeft, 1, 1, 1, 1)); 00110 // Add call-backs to update plots if widget is used 00111 fChannelCounterButton->Connect("ValueSet(Long_t)", "TRootanaDisplay", display, "UpdatePlotsAction()"); 00112 fChannelCounterButton->GetNumberEntry()->Connect("ReturnPressed()", "TRootanaDisplay", display, "UpdatePlotsAction()"); 00113 00114 // Add a label for channel selector 00115 fLabelChannels = new TGLabel(hframe2, ""); 00116 hframe2->AddFrame(fLabelChannels, new TGLayoutHints(kLHintsLeft, 5, 5, 5, 5)); 00117 SetChannelName(fChannelName); 00118 00119 // ________________________________________________________________________________ 00120 // Create a button to control whether to use multiple canvases 00121 fMultiCanvasButton = new TGCheckButton(fLabelframe, new TGHotString("Multi-Canvas")); 00122 fLabelframe->AddFrame(fMultiCanvasButton, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5)); 00123 00124 // Add call-backs to update plots if button is used; ensure both not all modes are simultaneously active 00125 fMultiCanvasButton->Connect("Toggled(Bool_t)", "TFancyHistogramCanvas", this, "ActivateMultiCanvasButton()"); 00126 fMultiCanvasButton->Connect("Toggled(Bool_t)", "TRootanaDisplay", display, "UpdatePlotsAction()"); 00127 00128 /// Add the button group to control how many sub-canvases to plot. 00129 fNCanvasButtonGroup = new TGHButtonGroup(fLabelframe, "Number of Canvases:"); 00130 fNCanvasButtons[0] = new TGRadioButton(fNCanvasButtonGroup, new TGHotString("2 | "),1); 00131 fNCanvasButtons[1] = new TGRadioButton(fNCanvasButtonGroup, new TGHotString("4 | "),2); 00132 fNCanvasButtons[2] = new TGRadioButton(fNCanvasButtonGroup, new TGHotString("8 | "),3); 00133 fNCanvasButtons[3] = new TGRadioButton(fNCanvasButtonGroup, new TGHotString("16 | "),4); 00134 fNCanvasButtons[0]->SetOn(); 00135 for(int i = 0; i < 4; i++) 00136 fNCanvasButtons[i]->Connect("Toggled(Bool_t)", "TRootanaDisplay", fDisplay, "UpdatePlotsAction()"); 00137 00138 fNCanvasButtonGroup->SetRadioButtonExclusive(kTRUE); 00139 00140 fNCanvasButtonGroup->Show(); 00141 fLabelframe->AddFrame(fNCanvasButtonGroup, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5)); 00142 fNCanvasButtonGroup->SetState(false); 00143 00144 // ________________________________________________________________________________ 00145 // Create a button to control whether to overlay histograms in a single canvas 00146 fOverlayHistoButton = new TGCheckButton(fLabelframe, new TGHotString("Overlay-Histo")); 00147 fLabelframe->AddFrame(fOverlayHistoButton, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5)); 00148 00149 // Add call-backs to update plots if button is used; ensure both not all modes are simultaneously active 00150 fOverlayHistoButton->Connect("Toggled(Bool_t)", "TFancyHistogramCanvas", this, "ActivateOverlayButton()"); 00151 fOverlayHistoButton->Connect("Toggled(Bool_t)", "TRootanaDisplay", display, "UpdatePlotsAction()"); 00152 00153 /// Add the button to control how many histograns to plot to plot. 00154 00155 // Sub-frame, to reduce space used 00156 TGVerticalFrame *hframe3 = new TGVerticalFrame(fLabelframe, 120, 40, kFixedWidth); 00157 fLabelframe->AddFrame(hframe3, new TGLayoutHints(kLHintsLeft,2,2,2,2)); 00158 00159 fNHistoButton = new TGNumberEntry(hframe3, 2, 9,999, TGNumberFormat::kNESInteger, 00160 TGNumberFormat::kNEANonNegative, 00161 TGNumberFormat::kNELLimitMinMax, 00162 2, 20); 00163 hframe3->AddFrame(fNHistoButton, new TGLayoutHints(kLHintsLeft, 5, 5, 5, 5)); 00164 // Add call-backs to update plots if widget is used 00165 fNHistoButton->Connect("ValueSet(Long_t)", "TRootanaDisplay", display, "UpdatePlotsAction()"); 00166 fNHistoButton->GetNumberEntry()->Connect("ReturnPressed()", "TRootanaDisplay", display, "UpdatePlotsAction()"); 00167 fNHistoButton->SetState(false); 00168 // Add a label 00169 labelNHisto = new TGLabel(hframe3, "# Histo in Canvas"); 00170 hframe3->AddFrame(labelNHisto, new TGLayoutHints(kLHintsLeft, 5, 5, 5, 5)); 00171 00172 }
void TFancyHistogramCanvas::UpdateCanvasHistograms | ( | TDataContainer & | dataContainer | ) | [virtual] |
Update the histograms for this canvas.
Implements TCanvasHandleBase.
Definition at line 183 of file TFancyHistogramCanvas.cxx.
References fDisableAutoUpdate, fHistoArray, and THistogramArrayBase::UpdateHistograms().
00183 { 00184 00185 // If this variable is set, then skip calling the histogram updating; 00186 // histogram updating will happen elsewhere. 00187 if(fDisableAutoUpdate) return; 00188 00189 fHistoArray->UpdateHistograms(dataContainer); 00190 }
TGNumberEntry* TFancyHistogramCanvas::fChannelCounterButton [private] |
Button for the histogram number.
Definition at line 99 of file TFancyHistogramCanvas.hxx.
Referenced by PlotCanvas(), and SetUpCompositeFrame().
std::string TFancyHistogramCanvas::fChannelName [private] |
Name for the channel button.
Definition at line 105 of file TFancyHistogramCanvas.hxx.
Referenced by SetChannelName(), and SetUpCompositeFrame().
bool TFancyHistogramCanvas::fDisableAutoUpdate [private] |
'disableAutoUpdate' will tell fancy histogram to not call histoArray->UpdateHistograms() -> the assumption is that the user will take care of calling this function.
Definition at line 87 of file TFancyHistogramCanvas.hxx.
Referenced by UpdateCanvasHistograms().
TRootanaDisplay* TFancyHistogramCanvas::fDisplay [private] |
Cached pointer to rootana display; needed so that we can create new buttons with correct callbacks.
Definition at line 136 of file TFancyHistogramCanvas.hxx.
Referenced by SetUpCompositeFrame().
TGNumberEntry* TFancyHistogramCanvas::fGroupCounterButton [private] |
Button for the group number.
Definition at line 108 of file TFancyHistogramCanvas.hxx.
Referenced by PlotCanvas(), and SetUpCompositeFrame().
std::string TFancyHistogramCanvas::fGroupName [private] |
Name for the group button.
Definition at line 114 of file TFancyHistogramCanvas.hxx.
Referenced by SetGroupName(), and SetUpCompositeFrame().
Pointer to the THistogramArrayBase class; memory is not owned by TFancyHistogramCanvas.
Definition at line 83 of file TFancyHistogramCanvas.hxx.
Referenced by BeginRun(), EndRun(), PlotCanvas(), ResetCanvasHistograms(), SetChannelName(), SetGroupName(), SetUpCompositeFrame(), and UpdateCanvasHistograms().
TGLabel* TFancyHistogramCanvas::fLabelChannels [private] |
A label for the histogram number button.
Definition at line 102 of file TFancyHistogramCanvas.hxx.
Referenced by SetChannelName(), and SetUpCompositeFrame().
TGHorizontalFrame* TFancyHistogramCanvas::fLabelframe [private] |
Overall frame in which we will add buttons and widgets.
Definition at line 96 of file TFancyHistogramCanvas.hxx.
Referenced by SetUpCompositeFrame().
TGLabel* TFancyHistogramCanvas::fLabelGroup [private] |
A label for the group button.
Definition at line 111 of file TFancyHistogramCanvas.hxx.
Referenced by SetGroupName(), and SetUpCompositeFrame().
TGCheckButton* TFancyHistogramCanvas::fMultiCanvasButton [private] |
This button controls whether to display mutliple sub-canvases.
Definition at line 117 of file TFancyHistogramCanvas.hxx.
Referenced by ActivateMultiCanvasButton(), ActivateOverlayButton(), PlotCanvas(), and SetUpCompositeFrame().
TGHButtonGroup* TFancyHistogramCanvas::fNCanvasButtonGroup [private] |
Button group to select how many canvases to show.
Definition at line 120 of file TFancyHistogramCanvas.hxx.
Referenced by ActivateMultiCanvasButton(), ActivateOverlayButton(), and SetUpCompositeFrame().
TGRadioButton* TFancyHistogramCanvas::fNCanvasButtons[4] [private] |
Definition at line 121 of file TFancyHistogramCanvas.hxx.
Referenced by PlotCanvas(), and SetUpCompositeFrame().
TGNumberEntry* TFancyHistogramCanvas::fNHistoButton [private] |
Button group to select how many histograms to show.
Definition at line 127 of file TFancyHistogramCanvas.hxx.
Referenced by ActivateMultiCanvasButton(), ActivateOverlayButton(), PlotCanvas(), and SetUpCompositeFrame().
TLegend* TFancyHistogramCanvas::fNHistoLegend [private] |
Definition at line 129 of file TFancyHistogramCanvas.hxx.
Referenced by PlotCanvas().
int TFancyHistogramCanvas::fNumberChannelsInGroups [private] |
'fNumberChannelsInGroups': if this value is greater than 1, then the fancy canvas will have an additional button allowing the user to specify particular groups; the histograms will be organized into size/fNumberChannelsInGroups of groups, with each group having fNumberChannelsInGroups entries.
Definition at line 93 of file TFancyHistogramCanvas.hxx.
Referenced by PlotCanvas(), SetChannelName(), SetGroupName(), and SetUpCompositeFrame().
TGCheckButton* TFancyHistogramCanvas::fOverlayHistoButton [private] |
This button controls whether to display overlaid histograms.
Definition at line 124 of file TFancyHistogramCanvas.hxx.
Referenced by ActivateMultiCanvasButton(), ActivateOverlayButton(), PlotCanvas(), and SetUpCompositeFrame().
TGLabel* TFancyHistogramCanvas::labelNHisto [private] |
Definition at line 128 of file TFancyHistogramCanvas.hxx.
Referenced by SetUpCompositeFrame().