should focus on 1 board frist

This commit is contained in:
splitPoleDAQ 2022-08-04 18:02:03 -04:00
parent 14731d5dea
commit 35278fc37b
8 changed files with 123 additions and 112 deletions

View File

@ -39,7 +39,7 @@ void Digitizer::Reset(){
if( ret != 0 ) ErrorMsg("Reset"); if( ret != 0 ) ErrorMsg("Reset");
} }
int Digitizer::OpenDigitizer(int boardID, int portID){ int Digitizer::OpenDigitizer(int boardID, int portID, bool verbose){
this->boardID = boardID; this->boardID = boardID;
this->portID = portID; this->portID = portID;
@ -48,7 +48,7 @@ int Digitizer::OpenDigitizer(int boardID, int portID){
/** Open the digitizer and read board information */ /** Open the digitizer and read board information */
/***************************************************/ /***************************************************/
printf("============= Opening Digitizer at Board %d, Port %d \n", boardID, portID); if( verbose) printf("============= Opening Digitizer at Board %d, Port %d \n", boardID, portID);
///-------- try USB first ///-------- try USB first
LinkType = CAEN_DGTZ_USB; /// Link Type LinkType = CAEN_DGTZ_USB; /// Link Type
@ -59,41 +59,43 @@ int Digitizer::OpenDigitizer(int boardID, int portID){
} }
if (ret != 0) { if (ret != 0) {
printf("Can't open digitizer\n"); if( verbose) printf("Can't open digitizer\n");
}else{ }else{
///----- Getting Board Info ///----- Getting Board Info
ret = (int) CAEN_DGTZ_GetInfo(handle, &BoardInfo); ret = (int) CAEN_DGTZ_GetInfo(handle, &BoardInfo);
if (ret != 0) { if (ret != 0) {
printf("Can't read board info\n"); if( verbose) printf("Can't read board info\n");
}else{ }else{
isConnected = true; isConnected = true;
printf("Connected to Model %s with handle %d using %s\n", BoardInfo.ModelName, handle, LinkType == CAEN_DGTZ_USB ? "USB" : "Optical Link");
NChannel = BoardInfo.Channels; NChannel = BoardInfo.Channels;
channelMask = pow(2, NChannel)-1; channelMask = pow(2, NChannel)-1;
switch(BoardInfo.Model){ switch(BoardInfo.Model){
case CAEN_DGTZ_V1730: ch2ns = 2.0; break; ///ns -> 500 MSamples/s case CAEN_DGTZ_V1730: ch2ns = 2.0; break; ///ns -> 500 MSamples/s
case CAEN_DGTZ_V1725: ch2ns = 4.0; break; ///ns -> 250 MSamples/s case CAEN_DGTZ_V1725: ch2ns = 4.0; break; ///ns -> 250 MSamples/s
} }
printf("Sampling rate : %.0f MHz = %.1f ns \n", 1000/ch2ns, ch2ns);
printf("Number of Channels : %d = 0x%X\n", NChannel, channelMask);
printf("SerialNumber :\e[1m\e[33m %d\e[0m\n", BoardInfo.SerialNumber);
ADCbits = BoardInfo.ADC_NBits; ADCbits = BoardInfo.ADC_NBits;
ADCFullSize = (unsigned int)( pow(2, ADCbits) -1 ); ADCFullSize = (unsigned int)( pow(2, ADCbits) -1 );
printf("ADC bit is \e[33m%d\e[0m, %d = 0x%x\n", ADCbits, ADCFullSize, ADCFullSize);
printf("ROC FPGA Release is %s\n", BoardInfo.ROC_FirmwareRel);
printf("AMC FPGA Release is %s\n", BoardInfo.AMC_FirmwareRel);
if( verbose) {
printf("Connected to Model %s with handle %d using %s\n", BoardInfo.ModelName, handle, LinkType == CAEN_DGTZ_USB ? "USB" : "Optical Link");
printf("Sampling rate : %.0f MHz = %.1f ns \n", 1000/ch2ns, ch2ns);
printf("Number of Channels : %d = 0x%X\n", NChannel, channelMask);
printf("SerialNumber :\e[1m\e[33m %d\e[0m\n", BoardInfo.SerialNumber);
printf("ADC bit is \e[33m%d\e[0m, %d = 0x%x\n", ADCbits, ADCFullSize, ADCFullSize);
printf("ROC FPGA Release is %s\n", BoardInfo.ROC_FirmwareRel);
printf("AMC FPGA Release is %s\n", BoardInfo.AMC_FirmwareRel);
}
int DPPType; int DPPType;
sscanf(BoardInfo.AMC_FirmwareRel, "%d", &DPPType); sscanf(BoardInfo.AMC_FirmwareRel, "%d", &DPPType);
if (DPPType != V1730_DPP_PHA_CODE) { if (DPPType != V1730_DPP_PHA_CODE) {
printf("This digitizer does not have DPP-PHA firmware\n"); if( verbose) printf("This digitizer does not have DPP-PHA firmware\n");
} }
} }
} }
// Check firmware revision (DPP firmwares cannot be used with this demo */ // Check firmware revision (DPP firmwares cannot be used with this demo */
sscanf(BoardInfo.AMC_FirmwareRel, "%d", &DPPType); sscanf(BoardInfo.AMC_FirmwareRel, "%d", &DPPType);
if (DPPType >= 128) { if (DPPType >= 128 && verbose) {
printf("\t==== This digitizer has a DPP firmware!\n"); printf("\t==== This digitizer has a DPP firmware!\n");
printf("\e[32m"); printf("\e[32m");
switch (DPPType){ switch (DPPType){
@ -115,41 +117,43 @@ int Digitizer::OpenDigitizer(int boardID, int portID){
int probes[MAX_SUPPORTED_PROBES]; int probes[MAX_SUPPORTED_PROBES];
int numProbes; int numProbes;
ret = CAEN_DGTZ_GetDPP_SupportedVirtualProbes(handle, 1, probes, &numProbes); ret = CAEN_DGTZ_GetDPP_SupportedVirtualProbes(handle, 1, probes, &numProbes);
printf("\t==== supported virtual probe (number of Probe : %d)\n", numProbes); if( verbose ){
for( int i = 0 ; i < numProbes; i++){ printf("\t==== supported virtual probe (number of Probe : %d)\n", numProbes);
switch (probes[i]){ for( int i = 0 ; i < numProbes; i++){
case 0: printf("\t\t CAEN_DGTZ_DPP_VIRTUALPROBE_Input\n"); break; switch (probes[i]){
case 1: printf("\t\t CAEN_DGTZ_DPP_VIRTUALPROBE_Delta\n"); break; case 0: printf("\t\t CAEN_DGTZ_DPP_VIRTUALPROBE_Input\n"); break;
case 2: printf("\t\t CAEN_DGTZ_DPP_VIRTUALPROBE_Delta2\n"); break; case 1: printf("\t\t CAEN_DGTZ_DPP_VIRTUALPROBE_Delta\n"); break;
case 3: printf("\t\t CAEN_DGTZ_DPP_VIRTUALPROBE_Trapezoid\n"); break; case 2: printf("\t\t CAEN_DGTZ_DPP_VIRTUALPROBE_Delta2\n"); break;
case 4: printf("\t\t CAEN_DGTZ_DPP_VIRTUALPROBE_TrapezoidReduced\n"); break; case 3: printf("\t\t CAEN_DGTZ_DPP_VIRTUALPROBE_Trapezoid\n"); break;
case 5: printf("\t\t CAEN_DGTZ_DPP_VIRTUALPROBE_Baseline\n"); break; case 4: printf("\t\t CAEN_DGTZ_DPP_VIRTUALPROBE_TrapezoidReduced\n"); break;
case 6: printf("\t\t CAEN_DGTZ_DPP_VIRTUALPROBE_Threshold\n"); break; case 5: printf("\t\t CAEN_DGTZ_DPP_VIRTUALPROBE_Baseline\n"); break;
case 7: printf("\t\t CAEN_DGTZ_DPP_VIRTUALPROBE_CFD\n"); break; case 6: printf("\t\t CAEN_DGTZ_DPP_VIRTUALPROBE_Threshold\n"); break;
case 8: printf("\t\t CAEN_DGTZ_DPP_VIRTUALPROBE_SmoothedInput\n"); break; case 7: printf("\t\t CAEN_DGTZ_DPP_VIRTUALPROBE_CFD\n"); break;
case 9: printf("\t\t CAEN_DGTZ_DPP_VIRTUALPROBE_None\n"); break; case 8: printf("\t\t CAEN_DGTZ_DPP_VIRTUALPROBE_SmoothedInput\n"); break;
case 10: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_TRGWin\n"); break; case 9: printf("\t\t CAEN_DGTZ_DPP_VIRTUALPROBE_None\n"); break;
case 11: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_Armed\n"); break; case 10: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_TRGWin\n"); break;
case 12: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_PkRun\n"); break; case 11: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_Armed\n"); break;
case 13: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_Peaking\n"); break; case 12: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_PkRun\n"); break;
case 14: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_CoincWin\n"); break; case 13: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_Peaking\n"); break;
case 15: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_BLHoldoff\n"); break; case 14: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_CoincWin\n"); break;
case 16: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_TRGHoldoff\n"); break; case 15: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_BLHoldoff\n"); break;
case 17: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_TRGVal\n"); break; case 16: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_TRGHoldoff\n"); break;
case 18: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_ACQVeto\n"); break; case 17: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_TRGVal\n"); break;
case 19: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_BFMVeto\n"); break; case 18: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_ACQVeto\n"); break;
case 20: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_ExtTRG\n"); break; case 19: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_BFMVeto\n"); break;
case 21: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_OverThr\n"); break; case 20: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_ExtTRG\n"); break;
case 22: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_TRGOut\n"); break; case 21: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_OverThr\n"); break;
case 23: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_Coincidence \n"); break; case 22: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_TRGOut\n"); break;
case 24: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_PileUp \n"); break; case 23: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_Coincidence \n"); break;
case 25: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_Gate \n"); break; case 24: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_PileUp \n"); break;
case 26: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_GateShort \n"); break; case 25: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_Gate \n"); break;
case 27: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_Trigger \n"); break; case 26: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_GateShort \n"); break;
case 28: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_None \n"); break; case 27: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_Trigger \n"); break;
case 29: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_BLFreeze \n"); break; case 28: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_None \n"); break;
case 30: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_Busy \n"); break; case 29: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_BLFreeze \n"); break;
case 31: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_PrgVeto \n"); break; case 30: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_Busy \n"); break;
case 31: printf("\t\t CAEN_DGTZ_DPP_DIGITALPROBE_PrgVeto \n"); break;
}
} }
} }
@ -164,6 +168,7 @@ int Digitizer::OpenDigitizer(int boardID, int portID){
int Digitizer::CloseDigitizer(){ int Digitizer::CloseDigitizer(){
isConnected = false;
printf("-------- Closing Digtizer Board : %d Port : %d \n", boardID, portID); printf("-------- Closing Digtizer Board : %d Port : %d \n", boardID, portID);
printf(" Model %s with handle %d using %s\n", BoardInfo.ModelName, handle, LinkType == CAEN_DGTZ_USB ? "USB" : "Optical Link"); printf(" Model %s with handle %d using %s\n", BoardInfo.ModelName, handle, LinkType == CAEN_DGTZ_USB ? "USB" : "Optical Link");
ret = CAEN_DGTZ_SWStopAcquisition(handle); ret = CAEN_DGTZ_SWStopAcquisition(handle);
@ -295,35 +300,12 @@ void Digitizer::SetChannelMask(uint32_t mask){
ErrorMsg("SetChannelMask"); ErrorMsg("SetChannelMask");
} }
void Digitizer::SetRecordLength(unsigned int nSample, int ch){ void Digitizer::SetRecordLength(unsigned int nSample, int ch) { WriteRegister( Register::DPP::RecordLength, nSample / 8, ch); ErrorMsg("SetRecordLength"); }
WriteRegister( Register::DPP::RecordLength, nSample / 8, ch); void Digitizer::SetEventAggregation(unsigned int numEvent, int ch) { WriteRegister( Register::DPP::NumberEventsPerAggregate, numEvent, ch); ErrorMsg("SetEventAggregation"); }
ErrorMsg("SetRecordLength"); void Digitizer::SetInputDynamicRange(unsigned int TwoVol_0_or_halfVol_1, int ch){ WriteRegister( Register::InputDynamicRange, TwoVol_0_or_halfVol_1, ch); ErrorMsg("SetInputDynamicRange");}
} void Digitizer::SetNumSamplePreTrigger(unsigned int nSample, int ch) { WriteRegister( Register::DPP::PreTrigger, nSample / 4, ch); ErrorMsg("SetNumSamplePreTrigger");}
void Digitizer::SetDCOffset(float offsetPrecentage, int ch) { WriteRegister( Register::DPP::ChannelDCOffset, uint( ADCFullSize * offsetPrecentage), ch ); ErrorMsg("SetDCOffset");}
void Digitizer::SetEventAggregation(unsigned int numEvent, int ch){ void Digitizer::SetVetoWidth(uint32_t bit, int ch) { WriteRegister( Register::DPP::VetoWidth, bit, ch); ErrorMsg("SetVetoWidth");}
WriteRegister( Register::DPP::NumberEventsPerAggregate, numEvent, ch);
ErrorMsg("SetEventAggregation");
}
void Digitizer::SetInputDynamicRange(unsigned int TwoVol_0_or_halfVol_1, int ch){
WriteRegister( Register::InputDynamicRange, TwoVol_0_or_halfVol_1, ch);
ErrorMsg("SetInputDynamicRange");
}
void Digitizer::SetNumSamplePreTrigger(unsigned int nSample, int ch){
WriteRegister( Register::DPP::PreTrigger, nSample / 4, ch);
ErrorMsg("SetNumSamplePreTrigger");
}
void Digitizer::SetDCOffset(float offsetPrecentage, int ch){
WriteRegister( Register::DPP::ChannelDCOffset, uint( ADCFullSize * offsetPrecentage), ch );
ErrorMsg("SetDCOffset");
}
void Digitizer::SetVetoWidth(uint32_t bit, int ch){
WriteRegister( Register::DPP::VetoWidth, bit, ch);
ErrorMsg("SetVetoWidth");
}
void Digitizer::SetTriggerPolarity(bool RiseingIsZero, int ch ){ void Digitizer::SetTriggerPolarity(bool RiseingIsZero, int ch ){
if( ch < 0 ) { if( ch < 0 ) {

View File

@ -49,7 +49,7 @@ class Digitizer{
~Digitizer(); ~Digitizer();
void Reset(); void Reset();
int OpenDigitizer(int boardID, int portID = 0);/// portID is for optical link for using PCIe card, from 0, 1, 2, 3 int OpenDigitizer(int boardID, int portID = 0, bool verbose = false);/// portID is for optical link for using PCIe card, from 0, 1, 2, 3
int CloseDigitizer(); int CloseDigitizer();
///=================Settings ///=================Settings
@ -72,15 +72,17 @@ class Digitizer{
int SetAcqMode(string list_mixed); int SetAcqMode(string list_mixed);
///================ Get Settings ///================ Get Settings
int GetSerialNumber() {return BoardInfo.SerialNumber;} int GetSerialNumber() {return BoardInfo.SerialNumber;}
int GetChannelMask() {return channelMask;} int GetChannelMask() {return channelMask;}
float GetCh2ns() {return ch2ns;} float GetCh2ns() {return ch2ns;}
int GetNChannel() {return NChannel;} int GetNChannel() {return NChannel;}
int GetChTemperature(int ch) ; int GetChTemperature(int ch) ;
bool GetConnectionStatus() {return isConnected;}
int GetDPPType() {return DPPType;}
void PrintBoardConfiguration(); void PrintBoardConfiguration();
uint32_t GetChannelStatus(unsigned int ch);
///================ ACQ control ///================ ACQ control
void StopACQ(); void StopACQ();

View File

@ -125,7 +125,6 @@ void DigitizerPHA::GetChannelSettingFromDigitizer(int ch){
case 4 : extra2WordOptStr = "[0:15] Total Trigger Counter [16:31] Lost Trigger Counter"; break; case 4 : extra2WordOptStr = "[0:15] Total Trigger Counter [16:31] Lost Trigger Counter"; break;
case 5 : extra2WordOptStr = "[0:15] Event After the Zero Crossing [16:31] Event Before the Zero Crossing"; break; case 5 : extra2WordOptStr = "[0:15] Event After the Zero Crossing [16:31] Event Before the Zero Crossing"; break;
default: extra2WordOptStr = "Reserved"; break; default: extra2WordOptStr = "Reserved"; break;
} }
printf(" ch2ns : %.0f ns\n", ch2ns); printf(" ch2ns : %.0f ns\n", ch2ns);

View File

@ -28,15 +28,18 @@ enum MenuIdentifiers{
M_SHOW_CHANNELS_RATE M_SHOW_CHANNELS_RATE
}; };
//TODO timed Run, //pixie->SetDigitizerPresetRunTime(100000, 0);
///make static members ///make static members
DigitizerPHA * MainWindow::digi = NULL; DigitizerPHA * MainWindow::digi = NULL;
TGTextEdit * MainWindow::teLog = NULL; TGTextEdit * MainWindow::teLog = NULL;
TRootEmbeddedCanvas * MainWindow::fEcanvas = NULL; TRootEmbeddedCanvas * MainWindow::fEcanvas = NULL;
MainWindow::MainWindow(const TGWindow *p,UInt_t w,UInt_t h) { MainWindow::MainWindow(const TGWindow *p,UInt_t w,UInt_t h) {
DetectDigitizer();
digi = new DigitizerPHA(0,0); digi = new DigitizerPHA(0,0);
/// Create a main frame /// Create a main frame
fMain = new TGMainFrame(p,w,h); fMain = new TGMainFrame(p,w,h);
///fMain->SetWMPosition(500, 500); //does not work ///fMain->SetWMPosition(500, 500); //does not work
@ -45,7 +48,7 @@ MainWindow::MainWindow(const TGWindow *p,UInt_t w,UInt_t h) {
fMenuBar = new TGMenuBar(fMain, 1, 1, kHorizontalFrame); fMenuBar = new TGMenuBar(fMain, 1, 1, kHorizontalFrame);
fMain->AddFrame(fMenuBar, new TGLayoutHints(kLHintsTop | kLHintsExpandX)); fMain->AddFrame(fMenuBar, new TGLayoutHints(kLHintsTop | kLHintsExpandX));
fMenuFile = new TGPopupMenu(gClient->GetRoot()); fMenuFile = new TGPopupMenu(gClient->GetRoot());
fMenuFile->AddEntry("&Open Pixie16.config", M_FILE_OPEN); fMenuFile->AddEntry("&Open File", M_FILE_OPEN);
fMenuFile->AddSeparator(); fMenuFile->AddSeparator();
fMenuFile->AddEntry("E&xit", M_EXIT); fMenuFile->AddEntry("E&xit", M_EXIT);
fMenuFile->Connect("Activated(Int_t)", "MainWindow", this, "HandleMenu(Int_t)"); fMenuFile->Connect("Activated(Int_t)", "MainWindow", this, "HandleMenu(Int_t)");
@ -67,7 +70,8 @@ MainWindow::MainWindow(const TGWindow *p,UInt_t w,UInt_t h) {
fMenuUtility->Connect("Activated(Int_t)", "MainWindow", this, "HandleMenu(Int_t)"); fMenuUtility->Connect("Activated(Int_t)", "MainWindow", this, "HandleMenu(Int_t)");
fMenuBar->AddPopup("&Utility", fMenuUtility, new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 4, 0, 0)); fMenuBar->AddPopup("&Utility", fMenuUtility, new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 4, 0, 0));
TGLayoutHints * uniLayoutHints = new TGLayoutHints(kLHintsNormal, 2,2,10,0); ///left, right, top, bottom TGLayoutHints * uniLayoutHints = new TGLayoutHints(kLHintsNormal, 2,2,10,0); ///left, right, top, bottom
/// Create a horizontal frame widget with buttons
///================= Create a horizontal frame widget with buttons
TGHorizontalFrame *hframe = new TGHorizontalFrame(fMain,200,40); TGHorizontalFrame *hframe = new TGHorizontalFrame(fMain,200,40);
fMain->AddFrame(hframe, new TGLayoutHints(kLHintsCenterX,2,2,2,2)); fMain->AddFrame(hframe, new TGLayoutHints(kLHintsCenterX,2,2,2,2));
@ -88,7 +92,7 @@ MainWindow::MainWindow(const TGWindow *p,UInt_t w,UInt_t h) {
teLog = new TGTextEdit(groupLog, w, 100); teLog = new TGTextEdit(groupLog, w, 100);
groupLog->AddFrame(teLog, new TGLayoutHints(kLHintsNormal, 0,0,10,0)); groupLog->AddFrame(teLog, new TGLayoutHints(kLHintsNormal, 0,0,10,0));
/// Set a name to the main frame /// Set a name to the main frame
fMain->SetWindowName("Pixie16 DAQ"); fMain->SetWindowName("FSU DAQ");
/// Map all subwindows of main frame /// Map all subwindows of main frame
fMain->MapSubwindows(); fMain->MapSubwindows();
/// Initialize the layout algorithm /// Initialize the layout algorithm
@ -103,13 +107,11 @@ MainWindow::MainWindow(const TGWindow *p,UInt_t w,UInt_t h) {
//fillHistThread = new TThread("kakaka", FillHistogram, (void *) 1); //fillHistThread = new TThread("kakaka", FillHistogram, (void *) 1);
///settingsSummary = NULL; ///settingsSummary = NULL;
///moduleSetting = NULL; //boardSetting = NULL;
///channelSetting = NULL; ///channelSetting = NULL;
///scalarPanel = NULL; ///scalarPanel = NULL;
///bStopRun->SetEnabled(false); LogMsg("Ready to run.");
LogMsg("Boot OK and ready to run.");
///HandleMenu(M_CH_SETTINGS_SUMMARY); ///HandleMenu(M_CH_SETTINGS_SUMMARY);
@ -125,14 +127,10 @@ MainWindow::~MainWindow() {
//delete tePath; //delete tePath;
delete teLog; delete teLog;
//delete bStartRun;
//delete bStopRun;
//delete bFitTrace;
delete digi; delete digi;
//delete settingsSummary; //delete settingsSummary;
//delete moduleSetting; //delete boardSetting;
//delete channelSetting; //delete channelSetting;
//delete scalarPanel; //delete scalarPanel;
// //
@ -140,8 +138,6 @@ MainWindow::~MainWindow() {
//delete fillHistThread; //delete fillHistThread;
// //
//delete gTrace; //delete gTrace;
//
//delete configEditor;
/// Clean up used widgets: frames, buttons, layout hints /// Clean up used widgets: frames, buttons, layout hints
fMain->Cleanup(); fMain->Cleanup();
@ -194,6 +190,35 @@ void MainWindow::HandleMenu(Int_t id){
} }
void MainWindow::DetectDigitizer(){
Digitizer * dig = new Digitizer();
vector<int> DPPType;
vector<int> portID;
vector<int> boardID;
int nDigi = 0;
for( int port = 0; port < 4 ; port ++){
for( int board = 0; board < 3 ; board ++){
dig->OpenDigitizer(board, port);
if ( dig->GetConnectionStatus() ) {
nDigi++;
DPPType.push_back(dig->GetDPPType());
portID.push_back(port);
boardID.push_back(board);
dig->CloseDigitizer();
}
}
}
printf("========== found %d digitizer \n", nDigi);
for( int i = 0 ; i < nDigi ; i++){
printf("port: %d, board: %d, DPP Type : %d \n", portID[i], boardID[i], DPPType[i]);
}
}
Double_t standardPulse(Double_t *x, Double_t * par){ Double_t standardPulse(Double_t *x, Double_t * par){
/// par[0] = start time /// par[0] = start time
@ -213,7 +238,7 @@ Double_t standardPulse(Double_t *x, Double_t * par){
void MainWindow::GoodBye(){ void MainWindow::GoodBye(){
//pixie->CloseDigitizers(); digi->CloseDigitizer();
printf("----- bye bye ---- \n"); printf("----- bye bye ---- \n");
@ -239,7 +264,7 @@ void MainWindow::LogMsg(TString msg){
//############################################ //############################################
int main(int argc, char **argv) { int main(int argc, char **argv) {
printf(" Welcome to pixie16 DQ \n"); printf(" Welcome to FSU DQ \n");
TApplication theApp("App",&argc,argv); TApplication theApp("App",&argc,argv);
new MainWindow(gClient->GetRoot(),800,800); new MainWindow(gClient->GetRoot(),800,800);

View File

@ -16,8 +16,8 @@
///#include "global_macro.h" ///#include "global_macro.h"
///#include "settingsSummary.h" ///#include "settingsSummary.h"
///#include "scalarPanel.h" ///#include "scalarPanel.h"
///#include "moduleSetting.h" //#include "boardSetting.h"
///#include "channelSetting.h" //#include "channelSetting.h"
class TGWindow; class TGWindow;
class TGMainFrame; class TGMainFrame;
class TRootEmbeddedCanvas; class TRootEmbeddedCanvas;
@ -30,7 +30,7 @@ private:
TGMenuBar *fMenuBar; TGMenuBar *fMenuBar;
TGPopupMenu *fMenuFile, *fMenuSettings, *fMenuUtility; TGPopupMenu *fMenuFile, *fMenuSettings, *fMenuUtility;
//
//static TGNumberEntry * modIDEntry, *chEntry; //static TGNumberEntry * modIDEntry, *chEntry;
//TGNumberEntry * runIDEntry; //TGNumberEntry * runIDEntry;
//TGTextEntry * tePath; //TGTextEntry * tePath;
@ -43,9 +43,9 @@ private:
static DigitizerPHA * digi; static DigitizerPHA * digi;
//
//SettingsSummary * settingsSummary; //SettingsSummary * settingsSummary;
//ModuleSetting * moduleSetting; ///ModuleSetting * moduleSetting;
//ChannelSetting * channelSetting; //ChannelSetting * channelSetting;
//ScalarPanel * scalarPanel; //ScalarPanel * scalarPanel;
// //
@ -63,6 +63,8 @@ public:
void HandleMenu(Int_t id); void HandleMenu(Int_t id);
void DetectDigitizer();
//void GetADCTrace(); //void GetADCTrace();
//void GetBaseLine(); //void GetBaseLine();
//void Scope(); //void Scope();

Binary file not shown.

View File

@ -15,7 +15,7 @@ OBJS = DigitizerClass.o DigitizerPHA.o DigitizerPSD.o FSUDAQ.o
######################################################################### #########################################################################
all : test all : test FSUDAQ
clean : clean :
/bin/rm -f $(OBJS) test FSUDAQ FSUDAQDict.cxx *.pcm /bin/rm -f $(OBJS) test FSUDAQ FSUDAQDict.cxx *.pcm
@ -35,7 +35,8 @@ test : test.cpp DigitizerClass.o DigitizerPHA.o DigitizerPSD.o
FSUDAQDict.cxx : FSUDAQ.h FSUDAQLinkDef.h FSUDAQDict.cxx : FSUDAQ.h FSUDAQLinkDef.h
@echo "----------- creating pcm and cxx for root" @echo "----------- creating pcm and cxx for root"
@rootcling -f FSUDAQDict.cxx -c FSUDAQ.h -p FSUDAQLinkDef.h $(CAENLIBS) # @rootcling -f FSUDAQDict.cxx -c FSUDAQ.h -p FSUDAQLinkDef.h $(CAENLIBS)
@rootcling -f FSUDAQDict.cxx -c FSUDAQ.h -p FSUDAQLinkDef.h
FSUDAQ.o : FSUDAQ.h FSUDAQ.cpp FSUDAQDict.cxx FSUDAQ.o : FSUDAQ.h FSUDAQ.cpp FSUDAQDict.cxx
@echo "----------- creating FSUDAQ.o" @echo "----------- creating FSUDAQ.o"

View File

@ -6,8 +6,8 @@ int main(int argc, char* argv[]){
DigitizerPHA * dig = new DigitizerPHA[2]; DigitizerPHA * dig = new DigitizerPHA[2];
//DigitizerPSD * psd = new DigitizerPSD(); //DigitizerPSD * psd = new DigitizerPSD();
dig[0].OpenDigitizer(0,0); dig[0].OpenDigitizer(0,0, true);
dig[1].OpenDigitizer(1,0); dig[1].OpenDigitizer(1,0, true);
//psd->OpenDigitizer(2,0); //psd->OpenDigitizer(2,0);