TComplicatedExampleCanvas.cxx
Go to the documentation of this file.00001 #include "TComplicatedExampleCanvas.hxx"
00002
00003
00004 #include "TGNumberEntry.h"
00005 #include <TGLabel.h>
00006
00007 #include "TV792Data.hxx"
00008
00009 TComplicatedExampleCanvas::TComplicatedExampleCanvas(): TCanvasHandleBase("V792 ADC Values"){
00010
00011 for(int i = 0; i < 32; i++){
00012 char name[100];
00013 char title[100];
00014 sprintf(name,"adcValue%i",i+10);
00015 sprintf(title,"ADC values for channel %i",i);
00016 adcValue[i] = new TH1F(name,title,2000,0,4000);
00017 }
00018 }
00019
00020 void TComplicatedExampleCanvas::SetUpCompositeFrame(TGCompositeFrame *compFrame, TRootanaDisplay *display){
00021
00022
00023
00024
00025 TGHorizontalFrame *labelframe = new TGHorizontalFrame(compFrame,200,40);
00026
00027 fBankCounterButton = new TGNumberEntry(labelframe, 0, 9,999, TGNumberFormat::kNESInteger,
00028 TGNumberFormat::kNEANonNegative,
00029 TGNumberFormat::kNELLimitMinMax,
00030 0, 31);
00031
00032 fBankCounterButton->Connect("ValueSet(Long_t)", "TRootanaDisplay", display, "UpdatePlotsAction()");
00033 fBankCounterButton->GetNumberEntry()->Connect("ReturnPressed()", "TRootanaDisplay", display, "UpdatePlotsAction()");
00034 labelframe->AddFrame(fBankCounterButton, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5));
00035 TGLabel *labelMinicrate = new TGLabel(labelframe, "ADC Channel (0-31)");
00036 labelframe->AddFrame(labelMinicrate, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5));
00037
00038 compFrame->AddFrame(labelframe, new TGLayoutHints(kLHintsCenterX,2,2,2,2));
00039
00040
00041 }
00042
00043
00044
00045
00046 void TComplicatedExampleCanvas::ResetCanvasHistograms(){
00047
00048 for(int i = 0; i < 32; i++)
00049 adcValue[i]->Reset();
00050 }
00051
00052
00053 void TComplicatedExampleCanvas::UpdateCanvasHistograms(TDataContainer& dataContainer){
00054
00055
00056 TV792Data *v792 = dataContainer.GetEventData<TV792Data>("ADC0");
00057 if(v792 ){
00058
00059
00060 std::vector<VADCMeasurement>& measurements = v792->GetMeasurements();
00061 for(unsigned int i = 0; i < measurements.size(); i++){
00062 VADCMeasurement adcmeas = measurements[i];
00063
00064
00065 int chan = adcmeas.GetChannel();
00066 if(chan >= 0 && chan < 32){
00067 adcValue[chan]->Fill(adcmeas.GetMeasurement());
00068 }
00069 }
00070 }
00071 }
00072
00073
00074 void TComplicatedExampleCanvas::PlotCanvas(TDataContainer& dataContainer, TRootEmbeddedCanvas *embedCanvas){
00075
00076 TCanvas* c1 = embedCanvas->GetCanvas();
00077 c1->Clear();
00078 int whichbank = fBankCounterButton->GetNumberEntry()->GetIntNumber();
00079 if(whichbank >=0 && whichbank <32)
00080 adcValue[whichbank]->Draw();
00081 c1->Modified();
00082 c1->Update();
00083
00084 }