ARA ROOT v3.3 Software

AraDisplay/AraDisplay.cxx

00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00144 //System includes
00145 #include <fstream>
00146 #include <iostream>
00147 
00148 //Magic Display Includes
00149 #include "AraDisplay.h"
00150 #include "AraWaveformGraph.h"
00151 #include "AraAtriCanvasMaker.h"
00152 #include "AraIcrrCanvasMaker.h"
00153 #include "AraControlPanel.h"
00154 #include "AraGeomTool.h"
00155 
00156 //Event Reader Includes
00157 #include "UsefulIcrrStationEvent.h"
00158 #include "RawIcrrStationEvent.h"
00159 #include "UsefulAtriStationEvent.h"
00160 #include "RawAtriStationEvent.h"
00161 
00162 //ROOT Includes
00163 #include "TROOT.h"
00164 #include "TCanvas.h"
00165 #include "TTree.h"
00166 #include "TFile.h"
00167 #include "TTree.h"
00168 #include "TTreeIndex.h"
00169 #include "TButton.h"
00170 #include "TGroupButton.h"
00171 #include "TThread.h"
00172 #include "TEventList.h"
00173 #include <TGClient.h>
00174 
00175 using namespace std;
00176 
00177 AraDisplay*  AraDisplay::fgInstance = 0;
00178 //Leave these as global variables for now
00179 
00180 
00181 
00182 void AraDisplay::zeroPointers() 
00183 {
00184   fIcrrEventCanMaker=0;
00185   fAtriEventCanMaker=0;
00186   fCurrentRun=0;
00187   fApplyEventCut=0;
00188   fEventCutListEntry=-1;
00189   fEventTreeIndexEntry=-1;
00190   fEventEntry=0;
00191   fEventFile=0;
00192   fIcrrUsefulEventPtr=0;
00193   fIcrrRawEventPtr=0;
00194   fAtriUsefulEventPtr=0;
00195   fAtriRawEventPtr=0;
00196   fIcrrData=0;
00197 
00198 
00199   fAraCanvas=0;
00200   fAraEventInfoPad=0;
00201   fAraMainPad=0;
00202   
00203 
00204   fgInstance=this;
00205   fEventTree=0;
00206   fEventPlaySleepMs=0;
00207   
00208   fCanvasLayout=AraDisplayCanvasLayoutOption::kElectronicsView;
00209   fWaveformFormat=AraDisplayFormatOption::kWaveform;
00210 
00211 }
00212 
00213 AraDisplay::AraDisplay()
00214 {
00215   //Default constructor
00216   zeroPointers();
00217 }
00218 
00219 AraDisplay::~AraDisplay()
00220 {
00221    //Default destructor
00222 }
00223 
00224 
00225 AraDisplay::AraDisplay(char *baseDir, unsigned int time, AraCalType::AraCalType_t calType)
00226 {
00227   //Offline constructor
00228   zeroPointers();
00229   cout << "AraDisplay::AraDisplay(" << baseDir << " , " << time
00230        << ")" << endl;
00231   fCurrentFileTime=time;
00232   strncpy(fCurrentBaseDir,baseDir,179);
00233   fCalType=calType;
00234   
00235 }
00236 
00237 AraDisplay::AraDisplay(char *eventFile, AraCalType::AraCalType_t calType)
00238 {
00239   //Offline constructor
00240   zeroPointers();
00241   cout << "AraDisplay::AraDisplay(" << eventFile
00242        << ")" << endl;
00243   fCurrentFileTime=-1;
00244   //  strncpy(fCurrentBaseDir,gSystem->DirName(eventFile),FILENAME_MAX);
00245   fCalType=calType;
00246   loadEventTree(eventFile);
00247   
00248 }
00249 
00250 
00251 //______________________________________________________________________________
00252 AraDisplay*  AraDisplay::Instance()
00253 {
00254    //static function
00255    return (fgInstance) ? (AraDisplay*) fgInstance : new AraDisplay();
00256 }
00257 
00258 void AraDisplay::startControlPanel() 
00259 {
00260   fControlPanel=AraControlPanel::Instance();
00261   //  
00262   //  fControlPanel=new AraControlPanel(gClient->GetRoot(), 400, 200);
00263   //  fControlPanel->DrawControlPanel();
00264   //  fControlPanel->Draw();
00265 }
00266 
00267 
00268 void AraDisplay::startEventDisplay()
00269 {
00270  
00271 
00272   
00273   if(fIcrrData)
00274     fIcrrEventCanMaker=new AraIcrrCanvasMaker(this->fCalType);
00275   else
00276     fAtriEventCanMaker = new AraAtriCanvasMaker(this->fCalType);
00277   int retVal=this->getEventEntry();
00278   if(retVal==0)
00279       this->refreshEventDisplay();   
00280 }
00281 
00282 int AraDisplay::getEventEntry()
00283 {
00284   if(!fEventTree) {
00285     if(loadEventTree()<0) {
00286       std::cout << "Couldn't open event file\n";
00287       return -1;
00288     }
00289   }
00290   if(fEventEntry<fEventTree->GetEntries())
00291     fEventTree->GetEntry(fEventEntry);
00292   else {
00293     std::cout << "No more entries in event tree " << fEventEntry << "\t" << fEventTree->GetEntries() << endl;
00294     return -1;
00295   }
00296   
00297   
00298   if(fIcrrData) {
00299     if(fIcrrUsefulEventPtr)
00300     delete fIcrrUsefulEventPtr;
00301     fIcrrUsefulEventPtr = new UsefulIcrrStationEvent(fIcrrRawEventPtr,fCalType);
00302   }
00303   else {
00304     if(fAtriUsefulEventPtr)
00305     delete fAtriUsefulEventPtr;
00306     fAtriUsefulEventPtr = new UsefulAtriStationEvent(fAtriRawEventPtr,fCalType);
00307   }
00308   
00309   //Need to make configurable at some point
00310   //This will also need to be modifed to make realEvent accessible outside here
00311    return 0;
00312 }
00313 
00314 
00315 void AraDisplay::closeCurrentFile()
00316 {
00317   
00318   if(fEventFile)
00319     fEventFile->Close();
00320 
00321   fEventFile=0;
00322   fEventTree=0;
00323 }
00324 
00325 
00326 int AraDisplay::loadEventTree(char *eventFile)
00327 {     
00328   //Try and open file or chain
00329   if(!fEventTree) 
00330     fEventTree = new TChain("eventTree");
00331   char eventName[FILENAME_MAX];
00332   if(!eventFile) {
00333     //Step one try calEventFile
00334     sprintf(eventName,"%s/event_%d.root",fCurrentBaseDir,fCurrentFileTime);   
00335     std::cout << eventName << "\n";
00336     fEventTree->Add(eventName);
00337     //    std::cout << fEventTree->GetEntries() << "\n";
00338     if(fEventTree->GetEntries()>0) {
00339       for(int extra=1;extra<100;extra++) {
00340         sprintf(eventName,"%s/event_%d_%d.root",fCurrentBaseDir,fCurrentFileTime,extra); 
00341         TFile *fpTest = TFile::Open(eventName);
00342         if(!fpTest) 
00343           break;
00344         else {
00345           delete fpTest;
00346           fEventTree->Add(eventName);
00347         }
00348       }
00349     }
00350   }
00351   else {
00352     fEventTree->Add(eventFile);
00353     strncpy(eventName,eventFile,FILENAME_MAX);
00354   }
00355   
00356   if(fEventTree->GetEntries()<1) {
00357     cout << "Couldn't open: " << eventName << "\n";
00358     return -1;
00359   }
00360   //JPD - Use the RawStationEvent base class to interogate the tree
00361   //      and decide if this is a Icrr or Atri type station
00362 
00363   fEventTree->SetBranchAddress("event",&fRawStationEventPtr);  
00364   fEventTree->GetEntry(1);
00365 
00366   //  fprintf(stderr, "loadEventTree -- stationId %i\n", fRawStationEventPtr->stationId);
00367 
00368   fIcrrData=AraGeomTool::isIcrrStation(fRawStationEventPtr->stationId);
00369 
00370 
00371   fEventTree->ResetBranchAddresses();
00372 
00373   if(fIcrrData) 
00374     fEventTree->SetBranchAddress("event",&fIcrrRawEventPtr);  
00375   else
00376     fEventTree->SetBranchAddress("event",&fAtriRawEventPtr);  
00377   fEventTree->SetBranchAddress("run",&fCurrentRun);  
00378   fEventEntry=0;
00379 
00380   //jdp this is where we will build the tree index on
00381   fEventTree->BuildIndex("event.head.eventNumber");
00382   fEventIndex = (TTreeIndex*) fEventTree->GetTreeIndex();
00383 
00384   return 0;
00385 }
00386 
00387 void AraDisplay::refreshEventDisplay()
00388 {
00389    if(!fAraCanvas) {
00390       fAraCanvas = new TCanvas("canAra","canAra",1200,800);
00391       fAraCanvas->cd();
00392       drawEventButtons();
00393    }
00394    if(!fAraMainPad) {
00395       fAraCanvas->cd();
00396       fAraMainPad= new TPad("canAraMain","canAraMain",0,0,1,0.9);
00397       fAraMainPad->Draw();
00398       fAraCanvas->Update();
00399    }
00400    if(!fAraEventInfoPad) {
00401       fAraCanvas->cd();
00402       fAraEventInfoPad= new TPad("canAraEventInfo","canAraEventInfo",0.2,0.91,0.8,0.99);
00403       fAraEventInfoPad->Draw();
00404       fAraCanvas->Update();
00405    }  
00406    //   fAraMainPad->Clear();
00407 
00408            
00409    //This will need to change  
00410    if(fIcrrData) {
00411      fIcrrEventCanMaker->getEventInfoCanvas(fIcrrUsefulEventPtr,fAraEventInfoPad,fCurrentRun);   
00412      fIcrrEventCanMaker->setWaveformFormat(fWaveformFormat);
00413      fIcrrEventCanMaker->setCanvasLayout(fCanvasLayout);
00414      fIcrrEventCanMaker->getEventViewerCanvas(fIcrrUsefulEventPtr,fAraMainPad);      
00415    }
00416    else {
00417      fAtriEventCanMaker->getEventInfoCanvas(fAtriUsefulEventPtr,fAraEventInfoPad,fCurrentRun);   
00418      fAtriEventCanMaker->setWaveformFormat(fWaveformFormat);
00419      fAtriEventCanMaker->setCanvasLayout(fCanvasLayout);
00420      fAtriEventCanMaker->getEventViewerCanvas(fAtriUsefulEventPtr,fAraMainPad);      
00421    }
00422    fAraCanvas->Update();
00423 }
00424 
00425 void AraDisplay::applyCut(char *cutString)
00426 {
00427   if(cutString==0)
00428     fApplyEventCut=0;
00429   
00430   if(!fEventTree) {
00431     if(loadEventTree()<0) {
00432       std::cout << "Couldn't open event file\n";
00433       return;
00434     }
00435   }
00436 
00437   TCanvas tempCan;
00438   tempCan.cd();
00439   fEventTree->Draw(">>elist1",cutString);
00440   fCutEventList = (TEventList*)gDirectory->Get("elist1");
00441   fApplyEventCut=1;
00442   fCutEventList->Print();
00443  
00444 
00445 }
00446 
00447 int AraDisplay::displayNextEvent()
00448 {
00449   //  static Int_t fEventTreeIndexEntry=-1;
00450   //  static Int_t listNumber=-1;
00451   if(fApplyEventCut==1) {
00452     fEventCutListEntry++;
00453     if(fEventCutListEntry<fCutEventList->GetN()) {
00454       fEventEntry=fCutEventList->GetEntry(fEventCutListEntry);  
00455       int retVal=getEventEntry();
00456       if(fIcrrData)
00457         fIcrrEventCanMaker->fNewEvent=1;
00458       else 
00459         fAtriEventCanMaker->fNewEvent=1;
00460       if(retVal==0) {
00461         refreshEventDisplay(); 
00462       }
00463       return retVal;
00464     }
00465     else {
00466       fEventCutListEntry=fCutEventList->GetN()-1;
00467       return -1;
00468     }      
00469   }
00470   else {
00471     fEventEntry++;
00472     int retVal=getEventEntry();
00473     if(fIcrrData)
00474       fIcrrEventCanMaker->fNewEvent=1;
00475     else
00476       fAtriEventCanMaker->fNewEvent=1;
00477     if(retVal==0) {
00478       refreshEventDisplay(); 
00479     }
00480     else {
00481       fEventEntry--;
00482     }
00483     return retVal;  
00484   }
00485 }
00486 
00487 
00488 int AraDisplay::displayFirstEvent()
00489 {
00490 
00491   if(fApplyEventCut==1) {    
00492     fEventCutListEntry=0;
00493     if(fEventCutListEntry<fCutEventList->GetN()) {
00494       fEventEntry=fCutEventList->GetEntry(fEventCutListEntry);  
00495       int retVal=getEventEntry();
00496       if(fIcrrData)
00497         fIcrrEventCanMaker->fNewEvent=1;
00498       else
00499         fAtriEventCanMaker->fNewEvent=1;
00500       if(retVal==0) {
00501         refreshEventDisplay(); 
00502       }
00503       return retVal;
00504     }
00505     else {
00506       fEventCutListEntry=0;
00507       return -1;
00508     }      
00509   }
00510   else  {    
00511     fEventEntry=0;
00512     int retVal=getEventEntry();
00513     if(fIcrrData)
00514       fIcrrEventCanMaker->fNewEvent=1;
00515     else
00516       fAtriEventCanMaker->fNewEvent=1;
00517     if(retVal==0) {
00518       refreshEventDisplay(); 
00519     }
00520     else fEventEntry--;
00521     return retVal;  
00522   }
00523   return -1;
00524 }
00525 
00526 
00527 int AraDisplay::displayLastEvent()
00528 {
00529   //  fEventTree->Refresh();
00530   
00531   Long64_t eventEnts=fEventTree->GetEntries();
00532 
00533   if(fApplyEventCut==1) {    
00534     fEventCutListEntry=fCutEventList->GetN()-1;
00535     if(fEventCutListEntry<fCutEventList->GetN() && fEventCutListEntry>=0) {
00536       fEventEntry=fCutEventList->GetEntry(fEventCutListEntry);  
00537       int retVal=getEventEntry();
00538       if(fIcrrData)
00539         fIcrrEventCanMaker->fNewEvent=1;
00540       else
00541         fAtriEventCanMaker->fNewEvent=1;
00542       if(retVal==0) {
00543         refreshEventDisplay(); 
00544       }
00545       return retVal;
00546     }
00547     else {
00548       fEventCutListEntry=0;
00549       return -1;
00550     }      
00551   }
00552   else  {    
00553     fEventEntry=eventEnts-1;
00554     int retVal=getEventEntry();
00555     if(fIcrrData)
00556       fIcrrEventCanMaker->fNewEvent=1;
00557     else
00558       fAtriEventCanMaker->fNewEvent=1;
00559     if(retVal==0) {
00560       refreshEventDisplay(); 
00561     }
00562     else fEventEntry--;
00563     return retVal;  
00564   }
00565   return -1;
00566 }
00567 
00568 
00569 int AraDisplay::displayPreviousEvent()
00570 {
00571   //  static Int_t fEventTreeIndexEntry=-1;
00572   //  static Int_t fEventCutListEntry=-1;
00573 
00574   if(fApplyEventCut==1) {
00575     //    std::cout << fApplyEventCut << "\t" << fEventCutListEntry << "\t" << fCutEventList->GetN() << "\n";
00576     fEventCutListEntry--;
00577     if(fEventCutListEntry>=0 && fEventCutListEntry<fCutEventList->GetN()) {
00578       fEventEntry=fCutEventList->GetEntry(fEventCutListEntry);  
00579       int retVal=getEventEntry();
00580       if(fIcrrData)
00581         fIcrrEventCanMaker->fNewEvent=1;
00582       else
00583         fAtriEventCanMaker->fNewEvent=1;
00584       if(retVal==0) {
00585         refreshEventDisplay(); 
00586       }
00587       else {
00588         fEventCutListEntry++;
00589       }
00590       return retVal;
00591     }
00592     else {
00593       fEventCutListEntry++;
00594       return -1;
00595     }      
00596   }
00597   else  {
00598     if(fEventEntry>0)
00599       fEventEntry--;
00600     else 
00601       return -1;
00602    int retVal=getEventEntry();
00603    if(fIcrrData)
00604      fIcrrEventCanMaker->fNewEvent=1;
00605    else
00606      fAtriEventCanMaker->fNewEvent=1;
00607    if(retVal==0) {
00608      refreshEventDisplay(); 
00609    }  
00610    return retVal;  
00611   }
00612 }
00613 
00614 
00615 int AraDisplay::displayThisEvent(UInt_t eventNumber)
00616 {
00617   cout << "displayThisEvent: " << eventNumber  <<endl;  
00618   
00619   if(!fIcrrEventCanMaker && !fAtriEventCanMaker) startEventDisplay();
00620   
00621 
00622   if(eventNumber==0) {
00623     fEventEntry=0;
00624   }
00625   else {
00626     fEventEntry=fEventTree->GetEntryNumberWithIndex(eventNumber);
00627     if(fEventEntry<0) 
00628       return -1;      
00629   }
00630   cout << "fEventEntry: " << fEventEntry << endl;
00631   int retVal=getEventEntry();
00632   if(retVal==0) 
00633     refreshEventDisplay(); 
00634   else {
00635     cout << "retVal: " << retVal << endl;
00636   }
00637   return retVal;  
00638 }
00639 
00640 void AraDisplay::drawEventButtons() {
00641    TButton *butNext = new TButton("Next ","AraDisplay::Instance()->displayNextEvent();",0.95,0.975,1,1);
00642    butNext->SetTextSize(0.5);
00643    butNext->SetFillColor(kGreen-10);
00644    butNext->Draw();
00645    TButton *butPrev = new TButton("Prev.","AraDisplay::Instance()->displayPreviousEvent();",0.95,0.95,1,0.975);
00646    butPrev->SetTextSize(0.5);
00647    butPrev->SetFillColor(kBlue-10);
00648    butPrev->Draw();
00649    TButton *butFirst = new TButton("First ","AraDisplay::Instance()->displayFirstEvent();",0.95,0.925,1,0.95);
00650    butFirst->SetTextSize(0.5);
00651    butFirst->SetFillColor(kOrange+10);
00652    butFirst->Draw();
00653    TButton *butLast = new TButton("Last.","AraDisplay::Instance()->displayLastEvent();",0.95,0.90,1,0.925);
00654    butLast->SetTextSize(0.5);
00655    butLast->SetFillColor(kViolet-10);
00656    butLast->Draw();
00657    
00658 
00659    TButton *butPlay = new TButton("Play","AraDisplay::Instance()->startEventPlaying();",0.9,0.97,0.95,1);
00660    butPlay->SetTextSize(0.5);
00661    butPlay->SetFillColor(kGreen-10);
00662    butPlay->Draw();
00663    TButton *butPlayRev = new TButton("Rev ","AraDisplay::Instance()->startEventPlayingReverse();",0.9,0.94,0.95,0.97);
00664    butPlayRev->SetTextSize(0.5);
00665    butPlayRev->SetFillColor(kBlue-10);
00666    butPlayRev->Draw();
00667    TButton *butStop = new TButton("Stop","AraDisplay::Instance()->stopEventPlaying();",0.90,0.90,0.95,0.94);
00668    butStop->SetTextSize(0.5);
00669    butStop->SetFillColor(kRed-10);
00670    butStop->Draw();
00671    TButton *butReset; 
00672    if(fIcrrData) {
00673      butReset = new TButton("Reset Avg","AraIcrrCanvasMaker::Instance()->resetAverage();",0.85,0.975,0.90,1);
00674    }
00675    else {
00676      butReset = new TButton("Reset Avg","AraAtriCanvasMaker::Instance()->resetAverage();",0.85,0.975,0.90,1);
00677 
00678    }
00679    butReset->SetTextSize(0.5);
00680    butReset->SetFillColor(kViolet-10);
00681    butReset->Draw();;
00682    TButton *butGoto = new TButton("Go to Event","AraDisplay::Instance()->startControlPanel();",0.85,0.95,0.9,0.975);
00683    butGoto->SetTextSize(0.5);
00684    butGoto->SetFillColor(kOrange);
00685    butGoto->Draw();
00686    //   fTimeEntryButton= new TButton("Event#","AraDisplay::Instance()->toggleTimeEventOrdering();",0.85,0.925,0.9,0.95);
00687    //   fTimeEntryButton->SetTextSize(0.5);
00688    //   fTimeEntryButton->SetFillColor(kGray);
00689    //   fTimeEntryButton->Draw();
00690 
00691 
00692    fElecViewButton = new TButton("Elec. View","AraDisplay::Instance()->setCanvasLayout(AraDisplayCanvasLayoutOption::kElectronicsView); AraDisplay::Instance()->refreshEventDisplay();",0,0.975,0.1,1);
00693    fElecViewButton->SetTextSize(0.5);
00694    fElecViewButton->SetFillColor(kGray+3);
00695    fElecViewButton->Draw();
00696    fRFViewButton = new TButton("RF Chan#","AraDisplay::Instance()->setCanvasLayout(AraDisplayCanvasLayoutOption::kRFChanView); AraDisplay::Instance()->refreshEventDisplay();",0,0.95,0.1,0.975);
00697    fRFViewButton->SetTextSize(0.5);
00698    fRFViewButton->SetFillColor(kGray);
00699    fRFViewButton->Draw();
00700    fAntViewButton = new TButton("Antenna","AraDisplay::Instance()->setCanvasLayout(AraDisplayCanvasLayoutOption::kAntennaView); AraDisplay::Instance()->refreshEventDisplay();",0,0.925,0.1,0.95);
00701    fAntViewButton->SetTextSize(0.5);
00702    fAntViewButton->SetFillColor(kGray);
00703    fAntViewButton->Draw();
00704    fMapViewButton = new TButton("Int. Map","AraDisplay::Instance()->setCanvasLayout(AraDisplayCanvasLayoutOption::kIntMapView); AraDisplay::Instance()->refreshEventDisplay();",0,0.90,0.1,0.925);
00705    fMapViewButton->SetTextSize(0.5);
00706    fMapViewButton->SetFillColor(kGray);
00707    fMapViewButton->Draw();
00708 
00709    //NEW BUTTONS
00710    fWaveformButton = new TButton("Waveform","AraDisplay::Instance()->setWaveformFormat(AraDisplayFormatOption::kWaveform); AraDisplay::Instance()->refreshEventDisplay();",0.1,0.975,0.2,1);
00711    fWaveformButton->SetTextSize(0.4);
00712    fWaveformButton->SetFillColor(kGray+3);
00713    fWaveformButton->Draw();
00714    fPowerButton = new TButton("FFT","AraDisplay::Instance()->setWaveformFormat(AraDisplayFormatOption::kFFT); AraDisplay::Instance()->refreshEventDisplay();",0.1,0.95,0.2,0.975);
00715    fPowerButton->SetTextSize(0.4);
00716    fPowerButton->SetFillColor(kGray);
00717    fPowerButton->Draw();
00718    fHilbertButton = new TButton("Hilbert","AraDisplay::Instance()->setWaveformFormat(AraDisplayFormatOption::kHilbertEnvelope); AraDisplay::Instance()->refreshEventDisplay();",0.1,0.925,0.2,0.95);
00719    fHilbertButton->SetTextSize(0.4);
00720    fHilbertButton->SetFillColor(kGray);
00721    fHilbertButton->Draw();
00722    fAverageFFTButton = new TButton("Average FFT","AraDisplay::Instance()->setWaveformFormat(AraDisplayFormatOption::kAveragedFFT); AraDisplay::Instance()->refreshEventDisplay();",0.1,0.9,0.2,0.925);
00723    fAverageFFTButton->SetTextSize(0.4);
00724    fAverageFFTButton->SetFillColor(kGray);
00725    fAverageFFTButton->Draw();
00726 
00727    
00728 }
00729 
00730 void AraDisplay::setCanvasLayout(AraDisplayCanvasLayoutOption::AraDisplayCanvasLayoutOption_t option)
00731 {
00732    fCanvasLayout=option;
00733    switch(option) {
00734    case AraDisplayCanvasLayoutOption::kElectronicsView:
00735       fElecViewButton->SetFillColor(kGray+3);
00736       fRFViewButton->SetFillColor(kGray);
00737       fAntViewButton->SetFillColor(kGray);
00738       fMapViewButton->SetFillColor(kGray);
00739       break;
00740    case AraDisplayCanvasLayoutOption::kAntennaView:
00741       fElecViewButton->SetFillColor(kGray);
00742       fRFViewButton->SetFillColor(kGray);
00743       fAntViewButton->SetFillColor(kGray+3);
00744       fMapViewButton->SetFillColor(kGray);
00745       break;
00746    case AraDisplayCanvasLayoutOption::kRFChanView:
00747       fRFViewButton->SetFillColor(kGray+3);
00748       fElecViewButton->SetFillColor(kGray);
00749       fAntViewButton->SetFillColor(kGray);
00750       fMapViewButton->SetFillColor(kGray);
00751       break;
00752    case AraDisplayCanvasLayoutOption::kIntMapView:
00753       fRFViewButton->SetFillColor(kGray);
00754       fElecViewButton->SetFillColor(kGray);
00755       fAntViewButton->SetFillColor(kGray);
00756       fMapViewButton->SetFillColor(kGray+3);
00757       break;
00758    default:
00759       break;
00760    }   
00761    fElecViewButton->Modified();
00762    fRFViewButton->Modified();  
00763    fAntViewButton->Modified(); 
00764    fMapViewButton->Modified(); 
00765 }
00766 
00767 
00768 
00769 void AraDisplay::setWaveformFormat(AraDisplayFormatOption::AraDisplayFormatOption_t waveformOption)
00770 {
00771   fWaveformFormat=waveformOption;
00772   if(waveformOption==AraDisplayFormatOption::kWaveform) {
00773       //Turn on fft view off     
00774       fWaveformButton->SetFillColor(kGray+3);
00775       fPowerButton->SetFillColor(kGray);
00776       fHilbertButton->SetFillColor(kGray);
00777       fAverageFFTButton->SetFillColor(kGray);
00778       fWaveformButton->Modified();
00779       fPowerButton->Modified();
00780       fHilbertButton->Modified();
00781       fAverageFFTButton->Modified();
00782   }
00783   else if(waveformOption==AraDisplayFormatOption::kFFT) {
00784       //Turn fft view on
00785       fWaveformButton->SetFillColor(kGray);
00786       fPowerButton->SetFillColor(kGray+3);
00787       fHilbertButton->SetFillColor(kGray);
00788       fAverageFFTButton->SetFillColor(kGray);
00789       fWaveformButton->Modified();
00790       fPowerButton->Modified();
00791       fHilbertButton->Modified();
00792       fAverageFFTButton->Modified();
00793    }
00794   else if(waveformOption==AraDisplayFormatOption::kHilbertEnvelope) {
00795       //Turn fft view on
00796       fWaveformButton->SetFillColor(kGray);
00797       fPowerButton->SetFillColor(kGray);
00798       fHilbertButton->SetFillColor(kGray+3);
00799       fAverageFFTButton->SetFillColor(kGray);
00800       fWaveformButton->Modified();
00801       fPowerButton->Modified();
00802       fHilbertButton->Modified();
00803       fAverageFFTButton->Modified();
00804    }
00805   else if(waveformOption==AraDisplayFormatOption::kAveragedFFT) {
00806       //Turn fft view on
00807       fWaveformButton->SetFillColor(kGray);
00808       fPowerButton->SetFillColor(kGray);
00809       fHilbertButton->SetFillColor(kGray);
00810       fAverageFFTButton->SetFillColor(kGray+3);
00811       fWaveformButton->Modified();
00812       fPowerButton->Modified();
00813       fHilbertButton->Modified();
00814       fAverageFFTButton->Modified();
00815    }
00816       
00817 }
00818 
00819 
00820 UInt_t AraDisplay::getCurrentEvent()
00821 {
00822   if(fIcrrData) {
00823     if(fIcrrUsefulEventPtr) return fIcrrUsefulEventPtr->head.eventNumber; 
00824   }
00825   else {
00826     if(fAtriUsefulEventPtr) return fAtriUsefulEventPtr->eventNumber;
00827   }
00828   return 0;
00829 }
00830 
00831 
00832 void AraDisplay::startEventPlaying()
00833 {
00834 
00835   fInEventPlayMode=1;
00836   do {
00837     gSystem->ProcessEvents();
00838     if(!fInEventPlayMode) break;
00839     if(fEventPlaySleepMs>0)
00840       gSystem->Sleep(fEventPlaySleepMs);
00841   }
00842   while(this->displayNextEvent()==0);
00843   if(fInEventPlayMode) {
00844     Long64_t Entries=fEventTree->GetEntries();
00845     if(fEventTree->GetEntries()!=Entries) {
00846       std::cout << Entries <<  "\n";
00847       startEventPlaying();
00848     }
00849   }    
00850 }
00851 
00852 
00853 
00854 void AraDisplay::startEventPlayingReverse()
00855 {
00856   fInEventPlayMode=1;
00857   do {
00858     gSystem->ProcessEvents();
00859     if(!fInEventPlayMode) break;
00860     if(fEventPlaySleepMs>0)
00861       gSystem->Sleep(fEventPlaySleepMs);
00862   }
00863   while(this->displayPreviousEvent()==0);
00864 }
00865 
00866 void AraDisplay::stopEventPlaying() 
00867 {
00868   fInEventPlayMode=0;
00869 }
00870 

Generated on Tue Sep 11 19:51:09 2012 for ARA ROOT v3.3 Software by doxygen 1.4.7