add some for DPP-QDC, not much
This commit is contained in:
parent
e540abb3fa
commit
ef108a7855
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
|
@ -155,6 +155,7 @@
|
||||||
"qthread": "cpp",
|
"qthread": "cpp",
|
||||||
"qrandomgenerator": "cpp",
|
"qrandomgenerator": "cpp",
|
||||||
"source_location": "cpp",
|
"source_location": "cpp",
|
||||||
"splitpole.C": "cpp"
|
"splitpole.C": "cpp",
|
||||||
|
"forward_list": "cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -105,6 +105,7 @@ int Digitizer::OpenDigitizer(int boardID, int portID, bool program, bool verbose
|
||||||
switch(BoardInfo.Model){
|
switch(BoardInfo.Model){
|
||||||
case CAEN_DGTZ_V1730: tick2ns = 2.0; break; ///ns -> 500 MSamples/s
|
case CAEN_DGTZ_V1730: tick2ns = 2.0; break; ///ns -> 500 MSamples/s
|
||||||
case CAEN_DGTZ_V1725: tick2ns = 4.0; break; ///ns -> 250 MSamples/s
|
case CAEN_DGTZ_V1725: tick2ns = 4.0; break; ///ns -> 250 MSamples/s
|
||||||
|
case CAEN_DGTZ_V1740: tick2ns = 16.0; break; ///ns -> 62.5 MSamples/s
|
||||||
default : tick2ns = 4.0; break;
|
default : tick2ns = 4.0; break;
|
||||||
}
|
}
|
||||||
data->tick2ns = tick2ns;
|
data->tick2ns = tick2ns;
|
||||||
|
@ -353,7 +354,7 @@ int Digitizer::ProgramPSDBoard(){
|
||||||
ret |= CAEN_DGTZ_SetIOLevel(handle, CAEN_DGTZ_IOLevel_NIM);
|
ret |= CAEN_DGTZ_SetIOLevel(handle, CAEN_DGTZ_IOLevel_NIM);
|
||||||
ret |= CAEN_DGTZ_SetExtTriggerInputMode(handle, CAEN_DGTZ_TRGMODE_ACQ_ONLY);
|
ret |= CAEN_DGTZ_SetExtTriggerInputMode(handle, CAEN_DGTZ_TRGMODE_ACQ_ONLY);
|
||||||
|
|
||||||
ret = CAEN_DGTZ_SetChannelEnableMask(handle, 0xFFFF);
|
ret |= CAEN_DGTZ_SetChannelEnableMask(handle, 0xFFFF);
|
||||||
|
|
||||||
ret |= CAEN_DGTZ_WriteRegister(handle, (uint32_t)(DPP::ChannelDCOffset) + 0x7000 , 0xEEEE );
|
ret |= CAEN_DGTZ_WriteRegister(handle, (uint32_t)(DPP::ChannelDCOffset) + 0x7000 , 0xEEEE );
|
||||||
|
|
||||||
|
@ -371,6 +372,19 @@ int Digitizer::ProgramPSDBoard(){
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int Digitizer::ProgramQDCBoard(){
|
||||||
|
|
||||||
|
printf("===== Digitizer::%s\n", __func__);
|
||||||
|
Reset();
|
||||||
|
|
||||||
|
ret = CAEN_DGTZ_SetChannelEnableMask(handle, 0xFFFF);
|
||||||
|
|
||||||
|
isSettingFilledinMemeory = false; /// unlock the ReadAllSettingsFromBoard();
|
||||||
|
ReadAllSettingsFromBoard();
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
//========================================================= ACQ control
|
//========================================================= ACQ control
|
||||||
void Digitizer::StartACQ(){
|
void Digitizer::StartACQ(){
|
||||||
if ( AcqRun ) return;
|
if ( AcqRun ) return;
|
||||||
|
|
|
@ -78,6 +78,7 @@ class Digitizer{
|
||||||
virtual int ProgramBoard() ; /// program a generic board, no program channel
|
virtual int ProgramBoard() ; /// program a generic board, no program channel
|
||||||
int ProgramPHABoard() ; /// program a default PHA board with dual trace
|
int ProgramPHABoard() ; /// program a default PHA board with dual trace
|
||||||
int ProgramPSDBoard() ;
|
int ProgramPSDBoard() ;
|
||||||
|
int ProgramQDCBoard() ;
|
||||||
|
|
||||||
//^================ ACQ control
|
//^================ ACQ control
|
||||||
void StopACQ();
|
void StopACQ();
|
||||||
|
|
|
@ -371,6 +371,9 @@ namespace DPP {
|
||||||
{"64 samples", 2},
|
{"64 samples", 2},
|
||||||
{"256 samples", 3},
|
{"256 samples", 3},
|
||||||
{"1024 samples", 4}};
|
{"1024 samples", 4}};
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace Bit_DPPAlgorithmControl_QDC {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -730,11 +733,22 @@ namespace DPP {
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace QDC {
|
namespace QDC {
|
||||||
const Reg GateWidth ("GateWidth" , 0x1030, RW::ReadWrite, false, 0xFFF, 4); /// R/W
|
const Reg GateWidth_G ("GateWidth" , 0x1030, RW::ReadWrite, true, 0xFFF, 1); /// R/W
|
||||||
const Reg GateOffset ("GateOfset" , 0x1034, RW::ReadWrite, false, 0xFF, 4); /// R/W
|
const Reg GateOffset_G ("GateOfset" , 0x1034, RW::ReadWrite, true, 0xFF, 1); /// R/W
|
||||||
const Reg FixedBaseline ("FixedBaseline" , 0x1038, RW::ReadWrite, false, 0xFFF, 4); /// R/W
|
const Reg FixedBaseline_G ("FixedBaseline" , 0x1038, RW::ReadWrite, true, 0xFFF, 1); /// R/W
|
||||||
const Reg Pretrigger ("PreTrigger" , 0x103C, RW::ReadWrite, false, 0xFF, 4); /// R/W
|
const Reg Pretrigger_G ("PreTrigger" , 0x103C, RW::ReadWrite, true, 0xFF, 1); /// R/W
|
||||||
const Reg DPPAlgorithmControl ("DPPAlgorithmControl" , 0x1040, RW::ReadWrite, false, {}); /// R/W
|
const Reg DPPAlgorithmControl_G ("DPPAlgorithmControl" , 0x1040, RW::ReadWrite, true, {}); /// R/W
|
||||||
|
const Reg TriggerHoldOffWidth_G ("Trigger Hold-off width" , 0x1074, RW::ReadWrite, true, 0xFFFF, 1); /// R/W
|
||||||
|
const Reg GroupStatus_RG ("Group Status" , 0x1088, RW::ReadONLY, true, {}); /// R/
|
||||||
|
const Reg AMCFirmwareRevision_RG ("AMC firmware version" , 0x108C, RW::ReadONLY, true, {}); /// R/
|
||||||
|
const Reg DCOffset_G ("DC offset" , 0x1098, RW::ReadWrite, true, 0xFFFF, 1); /// R/W
|
||||||
|
const Reg ChannelMask_G ("Channel Group Mask" , 0x10A8, RW::ReadWrite, true, 0xFF, 1); /// R/W
|
||||||
|
const Reg DCOffset_LowCh_G ("DC offset for low ch." , 0x10C0, RW::ReadWrite, true, {}); /// R/W
|
||||||
|
const Reg DCOffset_HighCh_G ("DC offset for high ch." , 0x10C4, RW::ReadWrite, true, {}); /// R/W
|
||||||
|
const Reg TriggerThreshold_G ("Trigger Threshold" , 0x10D0, RW::ReadWrite, true, {}); /// R/W
|
||||||
|
|
||||||
|
const Reg NumberEventsPerAggregate ("Number of Events per Aggregate", 0x8020, RW::ReadWrite, false, 0x3FF, 1); /// R/W
|
||||||
|
const Reg RecordLength ("Record Length" , 0x8024, RW::ReadWrite, false, 0xFFF, 1); /// R/W
|
||||||
}
|
}
|
||||||
|
|
||||||
} // end of DPP namepace Register
|
} // end of DPP namepace Register
|
||||||
|
@ -800,7 +814,22 @@ const std::vector<Reg> RegisterPSDList = {
|
||||||
};
|
};
|
||||||
|
|
||||||
const std::vector<Reg> RegisterQDCList = { //TODO
|
const std::vector<Reg> RegisterQDCList = { //TODO
|
||||||
|
DPP::QDC::GateWidth_G,
|
||||||
|
DPP::QDC::GateOffset_G,
|
||||||
|
DPP::QDC::FixedBaseline_G,
|
||||||
|
DPP::QDC::Pretrigger_G,
|
||||||
|
DPP::QDC::DPPAlgorithmControl_G,
|
||||||
|
DPP::QDC::TriggerHoldOffWidth_G,
|
||||||
|
DPP::QDC::GroupStatus_RG,
|
||||||
|
DPP::QDC::AMCFirmwareRevision_RG,
|
||||||
|
DPP::QDC::DCOffset_G,
|
||||||
|
DPP::QDC::ChannelMask_G,
|
||||||
|
DPP::QDC::DCOffset_LowCh_G,
|
||||||
|
DPP::QDC::DCOffset_HighCh_G,
|
||||||
|
DPP::QDC::TriggerThreshold_G,
|
||||||
|
|
||||||
|
DPP::QDC::NumberEventsPerAggregate,
|
||||||
|
DPP::QDC::RecordLength
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -28,9 +28,10 @@ public:
|
||||||
|
|
||||||
RedefineEventBuilder({0}); // only build for the 0-th digitizer, otherwise, it will build event accross all digitizers
|
RedefineEventBuilder({0}); // only build for the 0-th digitizer, otherwise, it will build event accross all digitizers
|
||||||
tick2ns = digi[0]->GetTick2ns();
|
tick2ns = digi[0]->GetTick2ns();
|
||||||
SetBackwardBuild(false, 500); // using normal building (acceding in time) or backward building, int the case of backward building, default events to be build is 100.
|
SetBackwardBuild(false, 100); // using normal building (acceding in time) or backward building, int the case of backward building, default events to be build is 100.
|
||||||
evtbder = GetEventBuilder();
|
evtbder = GetEventBuilder();
|
||||||
|
evtbder->SetTimeWindow(500);
|
||||||
|
|
||||||
//========== use the influx from the Analyzer
|
//========== use the influx from the Analyzer
|
||||||
influx = new InfluxDB("https://fsunuc.physics.fsu.edu/influx/");
|
influx = new InfluxDB("https://fsunuc.physics.fsu.edu/influx/");
|
||||||
dataBaseName = "testing";
|
dataBaseName = "testing";
|
||||||
|
|
Loading…
Reference in New Issue
Block a user