Changeset 11127 for trunk/FACT++/gui
- Timestamp:
- 06/23/11 09:29:42 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/FACT++/gui/FactGui.h
r11117 r11127 387 387 DimStampedInfo fDimFadEvents; 388 388 DimStampedInfo fDimFadCurrentEvent; 389 DimStampedInfo fDimFadEventData; 389 390 DimStampedInfo fDimFadConnections; 390 391 … … 960 961 } 961 962 963 struct DimEventData 964 { 965 uint16_t Roi ; // #slices per pixel (same for all pixels and tmarks) 966 uint32_t EventNum ; // EventNumber as from FTM 967 uint16_t TriggerType ; // Trigger Type from FTM 968 969 uint32_t PCTime ; // when did event start to arrive at PC 970 uint32_t BoardTime; // 971 972 int16_t StartPix; // First Channel per Pixel (Pixels sorted according Software ID) ; -1 if not filled 973 int16_t StartTM; // First Channel for TimeMark (sorted Hardware ID) ; -1 if not filled 974 975 uint16_t Adc_Data[]; // final length defined by malloc .... 976 977 } __attribute__((__packed__));; 978 979 void handleFadEventData(const DimData &d) 980 { 981 if (d.size()==0) 982 return; 983 984 #ifdef HAVE_ROOT 985 const DimEventData &dat = d.ref<DimEventData>(); 986 987 if (d.size()<sizeof(DimEventData)) 988 { 989 cout << "Size mismatch in " << d.name << ": Found=" << d.size() << " Expected=" << sizeof(DimEventData) << endl; 990 return; 991 } 992 993 if (d.size()!=dat.Roi*2+sizeof(DimEventData)) 994 { 995 cout << "Size mismatch in " << d.name << ": Found=" << d.size() << " Expected=" << dat.Roi*2+sizeof(DimEventData) << endl; 996 return; 997 } 998 999 TCanvas *c = fAdcDataCanv->GetCanvas(); 1000 1001 TH1 *h = dynamic_cast<TH1*>(c->FindObject("EventData")); 1002 if (h && h->GetNbinsX()!=dat.Roi) 1003 { 1004 delete h; 1005 h = 0; 1006 } 1007 1008 if (!h) 1009 { 1010 c->cd(); 1011 1012 TH1D hist("EventData", "", dat.Roi, -0.5, dat.Roi-0.5); 1013 hist.SetStats(kFALSE); 1014 //hist->SetBit(TH1::kNoTitle); 1015 hist.SetMarkerStyle(kFullDotMedium); 1016 hist.SetYTitle("Voltage [mV]"); 1017 hist.GetXaxis()->CenterTitle(); 1018 hist.GetYaxis()->CenterTitle(); 1019 hist.SetMinimum(-1025); 1020 hist.SetMaximum(1025); 1021 h = hist.DrawCopy("P"); 1022 h->SetDirectory(0); 1023 1024 } 1025 1026 ostringstream str; 1027 str << "ADC Pipeline (start=" << dat.StartTM << ")"; 1028 h->SetXTitle(str.str().c_str()); 1029 1030 //str.str(""); 1031 //str << "Crate=" << crate << " Board=" << board << " Channel=" << channel << " [" << d.time() << "]" << endl; 1032 //hist->SetTitle(str.str().c_str()); 1033 1034 for (int i=0; i<dat.Roi; i++) 1035 h->SetBinContent(i+1, dat.Adc_Data[i]-1024); 1036 1037 c->Modified(); 1038 c->Update(); 1039 #endif 1040 } 1041 962 1042 void handleFadConnections(const DimData &d) 963 1043 { 964 if (!CheckSize(d, 4 0))1044 if (!CheckSize(d, 41)) 965 1045 return; 966 1046 … … 976 1056 } 977 1057 } 978 } 979 980 /* 981 TCanvas *c = fAdcDataCanv->GetCanvas(); 982 983 TH1D *hist = c->FindObject("Hist"); 984 if (hist && hist->GetNbinsX()!=...) 985 { 986 delete hist; 987 hist = 0; 988 989 } 990 if (!hist) 991 { 992 hist = new TH1D("Hist", "", n, -0.5, n-0.5); 993 hist->SetStats(kFALSE); 994 hist->SetDirectory(0); 995 //hist->SetBit(TH1::kNoTitle); 996 hist->SetBit(kCanDelete); 997 hist->SetMarkerStyle(kFullDotMedium); 998 hist->SetYTitle("Voltage [mV]"); 999 hist->GetXaxis()->CenterTitle(); 1000 hist->GetYaxis()->CenterTitle(); 1001 hist->SetMinimum(-1025); 1002 hist->SetMaximum(1025); 1003 hist->Draw("P"); 1004 } 1005 1006 ostringstream str; 1007 str << "ADC Pipeline (start=" << startbin << ")"; 1008 hist->SetXTitle(str.str().c_str()); 1009 1010 str.str(""); 1011 str << "Crate=" << crate << " Board=" << board << " Channel=" << channel << " [" << d.time() << "]" << endl; 1012 hist->SetTitle(str.str().c_str()); 1013 1014 for (int i=0; i<n; i++) 1015 hist->SetBinContent(i+1, value[i]-1024); 1016 1017 c->Modified(); 1018 c->Update(); 1019 */ 1058 1059 SetLedColor(fFadLEDEventBuilder, ptr[40]==0?kLedRed:kLedGreen, d.time); 1060 } 1020 1061 1021 1062 // ===================== FTM ============================================ … … 1077 1118 return; 1078 1119 1079 const double avgrate = sdata.fTimeStamp>0 ? double(sdata.fTriggerCounter)/sdata.fTimeStamp*1000000 : 1;1120 // const double avgrate = sdata.fTimeStamp>0 ? double(sdata.fTriggerCounter)/sdata.fTimeStamp*1000000 : 1; 1080 1121 1081 1122 const double t1 = h->GetXaxis()->GetXmax(); … … 1800 1841 return PostInfoHandler(&FactGui::handleFadCurrentEvent); 1801 1842 1843 if (getInfo()==&fDimFadEventData) 1844 return PostInfoHandler(&FactGui::handleFadEventData); 1845 1802 1846 /* 1803 1847 if (getInfo()==&fDimFadSetup) … … 2223 2267 fDimFadEvents ("FAD_CONTROL/EVENTS", (void*)NULL, 0, this), 2224 2268 fDimFadCurrentEvent ("FAD_CONTROL/CURRENT_EVENT", (void*)NULL, 0, this), 2269 fDimFadEventData ("FAD_CONTROL/EVENT_DATA", (void*)NULL, 0, this), 2225 2270 fDimFadConnections ("FAD_CONTROL/CONNECTIONS", (void*)NULL, 0, this) 2226 2271 { 2227 fClockCondFreq->addItem("- /-",QVariant(-1));2228 fClockCondFreq->addItem(" 700 MHz", QVariant(700));2272 fClockCondFreq->addItem("--- Hz", QVariant(-1)); 2273 fClockCondFreq->addItem("800 MHz", QVariant(800)); 2229 2274 fClockCondFreq->addItem("1 GHz", QVariant(1000)); 2230 2275 fClockCondFreq->addItem("2 GHz", QVariant(2000)); 2231 fClockCondFreq->addItem("2 GHz (*)", QVariant(2001));2232 2276 fClockCondFreq->addItem("3 GHz", QVariant(3000)); 2233 2277 fClockCondFreq->addItem("4 GHz", QVariant(4000));
Note:
See TracChangeset
for help on using the changeset viewer.