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

Generated on Tue Jul 16 16:58:01 2013 for ARA ROOT v3.10 Software by doxygen 1.4.7