QDC, Add the OverThresholdWidth setting, but only for ROC > 4.15 and AMC > 135.15
This commit is contained in:
parent
c1f223532c
commit
d3f97358e2
|
@ -142,8 +142,31 @@ int Digitizer::OpenDigitizer(int boardID, int portID, bool program, bool verbose
|
||||||
NCoupledCh = NumRegChannel;
|
NCoupledCh = NumRegChannel;
|
||||||
isInputChEqRegCh = false;
|
isInputChEqRegCh = false;
|
||||||
ModelType = ModelTypeCode::VME;
|
ModelType = ModelTypeCode::VME;
|
||||||
tick2ns = 16.0; break; ///ns -> 62.5 MSamples/s
|
tick2ns = 16.0; ///ns -> 62.5 MSamples/s
|
||||||
}
|
|
||||||
|
std::string ROC = BoardInfo.ROC_FirmwareRel;
|
||||||
|
std::string AMC = BoardInfo.AMC_FirmwareRel;
|
||||||
|
|
||||||
|
std::size_t pos = ROC.find(" - ");
|
||||||
|
std::string versionROCStr = (pos != std::string::npos) ? ROC.substr(0, pos) : "";
|
||||||
|
pos = AMC.find(" - ");
|
||||||
|
std::string versionAMCStr = (pos != std::string::npos) ? AMC.substr(0, pos) : "";
|
||||||
|
|
||||||
|
double versionROC = 0.0;
|
||||||
|
double versionAMC = 0.0;
|
||||||
|
if (!versionROCStr.empty()) versionROC = std::stod(versionROCStr);
|
||||||
|
if (!versionAMCStr.empty()) versionAMC = std::stod(versionAMCStr);
|
||||||
|
|
||||||
|
printf(" QDC ROC version : %.2f \n", versionROC);
|
||||||
|
printf(" QDC AMC version : %.2f \n", versionAMC);
|
||||||
|
if( versionROC <= 4.25 || versionAMC <= 135.15 ){
|
||||||
|
printf(" QDC ROC or AMC version not support OverThreshold Width.\n");
|
||||||
|
hasOverThresholdWidth = false;
|
||||||
|
}else{
|
||||||
|
hasOverThresholdWidth = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}; break;
|
||||||
default : tick2ns = 4.0; break;
|
default : tick2ns = 4.0; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -777,6 +800,7 @@ void Digitizer::WriteRegister (Reg registerAddress, uint32_t value, int ch, bool
|
||||||
}
|
}
|
||||||
|
|
||||||
if( registerAddress.GetRWType() == RW::ReadONLY ) return;
|
if( registerAddress.GetRWType() == RW::ReadONLY ) return;
|
||||||
|
if( !hasOverThresholdWidth && registerAddress == DPP::QDC::OverThresholdWidth ) return ;
|
||||||
|
|
||||||
ret = CAEN_DGTZ_WriteRegister(handle, registerAddress.ActualAddress(ch), value);
|
ret = CAEN_DGTZ_WriteRegister(handle, registerAddress.ActualAddress(ch), value);
|
||||||
|
|
||||||
|
@ -821,6 +845,8 @@ uint32_t Digitizer::ReadRegister(Reg registerAddress, unsigned short ch, bool is
|
||||||
if( registerAddress.GetRWType() == RW::WriteONLY ) return 0;
|
if( registerAddress.GetRWType() == RW::WriteONLY ) return 0;
|
||||||
// if( registerAddress == DPP::QDC::RecordLength_W ) return 0;
|
// if( registerAddress == DPP::QDC::RecordLength_W ) return 0;
|
||||||
|
|
||||||
|
if( !hasOverThresholdWidth && registerAddress == DPP::QDC::OverThresholdWidth ) return 0;
|
||||||
|
|
||||||
ret = CAEN_DGTZ_ReadRegister(handle, registerAddress.ActualAddress(ch), &returnData);
|
ret = CAEN_DGTZ_ReadRegister(handle, registerAddress.ActualAddress(ch), &returnData);
|
||||||
|
|
||||||
if( ret == 0 && isSave2MemAndFile && !AcqRun) {
|
if( ret == 0 && isSave2MemAndFile && !AcqRun) {
|
||||||
|
|
|
@ -60,6 +60,7 @@ class Digitizer{
|
||||||
bool isSettingFileExist; ///
|
bool isSettingFileExist; ///
|
||||||
bool isSettingFileUpdate;
|
bool isSettingFileUpdate;
|
||||||
bool isSettingFilledinMemeory; /// false for disabled ReadAllSettingFromBoard()
|
bool isSettingFilledinMemeory; /// false for disabled ReadAllSettingFromBoard()
|
||||||
|
bool hasOverThresholdWidth; /// for QDC
|
||||||
unsigned int setting[SETTINGSIZE]; /// Setting, 4bytes x 2048 = 8192 bytes
|
unsigned int setting[SETTINGSIZE]; /// Setting, 4bytes x 2048 = 8192 bytes
|
||||||
|
|
||||||
//^-------- other protected functions
|
//^-------- other protected functions
|
||||||
|
@ -152,6 +153,7 @@ class Digitizer{
|
||||||
int GetErrorCode() const {return ret;}
|
int GetErrorCode() const {return ret;}
|
||||||
unsigned int GetChMemSizekSample() const {return MemorySizekSample;}
|
unsigned int GetChMemSizekSample() const {return MemorySizekSample;}
|
||||||
std::string GetFamilyName() const {return familyName;}
|
std::string GetFamilyName() const {return familyName;}
|
||||||
|
bool HasOverThresholdWidth_QDC() const {return hasOverThresholdWidth;}
|
||||||
|
|
||||||
//^================ Setting
|
//^================ Setting
|
||||||
Reg FindRegister(uint32_t address);
|
Reg FindRegister(uint32_t address);
|
||||||
|
|
|
@ -2760,13 +2760,22 @@ void DigiSettingsPanel::SetUpChannel_QDC(){
|
||||||
|
|
||||||
SetUpCheckBox(chkDisableSelfTrigger[ID][numGroup], "Disable Self Trigger ", triggerLayout, 0, 1, DPP::QDC::DPPAlgorithmControl, DPP::QDC::Bit_DPPAlgorithmControl::DisableSelfTrigger);
|
SetUpCheckBox(chkDisableSelfTrigger[ID][numGroup], "Disable Self Trigger ", triggerLayout, 0, 1, DPP::QDC::DPPAlgorithmControl, DPP::QDC::Bit_DPPAlgorithmControl::DisableSelfTrigger);
|
||||||
SetUpCheckBox(chkDisableTriggerHysteresis[ID][numGroup], "Disbale Trig. Hysteresis ", triggerLayout, 2, 1, DPP::QDC::DPPAlgorithmControl, DPP::QDC::Bit_DPPAlgorithmControl::DisableTriggerHysteresis, -1, 2);
|
SetUpCheckBox(chkDisableTriggerHysteresis[ID][numGroup], "Disbale Trig. Hysteresis ", triggerLayout, 2, 1, DPP::QDC::DPPAlgorithmControl, DPP::QDC::Bit_DPPAlgorithmControl::DisableTriggerHysteresis, -1, 2);
|
||||||
|
|
||||||
SetUpComboBoxBit(cbTrigMode[ID][numGroup], "Trig. Mode : ", triggerLayout, 0, 2, DPP::QDC::Bit_DPPAlgorithmControl::ListTrigMode, DPP::QDC::DPPAlgorithmControl, DPP::QDC::Bit_DPPAlgorithmControl::TriggerMode);
|
SetUpComboBoxBit(cbTrigMode[ID][numGroup], "Trig. Mode : ", triggerLayout, 0, 2, DPP::QDC::Bit_DPPAlgorithmControl::ListTrigMode, DPP::QDC::DPPAlgorithmControl, DPP::QDC::Bit_DPPAlgorithmControl::TriggerMode);
|
||||||
SetUpSpinBox(sbTriggerHoldOff[ID][numGroup], "Trig. Holdoff [ns] : ", triggerLayout, 2, 2, DPP::QDC::TriggerHoldOffWidth);
|
SetUpSpinBox(sbTriggerHoldOff[ID][numGroup], "Trig. Holdoff [ns] : ", triggerLayout, 2, 2, DPP::QDC::TriggerHoldOffWidth);
|
||||||
SetUpSpinBox(sbShapedTrigWidth[ID][numGroup], "Trig. Out Width [ns] : ", triggerLayout, 3, 2, DPP::QDC::TRGOUTWidth);
|
SetUpSpinBox(sbShapedTrigWidth[ID][numGroup], "Trig. Out Width [ns] : ", triggerLayout, 3, 2, DPP::QDC::TRGOUTWidth);
|
||||||
|
|
||||||
|
int rowID = 4;
|
||||||
|
if( digi[ID]->HasOverThresholdWidth_QDC() ){
|
||||||
|
SetUpCheckBox(chkOverthreshold[ID][numGroup], "Enable OverThreshold Width ", triggerLayout, rowID, 1, DPP::QDC::DPPAlgorithmControl, DPP::QDC::Bit_DPPAlgorithmControl::OverThresholdWitdhEnable);
|
||||||
|
SetUpSpinBox(sbOverThresholdWidth[ID][numGroup], "OverThreshold Width [ns] :", triggerLayout, rowID, 2, DPP::QDC::OverThresholdWidth);
|
||||||
|
rowID ++;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/// Trigger Threshold
|
/// Trigger Threshold
|
||||||
QGroupBox * widget = new QGroupBox("Threshold [LSB]", triggerBox);
|
QGroupBox * widget = new QGroupBox("Threshold [LSB]", triggerBox);
|
||||||
triggerLayout->addWidget(widget, 4, 0, 1, 4);
|
triggerLayout->addWidget(widget, rowID, 0, 1, 4);
|
||||||
|
|
||||||
QGridLayout * dcLayout = new QGridLayout(widget);
|
QGridLayout * dcLayout = new QGridLayout(widget);
|
||||||
dcLayout->setSpacing(2);
|
dcLayout->setSpacing(2);
|
||||||
|
@ -3025,7 +3034,7 @@ void DigiSettingsPanel::SetUpChannel_QDC(){
|
||||||
QTabWidget * trigTab = new QTabWidget(this);
|
QTabWidget * trigTab = new QTabWidget(this);
|
||||||
trigLayout->addWidget(trigTab);
|
trigLayout->addWidget(trigTab);
|
||||||
|
|
||||||
QStringList tabName = {"Common Settings", "Threshold", "Others"};
|
QStringList tabName = {"Common Settings", "Threshold", "OverThreshold Width", "Others"};
|
||||||
|
|
||||||
const int nTab = tabName.count();
|
const int nTab = tabName.count();
|
||||||
|
|
||||||
|
@ -3105,6 +3114,20 @@ void DigiSettingsPanel::SetUpChannel_QDC(){
|
||||||
}
|
}
|
||||||
|
|
||||||
if( i == 2 ){
|
if( i == 2 ){
|
||||||
|
|
||||||
|
if( digi[ID]->HasOverThresholdWidth_QDC() ){
|
||||||
|
if( ch == 0 ){
|
||||||
|
QLabel * lb0 = new QLabel("OverThreshold Width [ns]", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 4);
|
||||||
|
}
|
||||||
|
SetUpCheckBox(chkOverthreshold[ID][ch], "Enable OverThreshold Width ", tabLayout, ch+1, 1, DPP::QDC::DPPAlgorithmControl, DPP::QDC::Bit_DPPAlgorithmControl::OverThresholdWitdhEnable, ch);
|
||||||
|
SetUpSpinBox(sbOverThresholdWidth[ID][ch], "", tabLayout, ch+1, 3, DPP::QDC::OverThresholdWidth, ch);
|
||||||
|
}else{
|
||||||
|
QLabel * lb0 = new QLabel("OverThreshold Width not supported.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if( i == 3 ){
|
||||||
SetUpCheckBox(chkDisableSelfTrigger[ID][ch], "Disable Self Trigger ", tabLayout, ch+1, 1, DPP::QDC::DPPAlgorithmControl, DPP::QDC::Bit_DPPAlgorithmControl::DisableSelfTrigger, ch);
|
SetUpCheckBox(chkDisableSelfTrigger[ID][ch], "Disable Self Trigger ", tabLayout, ch+1, 1, DPP::QDC::DPPAlgorithmControl, DPP::QDC::Bit_DPPAlgorithmControl::DisableSelfTrigger, ch);
|
||||||
SetUpCheckBox(chkDisableTriggerHysteresis[ID][ch], "Disbale Trig. Hysteresis ", tabLayout, ch+1, 3, DPP::QDC::DPPAlgorithmControl, DPP::QDC::Bit_DPPAlgorithmControl::DisableTriggerHysteresis, ch, 2);
|
SetUpCheckBox(chkDisableTriggerHysteresis[ID][ch], "Disbale Trig. Hysteresis ", tabLayout, ch+1, 3, DPP::QDC::DPPAlgorithmControl, DPP::QDC::Bit_DPPAlgorithmControl::DisableTriggerHysteresis, ch, 2);
|
||||||
}
|
}
|
||||||
|
@ -3113,7 +3136,7 @@ void DigiSettingsPanel::SetUpChannel_QDC(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
{//^================================== QDC
|
{//^================================== QDC
|
||||||
|
|
||||||
QVBoxLayout *trapLayout = new QVBoxLayout(chTrap);
|
QVBoxLayout *trapLayout = new QVBoxLayout(chTrap);
|
||||||
|
|
||||||
|
@ -3172,7 +3195,7 @@ void DigiSettingsPanel::SetUpChannel_QDC(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
{//^======================================== Others
|
{//^======================================== Others
|
||||||
QVBoxLayout *otherLayout = new QVBoxLayout(chOthers);
|
QVBoxLayout *otherLayout = new QVBoxLayout(chOthers);
|
||||||
|
|
||||||
QTabWidget * othersTab = new QTabWidget(this);
|
QTabWidget * othersTab = new QTabWidget(this);
|
||||||
|
@ -3972,22 +3995,23 @@ void DigiSettingsPanel::SyncAllChannelsTab_QDC(){
|
||||||
DebugPrint("%s", "DigiSettingsPanel");
|
DebugPrint("%s", "DigiSettingsPanel");
|
||||||
if( !enableSignalSlot ) return;
|
if( !enableSignalSlot ) return;
|
||||||
|
|
||||||
// SyncSpinBox(sbRecordLength);
|
|
||||||
SyncSpinBox(sbPreTrigger);
|
SyncSpinBox(sbPreTrigger);
|
||||||
SyncSpinBox(sbDCOffset);
|
SyncSpinBox(sbDCOffset);
|
||||||
SyncSpinBox(sbTriggerHoldOff);
|
SyncSpinBox(sbTriggerHoldOff);
|
||||||
SyncSpinBox(sbShapedTrigWidth);
|
SyncSpinBox(sbShapedTrigWidth);
|
||||||
// SyncSpinBox(sbNumEventAgg);
|
|
||||||
SyncSpinBox(sbShortGate);
|
SyncSpinBox(sbShortGate);
|
||||||
SyncSpinBox(sbGateOffset);
|
SyncSpinBox(sbGateOffset);
|
||||||
//SyncSpinBox(sbOverThresholdWidth);
|
|
||||||
|
|
||||||
SyncCheckBox(chkDisableSelfTrigger);
|
SyncCheckBox(chkDisableSelfTrigger);
|
||||||
SyncCheckBox(chkDisableTriggerHysteresis);
|
SyncCheckBox(chkDisableTriggerHysteresis);
|
||||||
//SyncCheckBox(chkOverthreshold);
|
|
||||||
SyncCheckBox(chkChargePedestal);
|
SyncCheckBox(chkChargePedestal);
|
||||||
SyncCheckBox(chkTestPule);
|
SyncCheckBox(chkTestPule);
|
||||||
|
|
||||||
|
if( digi[ID]->HasOverThresholdWidth_QDC() ){
|
||||||
|
SyncSpinBox(sbOverThresholdWidth);
|
||||||
|
SyncCheckBox(chkOverthreshold);
|
||||||
|
}
|
||||||
|
|
||||||
SyncComboBox(cbPolarity);
|
SyncComboBox(cbPolarity);
|
||||||
SyncComboBox(cbRCCR2Smoothing);
|
SyncComboBox(cbRCCR2Smoothing);
|
||||||
SyncComboBox(cbBaseLineAvg);
|
SyncComboBox(cbBaseLineAvg);
|
||||||
|
@ -4081,7 +4105,7 @@ void DigiSettingsPanel::UpdateSettings_QDC(){
|
||||||
UpdateSpinBox(sbShapedTrigWidth[ID][grp], DPP::QDC::TRGOUTWidth, grp);
|
UpdateSpinBox(sbShapedTrigWidth[ID][grp], DPP::QDC::TRGOUTWidth, grp);
|
||||||
UpdateSpinBox(sbShortGate[ID][grp], DPP::QDC::GateWidth, grp);
|
UpdateSpinBox(sbShortGate[ID][grp], DPP::QDC::GateWidth, grp);
|
||||||
UpdateSpinBox(sbGateOffset[ID][grp], DPP::QDC::GateOffset, grp);
|
UpdateSpinBox(sbGateOffset[ID][grp], DPP::QDC::GateOffset, grp);
|
||||||
//UpdateSpinBox(sbOverThresholdWidth[ID][grp], DPP::QDC::OverThresholdWidth, grp);
|
|
||||||
|
|
||||||
uint32_t subChMask = digi[ID]->GetSettingFromMemory(DPP::QDC::SubChannelMask, grp);
|
uint32_t subChMask = digi[ID]->GetSettingFromMemory(DPP::QDC::SubChannelMask, grp);
|
||||||
|
|
||||||
|
@ -4104,10 +4128,13 @@ void DigiSettingsPanel::UpdateSettings_QDC(){
|
||||||
|
|
||||||
chkDisableSelfTrigger[ID][grp]->setChecked( Digitizer::ExtractBits(dpp, DPP::QDC::Bit_DPPAlgorithmControl::DisableSelfTrigger) );
|
chkDisableSelfTrigger[ID][grp]->setChecked( Digitizer::ExtractBits(dpp, DPP::QDC::Bit_DPPAlgorithmControl::DisableSelfTrigger) );
|
||||||
chkDisableTriggerHysteresis[ID][grp]->setChecked( Digitizer::ExtractBits(dpp, DPP::QDC::Bit_DPPAlgorithmControl::DisableTriggerHysteresis) );
|
chkDisableTriggerHysteresis[ID][grp]->setChecked( Digitizer::ExtractBits(dpp, DPP::QDC::Bit_DPPAlgorithmControl::DisableTriggerHysteresis) );
|
||||||
//chkOverthreshold[ID][grp]->setChecked( Digitizer::ExtractBits(dpp, DPP::QDC::Bit_DPPAlgorithmControl::OverThresholdWitdhEnable) );
|
|
||||||
chkChargePedestal[ID][grp]->setChecked( Digitizer::ExtractBits(dpp, DPP::QDC::Bit_DPPAlgorithmControl::ChargePedestal));
|
chkChargePedestal[ID][grp]->setChecked( Digitizer::ExtractBits(dpp, DPP::QDC::Bit_DPPAlgorithmControl::ChargePedestal));
|
||||||
chkTestPule[ID][grp]->setChecked( Digitizer::ExtractBits(dpp, DPP::QDC::Bit_DPPAlgorithmControl::InternalTestPulse));
|
chkTestPule[ID][grp]->setChecked( Digitizer::ExtractBits(dpp, DPP::QDC::Bit_DPPAlgorithmControl::InternalTestPulse));
|
||||||
|
|
||||||
|
if( digi[ID]->HasOverThresholdWidth_QDC() ) {
|
||||||
|
UpdateSpinBox(sbOverThresholdWidth[ID][grp], DPP::QDC::OverThresholdWidth, grp);
|
||||||
|
chkOverthreshold[ID][grp]->setChecked( Digitizer::ExtractBits(dpp, DPP::QDC::Bit_DPPAlgorithmControl::OverThresholdWitdhEnable) );
|
||||||
|
}
|
||||||
|
|
||||||
uint32_t dcOffSet_low = digi[ID]->GetSettingFromMemory(DPP::QDC::DCOffset_LowCh, grp);
|
uint32_t dcOffSet_low = digi[ID]->GetSettingFromMemory(DPP::QDC::DCOffset_LowCh, grp);
|
||||||
|
|
||||||
|
|
|
@ -294,8 +294,8 @@ private:
|
||||||
//Trig Hold off with -> sbTriggerHoldOff
|
//Trig Hold off with -> sbTriggerHoldOff
|
||||||
//Trig out width -> sbShapedTrigWidth
|
//Trig out width -> sbShapedTrigWidth
|
||||||
|
|
||||||
//QCheckBox * chkOverthreshold[MaxNDigitizer][MaxRegChannel+1]; //TODO need firmware version 4.25 & 135.17
|
QCheckBox * chkOverthreshold[MaxNDigitizer][MaxRegChannel+1]; //TODO need firmware version 4.25 & 135.17
|
||||||
//RSpinBox * sbOverThresholdWidth[MaxNDigitizer][MaxRegChannel + 1];
|
RSpinBox * sbOverThresholdWidth[MaxNDigitizer][MaxRegChannel + 1];
|
||||||
QPushButton * pbSubChMask[MaxNDigitizer][MaxRegChannel+1][8];
|
QPushButton * pbSubChMask[MaxNDigitizer][MaxRegChannel+1][8];
|
||||||
RSpinBox * sbSubChOffset[MaxNDigitizer][MaxRegChannel + 1][8];
|
RSpinBox * sbSubChOffset[MaxNDigitizer][MaxRegChannel + 1][8];
|
||||||
RSpinBox * sbSubChThreshold[MaxNDigitizer][MaxRegChannel + 1][8];
|
RSpinBox * sbSubChThreshold[MaxNDigitizer][MaxRegChannel + 1][8];
|
||||||
|
|
|
@ -795,7 +795,7 @@ namespace DPP {
|
||||||
const Reg DPPAlgorithmControl ("DPPAlgorithmControl" , 0x1040, RW::ReadWrite, false, {}); /// R/W
|
const Reg DPPAlgorithmControl ("DPPAlgorithmControl" , 0x1040, RW::ReadWrite, false, {}); /// R/W
|
||||||
const Reg TriggerHoldOffWidth ("Trigger Hold-off width" , 0x1074, RW::ReadWrite, false, 0xFFFF, 1); /// R/W
|
const Reg TriggerHoldOffWidth ("Trigger Hold-off width" , 0x1074, RW::ReadWrite, false, 0xFFFF, 1); /// R/W
|
||||||
const Reg TRGOUTWidth ("Trigger out width" , 0x1078, RW::ReadWrite, false, 0xFFFF, 1); /// R/W
|
const Reg TRGOUTWidth ("Trigger out width" , 0x1078, RW::ReadWrite, false, 0xFFFF, 1); /// R/W
|
||||||
//const Reg OverThresholdWidth ("Over Threshold width" , 0x107C, RW::ReadWrite, false, 0xFFFF, 1); /// R/W // need firmware version 4.25 & 135.17
|
const Reg OverThresholdWidth ("Over Threshold width" , 0x107C, RW::ReadWrite, false, 0xFFFF, 1); /// R/W // need firmware version 4.25 & 135.17
|
||||||
const Reg GroupStatus_R ("Group Status" , 0x1088, RW::ReadONLY, false, {}); /// R/
|
const Reg GroupStatus_R ("Group Status" , 0x1088, RW::ReadONLY, false, {}); /// R/
|
||||||
const Reg AMCFirmwareRevision_R ("AMC firmware version" , 0x108C, RW::ReadONLY, false, {}); /// R/
|
const Reg AMCFirmwareRevision_R ("AMC firmware version" , 0x108C, RW::ReadONLY, false, {}); /// R/
|
||||||
const Reg DCOffset ("DC offset" , 0x1098, RW::ReadWrite, false, 0xFFFF, -1); /// R/W
|
const Reg DCOffset ("DC offset" , 0x1098, RW::ReadWrite, false, 0xFFFF, -1); /// R/W
|
||||||
|
@ -821,7 +821,7 @@ namespace DPP {
|
||||||
const std::pair<unsigned short, unsigned short> ChargeSensitivity = {3, 0} ; /// length, smallest pos
|
const std::pair<unsigned short, unsigned short> ChargeSensitivity = {3, 0} ; /// length, smallest pos
|
||||||
const std::pair<unsigned short, unsigned short> InternalTestPulse = {1, 4};
|
const std::pair<unsigned short, unsigned short> InternalTestPulse = {1, 4};
|
||||||
const std::pair<unsigned short, unsigned short> TestPulseRate = {2, 5};
|
const std::pair<unsigned short, unsigned short> TestPulseRate = {2, 5};
|
||||||
//const std::pair<unsigned short, unsigned short> OverThresholdWitdhEnable = {1, 7}; ///need firmware version 4.25 & 135.17
|
const std::pair<unsigned short, unsigned short> OverThresholdWitdhEnable = {1, 7}; ///need firmware version 4.25 & 135.17
|
||||||
const std::pair<unsigned short, unsigned short> ChargePedestal = {1, 8};
|
const std::pair<unsigned short, unsigned short> ChargePedestal = {1, 8};
|
||||||
const std::pair<unsigned short, unsigned short> InputSmoothingFactor = {3, 12};
|
const std::pair<unsigned short, unsigned short> InputSmoothingFactor = {3, 12};
|
||||||
const std::pair<unsigned short, unsigned short> Polarity = {1, 16};
|
const std::pair<unsigned short, unsigned short> Polarity = {1, 16};
|
||||||
|
@ -937,7 +937,7 @@ const std::vector<Reg> RegisterChannelList_QDC = {
|
||||||
DPP::QDC::DPPAlgorithmControl,
|
DPP::QDC::DPPAlgorithmControl,
|
||||||
DPP::QDC::TriggerHoldOffWidth,
|
DPP::QDC::TriggerHoldOffWidth,
|
||||||
DPP::QDC::TRGOUTWidth,
|
DPP::QDC::TRGOUTWidth,
|
||||||
//DPP::QDC::OverThresholdWidth,
|
DPP::QDC::OverThresholdWidth,
|
||||||
DPP::QDC::GroupStatus_R,
|
DPP::QDC::GroupStatus_R,
|
||||||
DPP::QDC::AMCFirmwareRevision_R,
|
DPP::QDC::AMCFirmwareRevision_R,
|
||||||
DPP::QDC::DCOffset,
|
DPP::QDC::DCOffset,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user