TComplicatedExampleCanvas.cxx

Go to the documentation of this file.
00001 #include "TComplicatedExampleCanvas.hxx"
00002 
00003 //#include "TGHorizontalFrame.h"
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   // Now create my embedded canvas, along with the various buttons for this canvas.
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 /// Reset the histograms for this canvas
00046 void TComplicatedExampleCanvas::ResetCanvasHistograms(){
00047 
00048   for(int i = 0; i < 32; i++)
00049     adcValue[i]->Reset();
00050 }
00051   
00052 /// Update the histograms for this canvas.
00053 void TComplicatedExampleCanvas::UpdateCanvasHistograms(TDataContainer& dataContainer){
00054 
00055   // Get the V792 data
00056   TV792Data *v792 = dataContainer.GetEventData<TV792Data>("ADC0");
00057   if(v792 ){ 
00058 
00059     // Loop over ADC measurements
00060     std::vector<VADCMeasurement>& measurements = v792->GetMeasurements();
00061     for(unsigned int i = 0; i < measurements.size(); i++){
00062       VADCMeasurement adcmeas = measurements[i];
00063         
00064       // For each measurement, update histogram
00065       int chan = adcmeas.GetChannel();
00066       if(chan >= 0 && chan < 32){
00067         adcValue[chan]->Fill(adcmeas.GetMeasurement());
00068       }
00069     }      
00070   }
00071 }
00072   
00073 /// Plot the histograms for this canvas
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 }

Generated on 12 Feb 2016 for ROOT Analyzer by  doxygen 1.6.1