varibles name improve, tested more GUI
This commit is contained in:
parent
58e7b0084b
commit
739fa105c5
16
ClassData.h
16
ClassData.h
|
@ -92,7 +92,7 @@ class Data{
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
const unsigned short numChannel;
|
const unsigned short numInputCh;
|
||||||
unsigned int nw;
|
unsigned int nw;
|
||||||
|
|
||||||
///for temperary
|
///for temperary
|
||||||
|
@ -122,7 +122,7 @@ class Data{
|
||||||
|
|
||||||
//==========================================
|
//==========================================
|
||||||
|
|
||||||
inline Data::Data(unsigned short numCh): numChannel(numCh){
|
inline Data::Data(unsigned short numCh): numInputCh(numCh){
|
||||||
tick2ns = 2.0;
|
tick2ns = 2.0;
|
||||||
boardSN = 0;
|
boardSN = 0;
|
||||||
DPPType = DPPType::DPP_PHA_CODE;
|
DPPType = DPPType::DPP_PHA_CODE;
|
||||||
|
@ -297,7 +297,7 @@ inline void Data::PrintStat() const{
|
||||||
}
|
}
|
||||||
printf("%2s | %6s | %9s | %9s | %6s | %6s(%4s)\n", "ch", "# Evt.", "Rate [Hz]", "Accept", "Tot. Evt.", "index", "loop");
|
printf("%2s | %6s | %9s | %9s | %6s | %6s(%4s)\n", "ch", "# Evt.", "Rate [Hz]", "Accept", "Tot. Evt.", "index", "loop");
|
||||||
printf("---+--------+-----------+-----------+----------\n");
|
printf("---+--------+-----------+-----------+----------\n");
|
||||||
for(int ch = 0; ch < numChannel; ch++){
|
for(int ch = 0; ch < numInputCh; ch++){
|
||||||
printf("%2d | %6d | %9.2f | %9.2f | %6lu | %6d(%2d)\n", ch, NumEventsDecoded[ch], TriggerRate[ch], NonPileUpRate[ch], TotNumNonPileUpEvents[ch], DataIndex[ch], LoopIndex[ch]);
|
printf("%2d | %6d | %9.2f | %9.2f | %6lu | %6d(%2d)\n", ch, NumEventsDecoded[ch], TriggerRate[ch], NonPileUpRate[ch], TotNumNonPileUpEvents[ch], DataIndex[ch], LoopIndex[ch]);
|
||||||
}
|
}
|
||||||
printf("---+--------+-----------+-----------+----------\n");
|
printf("---+--------+-----------+-----------+----------\n");
|
||||||
|
@ -311,7 +311,7 @@ inline void Data::PrintAllData(bool tableMode, unsigned int maxRowDisplay) const
|
||||||
|
|
||||||
int MaxEntry = 0;
|
int MaxEntry = 0;
|
||||||
printf("%4s|", "");
|
printf("%4s|", "");
|
||||||
for( int ch = 0; ch < numChannel; ch++){
|
for( int ch = 0; ch < numInputCh; ch++){
|
||||||
if( LoopIndex[ch] > 0 ) {
|
if( LoopIndex[ch] > 0 ) {
|
||||||
MaxEntry = MaxNData-1;
|
MaxEntry = MaxNData-1;
|
||||||
}else{
|
}else{
|
||||||
|
@ -325,7 +325,7 @@ inline void Data::PrintAllData(bool tableMode, unsigned int maxRowDisplay) const
|
||||||
|
|
||||||
do{
|
do{
|
||||||
printf("%4d|", entry );
|
printf("%4d|", entry );
|
||||||
for( int ch = 0; ch < numChannel; ch++){
|
for( int ch = 0; ch < numInputCh; ch++){
|
||||||
if( DataIndex[ch] < 0 ) continue;
|
if( DataIndex[ch] < 0 ) continue;
|
||||||
printf(" %5d,%12lld |", Energy[ch][entry], Timestamp[ch][entry]);
|
printf(" %5d,%12lld |", Energy[ch][entry], Timestamp[ch][entry]);
|
||||||
}
|
}
|
||||||
|
@ -336,7 +336,7 @@ inline void Data::PrintAllData(bool tableMode, unsigned int maxRowDisplay) const
|
||||||
}while(entry <= MaxEntry);
|
}while(entry <= MaxEntry);
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
for( int ch = 0; ch < numChannel ; ch++){
|
for( int ch = 0; ch < numInputCh ; ch++){
|
||||||
if( DataIndex[ch] < 0 ) continue;
|
if( DataIndex[ch] < 0 ) continue;
|
||||||
printf("------------ ch : %d, DataIndex : %d, loop : %d\n", ch, DataIndex[ch], LoopIndex[ch]);
|
printf("------------ ch : %d, DataIndex : %d, loop : %d\n", ch, DataIndex[ch], LoopIndex[ch]);
|
||||||
for( int ev = 0; ev <= (LoopIndex[ch] > 0 ? MaxNData : DataIndex[ch]) ; ev++){
|
for( int ev = 0; ev <= (LoopIndex[ch] > 0 ? MaxNData : DataIndex[ch]) ; ev++){
|
||||||
|
@ -411,9 +411,9 @@ inline void Data::DecodeBuffer(bool fastDecode, int verbose){
|
||||||
NumNonPileUpDecoded[ch] = 0;
|
NumNonPileUpDecoded[ch] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
for( int chMask = 0; chMask < MaxNChannels/2 ; chMask ++ ){
|
for( int chMask = 0; chMask < 8 ; chMask ++ ){ // the max numnber of RegChannel is 8 for PHA, PSD, QDC
|
||||||
if( ((ChannelMask >> chMask) & 0x1 ) == 0 ) continue;
|
if( ((ChannelMask >> chMask) & 0x1 ) == 0 ) continue;
|
||||||
if( verbose >= 2 ) printf("==================== Dual Channel Block, ch Mask : %d, nw : %d\n", chMask *2, nw);
|
if( verbose >= 2 ) printf("==================== Dual/Group Channel Block, ch Mask : %d, nw : %d\n", chMask *2, nw);
|
||||||
|
|
||||||
if( DPPType == DPPType::DPP_PHA_CODE ) {
|
if( DPPType == DPPType::DPP_PHA_CODE ) {
|
||||||
if ( DecodePHADualChannelBlock(chMask, fastDecode, verbose) < 0 ) break;
|
if ( DecodePHADualChannelBlock(chMask, fastDecode, verbose) < 0 ) break;
|
||||||
|
|
|
@ -21,9 +21,9 @@ void Digitizer::Initalization(){
|
||||||
portID = -1;
|
portID = -1;
|
||||||
boardID = -1;
|
boardID = -1;
|
||||||
handle = -1;
|
handle = -1;
|
||||||
NChannel = 16;
|
NumInputCh = 16;
|
||||||
NRegChannel = 16;
|
NumRegChannel = 16;
|
||||||
isChEqRegCh = true;
|
isInputChEqRegCh = true;
|
||||||
NCoupledCh = 8;
|
NCoupledCh = 8;
|
||||||
ADCbits = 1;
|
ADCbits = 1;
|
||||||
DPPType = 0;
|
DPPType = 0;
|
||||||
|
@ -63,8 +63,8 @@ void Digitizer::Reset(){
|
||||||
void Digitizer::PrintBoard (){
|
void Digitizer::PrintBoard (){
|
||||||
printf("Connected to Model %s with handle %d using %s\n", BoardInfo.ModelName, handle, LinkType == CAEN_DGTZ_USB ? "USB" : "Optical Link");
|
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/tick2ns, tick2ns);
|
printf(" Sampling rate : %.0f MHz = %.1f ns \n", 1000/tick2ns, tick2ns);
|
||||||
printf("No. of Input Channels : %d \n", NChannel);
|
printf("No. of Input Channels : %d \n", NumInputCh);
|
||||||
printf(" No. of Reg Channels : %d, mask : 0x%X\n", NRegChannel, regChannelMask);
|
printf(" No. of Reg Channels : %d, mask : 0x%X\n", NumRegChannel, regChannelMask);
|
||||||
printf(" SerialNumber :\e[1m\e[33m %d\e[0m\n", BoardInfo.SerialNumber);
|
printf(" SerialNumber :\e[1m\e[33m %d\e[0m\n", BoardInfo.SerialNumber);
|
||||||
printf(" DPPType : %d (%s)\n", DPPType, GetDPPString().c_str());
|
printf(" DPPType : %d (%s)\n", DPPType, GetDPPString().c_str());
|
||||||
printf(" ADC bit : \e[33m%d\e[0m, %d = 0x%X\n", ADCbits, ADCFullSize, ADCFullSize);
|
printf(" ADC bit : \e[33m%d\e[0m, %d = 0x%X\n", ADCbits, ADCFullSize, ADCFullSize);
|
||||||
|
@ -104,23 +104,23 @@ int Digitizer::OpenDigitizer(int boardID, int portID, bool program, bool verbose
|
||||||
if( verbose) printf("Can't read board info\n");
|
if( verbose) printf("Can't read board info\n");
|
||||||
}else{
|
}else{
|
||||||
isConnected = true;
|
isConnected = true;
|
||||||
NRegChannel = BoardInfo.Channels;
|
NumRegChannel = BoardInfo.Channels;
|
||||||
NChannel = NRegChannel;
|
NumInputCh = NumRegChannel;
|
||||||
isChEqRegCh = true;
|
isInputChEqRegCh = true;
|
||||||
regChannelMask = pow(2, NChannel)-1;
|
regChannelMask = pow(2, NumInputCh)-1;
|
||||||
switch(BoardInfo.Model){
|
switch(BoardInfo.Model){
|
||||||
case CAEN_DGTZ_V1730: tick2ns = 2.0; NCoupledCh = NChannel/2; break; ///ns -> 500 MSamples/s
|
case CAEN_DGTZ_V1730: tick2ns = 2.0; NCoupledCh = NumInputCh/2; break; ///ns -> 500 MSamples/s
|
||||||
case CAEN_DGTZ_V1725: tick2ns = 4.0; NCoupledCh = NChannel/2; break; ///ns -> 250 MSamples/s
|
case CAEN_DGTZ_V1725: tick2ns = 4.0; NCoupledCh = NumInputCh/2; break; ///ns -> 250 MSamples/s
|
||||||
case CAEN_DGTZ_V1740: {
|
case CAEN_DGTZ_V1740: {
|
||||||
NChannel = 64;
|
NumInputCh = 64;
|
||||||
NCoupledCh = NRegChannel;
|
NCoupledCh = NumRegChannel;
|
||||||
isChEqRegCh = false;
|
isInputChEqRegCh = false;
|
||||||
tick2ns = 16.0; break; ///ns -> 62.5 MSamples/s
|
tick2ns = 16.0; break; ///ns -> 62.5 MSamples/s
|
||||||
}
|
}
|
||||||
default : tick2ns = 4.0; break;
|
default : tick2ns = 4.0; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
data = new Data(NChannel);
|
data = new Data(NumInputCh);
|
||||||
data->tick2ns = tick2ns;
|
data->tick2ns = tick2ns;
|
||||||
data->boardSN = BoardInfo.SerialNumber;
|
data->boardSN = BoardInfo.SerialNumber;
|
||||||
ADCbits = BoardInfo.ADC_NBits;
|
ADCbits = BoardInfo.ADC_NBits;
|
||||||
|
@ -244,6 +244,15 @@ void Digitizer::SetRegChannelMask(uint32_t mask){
|
||||||
ErrorMsg(__func__);
|
ErrorMsg(__func__);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Digitizer::GetInputChannelOnOff(unsigned ch) {
|
||||||
|
regChannelMask = GetSettingFromMemory(DPP::RegChannelEnableMask);
|
||||||
|
|
||||||
|
if( isInputChEqRegCh ) return (regChannelMask & ( 1 << ch) );
|
||||||
|
|
||||||
|
int grpID = ch/8; //may change for not grouped in 8;
|
||||||
|
return (regChannelMask & ( 1 << grpID) );
|
||||||
|
}
|
||||||
|
|
||||||
void Digitizer::SetRegChannelOnOff(unsigned short ch, bool onOff){
|
void Digitizer::SetRegChannelOnOff(unsigned short ch, bool onOff){
|
||||||
if( !isConnected ) return;
|
if( !isConnected ) return;
|
||||||
regChannelMask = ((regChannelMask & ~( 1 << ch) ) | ( onOff << ch)) ;
|
regChannelMask = ((regChannelMask & ~( 1 << ch) ) | ( onOff << ch)) ;
|
||||||
|
@ -408,8 +417,8 @@ unsigned int Digitizer::CalByteForBuffer(){
|
||||||
unsigned int numAggBLT;
|
unsigned int numAggBLT;
|
||||||
unsigned int chMask ;
|
unsigned int chMask ;
|
||||||
unsigned int boardCfg ;
|
unsigned int boardCfg ;
|
||||||
unsigned int eventAgg[NChannel/2];
|
unsigned int eventAgg[NumInputCh/2];
|
||||||
unsigned int recordLength[NChannel/2];
|
unsigned int recordLength[NumInputCh/2];
|
||||||
unsigned int aggOrgan;
|
unsigned int aggOrgan;
|
||||||
|
|
||||||
if( isConnected ){
|
if( isConnected ){
|
||||||
|
@ -418,7 +427,7 @@ unsigned int Digitizer::CalByteForBuffer(){
|
||||||
boardCfg = ReadRegister(DPP::BoardConfiguration, 0, false);
|
boardCfg = ReadRegister(DPP::BoardConfiguration, 0, false);
|
||||||
aggOrgan = ReadRegister(DPP::AggregateOrganization, 0, false);
|
aggOrgan = ReadRegister(DPP::AggregateOrganization, 0, false);
|
||||||
|
|
||||||
for( int pCh = 0; pCh < NChannel/2; pCh++){
|
for( int pCh = 0; pCh < NumInputCh/2; pCh++){
|
||||||
eventAgg[pCh] = ReadRegister(DPP::NumberEventsPerAggregate_G, pCh * 2 , false);
|
eventAgg[pCh] = ReadRegister(DPP::NumberEventsPerAggregate_G, pCh * 2 , false);
|
||||||
recordLength[pCh] = ReadRegister(DPP::RecordLength_G, pCh * 2 , false);
|
recordLength[pCh] = ReadRegister(DPP::RecordLength_G, pCh * 2 , false);
|
||||||
}
|
}
|
||||||
|
@ -427,7 +436,7 @@ unsigned int Digitizer::CalByteForBuffer(){
|
||||||
chMask = GetSettingFromMemory(DPP::RegChannelEnableMask);
|
chMask = GetSettingFromMemory(DPP::RegChannelEnableMask);
|
||||||
boardCfg = GetSettingFromMemory(DPP::BoardConfiguration);
|
boardCfg = GetSettingFromMemory(DPP::BoardConfiguration);
|
||||||
aggOrgan = GetSettingFromMemory(DPP::AggregateOrganization);
|
aggOrgan = GetSettingFromMemory(DPP::AggregateOrganization);
|
||||||
for( int pCh = 0; pCh < NChannel/2; pCh++){
|
for( int pCh = 0; pCh < NumInputCh/2; pCh++){
|
||||||
eventAgg[pCh] = GetSettingFromMemory(DPP::NumberEventsPerAggregate_G, pCh * 2 );
|
eventAgg[pCh] = GetSettingFromMemory(DPP::NumberEventsPerAggregate_G, pCh * 2 );
|
||||||
recordLength[pCh] = GetSettingFromMemory(DPP::RecordLength_G, pCh * 2);
|
recordLength[pCh] = GetSettingFromMemory(DPP::RecordLength_G, pCh * 2);
|
||||||
}
|
}
|
||||||
|
@ -438,13 +447,13 @@ unsigned int Digitizer::CalByteForBuffer(){
|
||||||
///printf("Max number of Agg per Readout : %u \n", numAggBLT);
|
///printf("Max number of Agg per Readout : %u \n", numAggBLT);
|
||||||
///printf(" is Extra2 enabed : %u \n", ((boardCfg >> 17) & 0x1) );
|
///printf(" is Extra2 enabed : %u \n", ((boardCfg >> 17) & 0x1) );
|
||||||
///printf(" is Record wave : %u \n", ((boardCfg >> 16) & 0x1) );
|
///printf(" is Record wave : %u \n", ((boardCfg >> 16) & 0x1) );
|
||||||
///for( int pCh = 0; pCh < NChannel/2; pCh++){
|
///for( int pCh = 0; pCh < NumInputCh/2; pCh++){
|
||||||
/// printf("Paired Ch : %d, RecordLength (bit value): %u, Event per Agg. : %u \n", pCh, recordLength[pCh], eventAgg[pCh]);
|
/// printf("Paired Ch : %d, RecordLength (bit value): %u, Event per Agg. : %u \n", pCh, recordLength[pCh], eventAgg[pCh]);
|
||||||
///}
|
///}
|
||||||
|
|
||||||
unsigned int bufferSize = aggOrgan; // just for get rip of the warning in complier
|
unsigned int bufferSize = aggOrgan; // just for get rip of the warning in complier
|
||||||
bufferSize = 0;
|
bufferSize = 0;
|
||||||
for( int pCh = 0; pCh < NChannel/2 ; pCh++){
|
for( int pCh = 0; pCh < NumInputCh/2 ; pCh++){
|
||||||
if( (chMask & ( 3 << (2 * pCh) )) == 0 ) continue;
|
if( (chMask & ( 3 << (2 * pCh) )) == 0 ) continue;
|
||||||
bufferSize += 2 + ( 2 + ((boardCfg >> 17) & 0x1) + ((boardCfg >> 16) & 0x1)*recordLength[pCh]*4 ) * eventAgg[pCh] ;
|
bufferSize += 2 + ( 2 + ((boardCfg >> 17) & 0x1) + ((boardCfg >> 16) & 0x1)*recordLength[pCh]*4 ) * eventAgg[pCh] ;
|
||||||
}
|
}
|
||||||
|
@ -512,7 +521,7 @@ void Digitizer::WriteRegister (Reg registerAddress, uint32_t value, int ch, bool
|
||||||
if( ret == 0 && isSave2MemAndFile && registerAddress.GetRWType() == RW::ReadWrite) {
|
if( ret == 0 && isSave2MemAndFile && registerAddress.GetRWType() == RW::ReadWrite) {
|
||||||
if( ch < 0 ) {
|
if( ch < 0 ) {
|
||||||
if( registerAddress.GetAddress() < 0x8000 ){
|
if( registerAddress.GetAddress() < 0x8000 ){
|
||||||
for(int i = 0; i < NChannel; i++){
|
for(int i = 0; i < NumInputCh; i++){
|
||||||
SetSettingToMemory(registerAddress, value, i);
|
SetSettingToMemory(registerAddress, value, i);
|
||||||
SaveSettingToFile(registerAddress, value, i);
|
SaveSettingToFile(registerAddress, value, i);
|
||||||
}
|
}
|
||||||
|
@ -638,7 +647,7 @@ void Digitizer::ReadAllSettingsFromBoard(bool force){
|
||||||
regChannelMask = GetSettingFromMemory(DPP::RegChannelEnableMask);
|
regChannelMask = GetSettingFromMemory(DPP::RegChannelEnableMask);
|
||||||
|
|
||||||
/// Channels Setting
|
/// Channels Setting
|
||||||
for( int ch = 0; ch < NChannel; ch ++){
|
for( int ch = 0; ch < NumInputCh; ch ++){
|
||||||
if( DPPType == V1730_DPP_PHA_CODE ){
|
if( DPPType == V1730_DPP_PHA_CODE ){
|
||||||
for( int p = 0; p < (int) RegisterChannelList_PHA.size(); p++){
|
for( int p = 0; p < (int) RegisterChannelList_PHA.size(); p++){
|
||||||
if( RegisterChannelList_PHA[p].GetRWType() == RW::WriteONLY) continue;
|
if( RegisterChannelList_PHA[p].GetRWType() == RW::WriteONLY) continue;
|
||||||
|
@ -660,7 +669,7 @@ void Digitizer::ReadAllSettingsFromBoard(bool force){
|
||||||
}
|
}
|
||||||
regChannelMask = GetSettingFromMemory(DPP::QDC::GroupEnableMask);
|
regChannelMask = GetSettingFromMemory(DPP::QDC::GroupEnableMask);
|
||||||
|
|
||||||
for( int ch = 0; ch < GetRegChannels(); ch ++){
|
for( int ch = 0; ch < GetNumRegChannels(); ch ++){
|
||||||
for( int p = 0; p < (int) RegisterChannelList_QDC.size(); p++){
|
for( int p = 0; p < (int) RegisterChannelList_QDC.size(); p++){
|
||||||
if( RegisterChannelList_QDC[p].GetRWType() == RW::WriteONLY) continue;
|
if( RegisterChannelList_QDC[p].GetRWType() == RW::WriteONLY) continue;
|
||||||
ReadRegister(RegisterChannelList_QDC[p], ch);
|
ReadRegister(RegisterChannelList_QDC[p], ch);
|
||||||
|
@ -691,7 +700,7 @@ void Digitizer::ProgramSettingsToBoard(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/// Channels Setting
|
/// Channels Setting
|
||||||
for( int ch = 0; ch < NChannel; ch ++){
|
for( int ch = 0; ch < NumInputCh; ch ++){
|
||||||
if( DPPType == V1730_DPP_PHA_CODE ){
|
if( DPPType == V1730_DPP_PHA_CODE ){
|
||||||
for( int p = 0; p < (int) RegisterChannelList_PHA.size(); p++){
|
for( int p = 0; p < (int) RegisterChannelList_PHA.size(); p++){
|
||||||
if( RegisterChannelList_PHA[p].GetRWType() == RW::ReadWrite ){
|
if( RegisterChannelList_PHA[p].GetRWType() == RW::ReadWrite ){
|
||||||
|
@ -722,7 +731,7 @@ void Digitizer::ProgramSettingsToBoard(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/// Channels Setting
|
/// Channels Setting
|
||||||
for( int ch = 0; ch < GetRegChannels(); ch ++){
|
for( int ch = 0; ch < GetNumRegChannels(); ch ++){
|
||||||
for( int p = 0; p < (int) RegisterChannelList_QDC.size(); p++){
|
for( int p = 0; p < (int) RegisterChannelList_QDC.size(); p++){
|
||||||
if( RegisterChannelList_QDC[p].GetRWType() == RW::ReadWrite ){
|
if( RegisterChannelList_QDC[p].GetRWType() == RW::ReadWrite ){
|
||||||
haha = RegisterChannelList_QDC[p];
|
haha = RegisterChannelList_QDC[p];
|
||||||
|
|
|
@ -27,9 +27,9 @@ class Digitizer{
|
||||||
int portID; /// port ID for optical link for using PCIe card, from 0, 1, 2, 3
|
int portID; /// port ID for optical link for using PCIe card, from 0, 1, 2, 3
|
||||||
int boardID; /// board identity
|
int boardID; /// board identity
|
||||||
int handle; /// i don't know why, but better separete the handle from boardID
|
int handle; /// i don't know why, but better separete the handle from boardID
|
||||||
int NChannel; /// number of physical input channel
|
int NumInputCh; /// number of physical input channel
|
||||||
int NRegChannel; /// number of Register channel
|
int NumRegChannel; /// number of Register channel
|
||||||
bool isChEqRegCh; /// is number of physical input channel = Register channel
|
bool isInputChEqRegCh; /// is number of physical input channel = Register channel
|
||||||
int NCoupledCh; /// number of Coupled channel
|
int NCoupledCh; /// number of Coupled channel
|
||||||
int ADCbits; /// ADC bit
|
int ADCbits; /// ADC bit
|
||||||
int DPPType; /// DPP verion
|
int DPPType; /// DPP verion
|
||||||
|
@ -38,7 +38,7 @@ class Digitizer{
|
||||||
CAEN_DGTZ_BoardInfo_t BoardInfo;
|
CAEN_DGTZ_BoardInfo_t BoardInfo;
|
||||||
|
|
||||||
//^----- adjustable parameters
|
//^----- adjustable parameters
|
||||||
uint32_t regChannelMask ; /// the channel mask from NChannel
|
uint32_t regChannelMask ; /// the channel mask from NumInputCh
|
||||||
uint32_t VMEBaseAddress; /// For direct USB or Optical-link connection, VMEBaseAddress must be 0
|
uint32_t VMEBaseAddress; /// For direct USB or Optical-link connection, VMEBaseAddress must be 0
|
||||||
CAEN_DGTZ_ConnectionType LinkType; /// USB or Optic
|
CAEN_DGTZ_ConnectionType LinkType; /// USB or Optic
|
||||||
CAEN_DGTZ_IOLevel_t IOlev; /// TTL signal (1 = 1.5 to 5V, 0 = 0 to 0.7V ) or NIM signal (1 = -1 to -0.8V, 0 = 0V)
|
CAEN_DGTZ_IOLevel_t IOlev; /// TTL signal (1 = 1.5 to 5V, 0 = 0 to 0.7V ) or NIM signal (1 = -1 to -0.8V, 0 = 0V)
|
||||||
|
@ -106,12 +106,12 @@ class Digitizer{
|
||||||
CAEN_DGTZ_BoardInfo_t GetBoardInfo() const {return BoardInfo;}
|
CAEN_DGTZ_BoardInfo_t GetBoardInfo() const {return BoardInfo;}
|
||||||
std::string GetModelName() const {return BoardInfo.ModelName;}
|
std::string GetModelName() const {return BoardInfo.ModelName;}
|
||||||
int GetSerialNumber() const {return BoardInfo.SerialNumber;}
|
int GetSerialNumber() const {return BoardInfo.SerialNumber;}
|
||||||
int GetChannelMask() { regChannelMask = GetSettingFromMemory(DPP::RegChannelEnableMask); return regChannelMask;}
|
int GetRegChannelMask() { regChannelMask = GetSettingFromMemory(DPP::RegChannelEnableMask); return regChannelMask;}
|
||||||
bool GetChannelOnOff(unsigned ch) { regChannelMask = GetSettingFromMemory(DPP::RegChannelEnableMask); return (regChannelMask & ( 1 << ch) );}
|
bool GetInputChannelOnOff(unsigned ch) ;
|
||||||
float GetTick2ns() const {return tick2ns;}
|
float GetTick2ns() const {return tick2ns;}
|
||||||
int GetNChannels() const {return NChannel;}
|
int GetNumInputCh() const {return NumInputCh;}
|
||||||
int GetRegChannels() const {return NRegChannel;}
|
int GetNumRegChannels() const {return NumRegChannel;}
|
||||||
bool IsChEqRegCh() const {return isChEqRegCh;}
|
bool IsInputChEqRegCh() const {return isInputChEqRegCh;}
|
||||||
int GetCoupledChannels() const {return NCoupledCh;}
|
int GetCoupledChannels() const {return NCoupledCh;}
|
||||||
int GetHandle() const {return handle;}
|
int GetHandle() const {return handle;}
|
||||||
int GetDPPType() const {return DPPType;}
|
int GetDPPType() const {return DPPType;}
|
||||||
|
|
|
@ -73,7 +73,7 @@ DigiSettingsPanel::DigiSettingsPanel(Digitizer ** digi, unsigned int nDigi, QStr
|
||||||
SetUpInfo("Link Type ", digi[ID]->GetLinkType() == CAEN_DGTZ_USB ? "USB" : "Optical Link" , infoLayout[ID], 0, 4);
|
SetUpInfo("Link Type ", digi[ID]->GetLinkType() == CAEN_DGTZ_USB ? "USB" : "Optical Link" , infoLayout[ID], 0, 4);
|
||||||
|
|
||||||
SetUpInfo( "S/N No. ", std::to_string(digi[ID]->GetSerialNumber()), infoLayout[ID], 1, 0);
|
SetUpInfo( "S/N No. ", std::to_string(digi[ID]->GetSerialNumber()), infoLayout[ID], 1, 0);
|
||||||
SetUpInfo("No. Input Ch. ", std::to_string(digi[ID]->GetNChannels()), infoLayout[ID], 1, 2);
|
SetUpInfo("No. Input Ch. ", std::to_string(digi[ID]->GetNumInputCh()), infoLayout[ID], 1, 2);
|
||||||
SetUpInfo("Sampling Rate ", std::to_string((int) digi[ID]->GetTick2ns()) + " ns = " + std::to_string( (1000/digi[ID]->GetTick2ns())) + " MHz" , infoLayout[ID], 1, 4);
|
SetUpInfo("Sampling Rate ", std::to_string((int) digi[ID]->GetTick2ns()) + " ns = " + std::to_string( (1000/digi[ID]->GetTick2ns())) + " MHz" , infoLayout[ID], 1, 4);
|
||||||
|
|
||||||
SetUpInfo("ADC bit ", std::to_string(digi[ID]->GetADCBits()), infoLayout[ID], 2, 0);
|
SetUpInfo("ADC bit ", std::to_string(digi[ID]->GetADCBits()), infoLayout[ID], 2, 0);
|
||||||
|
@ -955,7 +955,7 @@ void DigiSettingsPanel::SetUpInquiryCopyTab(){
|
||||||
enableSignalSlot = false;
|
enableSignalSlot = false;
|
||||||
|
|
||||||
cbCh->clear();
|
cbCh->clear();
|
||||||
for( int i = 0; i < digi[index]->GetNChannels(); i ++ ) cbCh->addItem("Ch-" + QString::number(i), i);
|
for( int i = 0; i < digi[index]->GetNumInputCh(); i ++ ) cbCh->addItem("Ch-" + QString::number(i), i);
|
||||||
|
|
||||||
if( digi[index]->GetDPPType() == V1730_DPP_PHA_CODE ) chRegList = RegisterChannelList_PHA;
|
if( digi[index]->GetDPPType() == V1730_DPP_PHA_CODE ) chRegList = RegisterChannelList_PHA;
|
||||||
if( digi[index]->GetDPPType() == V1730_DPP_PSD_CODE ) chRegList = RegisterChannelList_PSD;
|
if( digi[index]->GetDPPType() == V1730_DPP_PSD_CODE ) chRegList = RegisterChannelList_PSD;
|
||||||
|
@ -1108,7 +1108,7 @@ void DigiSettingsPanel::SetUpInquiryCopyTab(){
|
||||||
connect(rbCh[i], &QRadioButton::clicked, this, &DigiSettingsPanel::CheckRadioAndCheckedButtons);
|
connect(rbCh[i], &QRadioButton::clicked, this, &DigiSettingsPanel::CheckRadioAndCheckedButtons);
|
||||||
|
|
||||||
int id1 = cbFromBoard->currentIndex();
|
int id1 = cbFromBoard->currentIndex();
|
||||||
if( i >= digi[id1]->GetRegChannels() ) rbCh[i]->setEnabled(false);
|
if( i >= digi[id1]->GetNumRegChannels() ) rbCh[i]->setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------- Acton buttons
|
//---------- Acton buttons
|
||||||
|
@ -1141,7 +1141,7 @@ void DigiSettingsPanel::SetUpInquiryCopyTab(){
|
||||||
connect(chkCh[i], &QCheckBox::clicked, this, &DigiSettingsPanel::CheckRadioAndCheckedButtons);
|
connect(chkCh[i], &QCheckBox::clicked, this, &DigiSettingsPanel::CheckRadioAndCheckedButtons);
|
||||||
|
|
||||||
int id1 = cbToBoard->currentIndex();
|
int id1 = cbToBoard->currentIndex();
|
||||||
if( i >= digi[id1]->GetRegChannels() ) chkCh[i]->setEnabled(false);
|
if( i >= digi[id1]->GetNumRegChannels() ) chkCh[i]->setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
bnCopyBoard->setEnabled(false);
|
bnCopyBoard->setEnabled(false);
|
||||||
|
@ -1164,7 +1164,7 @@ void DigiSettingsPanel::SetUpInquiryCopyTab(){
|
||||||
if( digi[fromIndex]->GetDPPType() == V1730_DPP_PHA_CODE ) regList = RegisterChannelList_PHA;
|
if( digi[fromIndex]->GetDPPType() == V1730_DPP_PHA_CODE ) regList = RegisterChannelList_PHA;
|
||||||
if( digi[fromIndex]->GetDPPType() == V1730_DPP_PSD_CODE ) regList = RegisterChannelList_PSD;
|
if( digi[fromIndex]->GetDPPType() == V1730_DPP_PSD_CODE ) regList = RegisterChannelList_PSD;
|
||||||
|
|
||||||
for( int i = 0; i < digi[toIndex]->GetRegChannels() ; i++){
|
for( int i = 0; i < digi[toIndex]->GetNumRegChannels() ; i++){
|
||||||
//Copy setting
|
//Copy setting
|
||||||
for( int k = 0; k < (int) regList.size(); k ++){
|
for( int k = 0; k < (int) regList.size(); k ++){
|
||||||
if( regList[k].GetRWType() != RW::ReadWrite ) continue;
|
if( regList[k].GetRWType() != RW::ReadWrite ) continue;
|
||||||
|
@ -1232,8 +1232,8 @@ void DigiSettingsPanel::SetUpChannelMask(unsigned int digiID){
|
||||||
chLayout->setAlignment(Qt::AlignLeft);
|
chLayout->setAlignment(Qt::AlignLeft);
|
||||||
chLayout->setSpacing(0);
|
chLayout->setSpacing(0);
|
||||||
|
|
||||||
int nChGrp = digi[digiID]->GetRegChannels();
|
int nChGrp = digi[digiID]->GetNumRegChannels();
|
||||||
if( digi[digiID]->GetDPPType() == DPPType::DPP_QDC_CODE ) nChGrp = digi[digiID]->GetRegChannels();
|
if( digi[digiID]->GetDPPType() == DPPType::DPP_QDC_CODE ) nChGrp = digi[digiID]->GetNumRegChannels();
|
||||||
|
|
||||||
for( int i = 0; i < nChGrp; i++){
|
for( int i = 0; i < nChGrp; i++){
|
||||||
bnChEnableMask[digiID][i] = new QPushButton(this);
|
bnChEnableMask[digiID][i] = new QPushButton(this);
|
||||||
|
@ -1390,7 +1390,7 @@ void DigiSettingsPanel::SetUpChannel_PHA(){
|
||||||
QHBoxLayout * papa = new QHBoxLayout(jaja);
|
QHBoxLayout * papa = new QHBoxLayout(jaja);
|
||||||
papa->setAlignment(Qt::AlignLeft);
|
papa->setAlignment(Qt::AlignLeft);
|
||||||
|
|
||||||
const unsigned short numChannel = digi[ID]->GetRegChannels();
|
const unsigned short numChannel = digi[ID]->GetNumRegChannels();
|
||||||
|
|
||||||
{//^============================== Channel selection
|
{//^============================== Channel selection
|
||||||
QLabel * lbChSel = new QLabel ("Channel : ", this);
|
QLabel * lbChSel = new QLabel ("Channel : ", this);
|
||||||
|
@ -1525,7 +1525,7 @@ void DigiSettingsPanel::SetUpChannel_PHA(){
|
||||||
|
|
||||||
connect(bnADCCali, &QPushButton::clicked, this, [=](){
|
connect(bnADCCali, &QPushButton::clicked, this, [=](){
|
||||||
digi[ID]->WriteRegister(DPP::ADCCalibration_W, 1);
|
digi[ID]->WriteRegister(DPP::ADCCalibration_W, 1);
|
||||||
for( int i = 0 ; i < digi[ID]->GetRegChannels(); i++ ) digi[ID]->ReadRegister(DPP::ChannelStatus_R, i);
|
for( int i = 0 ; i < digi[ID]->GetNumRegChannels(); i++ ) digi[ID]->ReadRegister(DPP::ChannelStatus_R, i);
|
||||||
UpdatePanelFromMemory();
|
UpdatePanelFromMemory();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -1553,7 +1553,7 @@ void DigiSettingsPanel::SetUpChannel_PHA(){
|
||||||
|
|
||||||
QLabel * lb0 = new QLabel("Ch.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
QLabel * lb0 = new QLabel("Ch.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
||||||
|
|
||||||
for( int ch = 0; ch < digi[ID]->GetRegChannels(); ch++){
|
for( int ch = 0; ch < digi[ID]->GetNumRegChannels(); ch++){
|
||||||
|
|
||||||
QLabel * chid = new QLabel(QString::number(ch), this);
|
QLabel * chid = new QLabel(QString::number(ch), this);
|
||||||
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
||||||
|
@ -1616,7 +1616,7 @@ void DigiSettingsPanel::SetUpChannel_PHA(){
|
||||||
|
|
||||||
QLabel * lb0 = new QLabel("Ch.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
QLabel * lb0 = new QLabel("Ch.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
||||||
|
|
||||||
for( int ch = 0; ch < digi[ID]->GetRegChannels(); ch++){
|
for( int ch = 0; ch < digi[ID]->GetNumRegChannels(); ch++){
|
||||||
QLabel * chid = new QLabel(QString::number(ch), this);
|
QLabel * chid = new QLabel(QString::number(ch), this);
|
||||||
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
||||||
chid->setFixedWidth(20);
|
chid->setFixedWidth(20);
|
||||||
|
@ -1676,7 +1676,7 @@ void DigiSettingsPanel::SetUpChannel_PHA(){
|
||||||
|
|
||||||
QLabel * lb0 = new QLabel("Ch.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
QLabel * lb0 = new QLabel("Ch.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
||||||
|
|
||||||
for( int ch = 0; ch < digi[ID]->GetRegChannels(); ch++){
|
for( int ch = 0; ch < digi[ID]->GetNumRegChannels(); ch++){
|
||||||
|
|
||||||
QLabel * chid = new QLabel(QString::number(ch), this);
|
QLabel * chid = new QLabel(QString::number(ch), this);
|
||||||
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
||||||
|
@ -1740,7 +1740,7 @@ void DigiSettingsPanel::SetUpChannel_PHA(){
|
||||||
|
|
||||||
QLabel * lb0 = new QLabel("Ch.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
QLabel * lb0 = new QLabel("Ch.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
||||||
|
|
||||||
for( int ch = 0; ch < digi[ID]->GetRegChannels(); ch++){
|
for( int ch = 0; ch < digi[ID]->GetNumRegChannels(); ch++){
|
||||||
QLabel * chid = new QLabel(QString::number(ch), this);
|
QLabel * chid = new QLabel(QString::number(ch), this);
|
||||||
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
||||||
chid->setFixedWidth(20);
|
chid->setFixedWidth(20);
|
||||||
|
@ -1839,7 +1839,7 @@ void DigiSettingsPanel::SetUpChannel_PSD(){
|
||||||
QHBoxLayout * papa = new QHBoxLayout(jaja);
|
QHBoxLayout * papa = new QHBoxLayout(jaja);
|
||||||
papa->setAlignment(Qt::AlignLeft);
|
papa->setAlignment(Qt::AlignLeft);
|
||||||
|
|
||||||
const unsigned short numChannel = digi[ID]->GetRegChannels();
|
const unsigned short numChannel = digi[ID]->GetNumRegChannels();
|
||||||
|
|
||||||
{//^============================== Channel selection
|
{//^============================== Channel selection
|
||||||
QLabel * lbChSel = new QLabel ("Ch : ", this);
|
QLabel * lbChSel = new QLabel ("Ch : ", this);
|
||||||
|
@ -2024,7 +2024,7 @@ void DigiSettingsPanel::SetUpChannel_PSD(){
|
||||||
|
|
||||||
connect(bnADCCali, &QPushButton::clicked, this, [=](){
|
connect(bnADCCali, &QPushButton::clicked, this, [=](){
|
||||||
digi[ID]->WriteRegister(DPP::ADCCalibration_W, 1);
|
digi[ID]->WriteRegister(DPP::ADCCalibration_W, 1);
|
||||||
for( int i = 0 ; i < digi[ID]->GetRegChannels(); i++ ) digi[ID]->ReadRegister(DPP::ChannelStatus_R, i);
|
for( int i = 0 ; i < digi[ID]->GetNumRegChannels(); i++ ) digi[ID]->ReadRegister(DPP::ChannelStatus_R, i);
|
||||||
UpdatePanelFromMemory();
|
UpdatePanelFromMemory();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -2052,7 +2052,7 @@ void DigiSettingsPanel::SetUpChannel_PSD(){
|
||||||
|
|
||||||
QLabel * lb0 = new QLabel("Ch.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
QLabel * lb0 = new QLabel("Ch.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
||||||
|
|
||||||
for( int ch = 0; ch < digi[ID]->GetRegChannels(); ch++){
|
for( int ch = 0; ch < digi[ID]->GetNumRegChannels(); ch++){
|
||||||
|
|
||||||
QLabel * chid = new QLabel(QString::number(ch), this);
|
QLabel * chid = new QLabel(QString::number(ch), this);
|
||||||
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
||||||
|
@ -2163,7 +2163,7 @@ void DigiSettingsPanel::SetUpChannel_PSD(){
|
||||||
|
|
||||||
QLabel * lb0 = new QLabel("Ch.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
QLabel * lb0 = new QLabel("Ch.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
||||||
|
|
||||||
for( int ch = 0; ch < digi[ID]->GetRegChannels(); ch++){
|
for( int ch = 0; ch < digi[ID]->GetNumRegChannels(); ch++){
|
||||||
QLabel * chid = new QLabel(QString::number(ch), this);
|
QLabel * chid = new QLabel(QString::number(ch), this);
|
||||||
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
||||||
chid->setFixedWidth(20);
|
chid->setFixedWidth(20);
|
||||||
|
@ -2246,7 +2246,7 @@ void DigiSettingsPanel::SetUpChannel_PSD(){
|
||||||
|
|
||||||
QLabel * lb0 = new QLabel("Ch.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
QLabel * lb0 = new QLabel("Ch.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
||||||
|
|
||||||
for( int ch = 0; ch < digi[ID]->GetRegChannels(); ch++){
|
for( int ch = 0; ch < digi[ID]->GetNumRegChannels(); ch++){
|
||||||
|
|
||||||
QLabel * chid = new QLabel(QString::number(ch), this);
|
QLabel * chid = new QLabel(QString::number(ch), this);
|
||||||
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
||||||
|
@ -2314,7 +2314,7 @@ void DigiSettingsPanel::SetUpChannel_PSD(){
|
||||||
|
|
||||||
QLabel * lb0 = new QLabel("Ch.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
QLabel * lb0 = new QLabel("Ch.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
||||||
|
|
||||||
for( int ch = 0; ch < digi[ID]->GetRegChannels(); ch++){
|
for( int ch = 0; ch < digi[ID]->GetNumRegChannels(); ch++){
|
||||||
QLabel * chid = new QLabel(QString::number(ch), this);
|
QLabel * chid = new QLabel(QString::number(ch), this);
|
||||||
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
||||||
chid->setFixedWidth(20);
|
chid->setFixedWidth(20);
|
||||||
|
@ -2419,7 +2419,7 @@ void DigiSettingsPanel::SetUpChannel_QDC(){
|
||||||
QHBoxLayout * papa = new QHBoxLayout(jaja);
|
QHBoxLayout * papa = new QHBoxLayout(jaja);
|
||||||
papa->setAlignment(Qt::AlignLeft);
|
papa->setAlignment(Qt::AlignLeft);
|
||||||
|
|
||||||
const unsigned short numGroup = digi[ID]->GetRegChannels();
|
const unsigned short numGroup = digi[ID]->GetNumRegChannels();
|
||||||
|
|
||||||
{//^============================== Group selection
|
{//^============================== Group selection
|
||||||
QLabel * lbChSel = new QLabel ("Group : ", this);
|
QLabel * lbChSel = new QLabel ("Group : ", this);
|
||||||
|
@ -2668,7 +2668,7 @@ void DigiSettingsPanel::SetUpChannel_QDC(){
|
||||||
|
|
||||||
QLabel * lb0 = new QLabel("Grp.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
QLabel * lb0 = new QLabel("Grp.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
||||||
|
|
||||||
for( int ch = 0; ch < digi[ID]->GetRegChannels(); ch++){
|
for( int ch = 0; ch < digi[ID]->GetNumRegChannels(); ch++){
|
||||||
|
|
||||||
QLabel * chid = new QLabel(QString::number(ch), this);
|
QLabel * chid = new QLabel(QString::number(ch), this);
|
||||||
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
||||||
|
@ -2774,7 +2774,7 @@ void DigiSettingsPanel::SetUpChannel_QDC(){
|
||||||
|
|
||||||
QLabel * lb0 = new QLabel("Ch.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
QLabel * lb0 = new QLabel("Ch.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
||||||
|
|
||||||
for( int ch = 0; ch < digi[ID]->GetRegChannels(); ch++){
|
for( int ch = 0; ch < digi[ID]->GetNumRegChannels(); ch++){
|
||||||
QLabel * chid = new QLabel(QString::number(ch), this);
|
QLabel * chid = new QLabel(QString::number(ch), this);
|
||||||
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
||||||
chid->setFixedWidth(20);
|
chid->setFixedWidth(20);
|
||||||
|
@ -2872,7 +2872,7 @@ void DigiSettingsPanel::SetUpChannel_QDC(){
|
||||||
|
|
||||||
QLabel * lb0 = new QLabel("Ch.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
QLabel * lb0 = new QLabel("Ch.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
||||||
|
|
||||||
for( int ch = 0; ch < digi[ID]->GetRegChannels(); ch++){
|
for( int ch = 0; ch < digi[ID]->GetNumRegChannels(); ch++){
|
||||||
|
|
||||||
QLabel * chid = new QLabel(QString::number(ch), this);
|
QLabel * chid = new QLabel(QString::number(ch), this);
|
||||||
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
||||||
|
@ -2929,7 +2929,7 @@ void DigiSettingsPanel::SetUpChannel_QDC(){
|
||||||
|
|
||||||
QLabel * lb0 = new QLabel("Ch.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
QLabel * lb0 = new QLabel("Ch.", this); lb0->setAlignment(Qt::AlignHCenter); tabLayout->addWidget(lb0, 0, 0);
|
||||||
|
|
||||||
for( int ch = 0; ch < digi[ID]->GetRegChannels(); ch++){
|
for( int ch = 0; ch < digi[ID]->GetNumRegChannels(); ch++){
|
||||||
QLabel * chid = new QLabel(QString::number(ch), this);
|
QLabel * chid = new QLabel(QString::number(ch), this);
|
||||||
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
chid->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
||||||
chid->setFixedWidth(20);
|
chid->setFixedWidth(20);
|
||||||
|
@ -3005,7 +3005,7 @@ void DigiSettingsPanel::UpdateBoardAndChannelsStatus(){
|
||||||
}
|
}
|
||||||
|
|
||||||
//*========================================== Channel Status
|
//*========================================== Channel Status
|
||||||
for( int i = 0; i < digi[ID]->GetRegChannels(); i++){
|
for( int i = 0; i < digi[ID]->GetNumRegChannels(); i++){
|
||||||
uint32_t chStatus = digi[ID]->ReadRegister(DPP::ChannelStatus_R, i);
|
uint32_t chStatus = digi[ID]->ReadRegister(DPP::ChannelStatus_R, i);
|
||||||
|
|
||||||
if( digi[ID]->GetDPPType() == DPPType::DPP_PHA_CODE || digi[ID]->GetDPPType() == DPPType::DPP_PSD_CODE ){
|
if( digi[ID]->GetDPPType() == DPPType::DPP_PHA_CODE || digi[ID]->GetDPPType() == DPPType::DPP_PSD_CODE ){
|
||||||
|
@ -3123,7 +3123,7 @@ void DigiSettingsPanel::UpdatePanelFromMemory(){
|
||||||
}
|
}
|
||||||
//*========================================
|
//*========================================
|
||||||
uint32_t chMask = digi[ID]->GetSettingFromMemory(DPP::RegChannelEnableMask);
|
uint32_t chMask = digi[ID]->GetSettingFromMemory(DPP::RegChannelEnableMask);
|
||||||
for( int i = 0; i < digi[ID]->GetRegChannels(); i++){
|
for( int i = 0; i < digi[ID]->GetNumRegChannels(); i++){
|
||||||
if( (chMask >> i ) & 0x1 ) {
|
if( (chMask >> i ) & 0x1 ) {
|
||||||
bnChEnableMask[ID][i]->setStyleSheet("background-color: green;");
|
bnChEnableMask[ID][i]->setStyleSheet("background-color: green;");
|
||||||
}else{
|
}else{
|
||||||
|
@ -3191,7 +3191,7 @@ void DigiSettingsPanel::UpdatePanelFromMemory(){
|
||||||
uint32_t glbTrgMask = digi[ID]->GetSettingFromMemory(DPP::GlobalTriggerMask);
|
uint32_t glbTrgMask = digi[ID]->GetSettingFromMemory(DPP::GlobalTriggerMask);
|
||||||
|
|
||||||
if( digi[ID]->GetDPPType() == V1730_DPP_PHA_CODE || digi[ID]->GetDPPType() == V1730_DPP_PSD_CODE ){
|
if( digi[ID]->GetDPPType() == V1730_DPP_PHA_CODE || digi[ID]->GetDPPType() == V1730_DPP_PSD_CODE ){
|
||||||
for( int i = 0; i < digi[ID]->GetRegChannels(); i++){
|
for( int i = 0; i < digi[ID]->GetNumRegChannels(); i++){
|
||||||
if( (glbTrgMask >> i ) & 0x1 ){
|
if( (glbTrgMask >> i ) & 0x1 ){
|
||||||
bnGlobalTriggerMask[ID][i]->setStyleSheet("background-color: green;");
|
bnGlobalTriggerMask[ID][i]->setStyleSheet("background-color: green;");
|
||||||
}else{
|
}else{
|
||||||
|
@ -3206,7 +3206,7 @@ void DigiSettingsPanel::UpdatePanelFromMemory(){
|
||||||
|
|
||||||
//*========================================
|
//*========================================
|
||||||
uint32_t TRGOUTMask = digi[ID]->GetSettingFromMemory(DPP::FrontPanelTRGOUTEnableMask);
|
uint32_t TRGOUTMask = digi[ID]->GetSettingFromMemory(DPP::FrontPanelTRGOUTEnableMask);
|
||||||
for( int i = 0; i < digi[ID]->GetRegChannels(); i++){
|
for( int i = 0; i < digi[ID]->GetNumRegChannels(); i++){
|
||||||
if( (TRGOUTMask >> i ) & 0x1 ){
|
if( (TRGOUTMask >> i ) & 0x1 ){
|
||||||
bnTRGOUTMask[ID][i]->setStyleSheet("background-color: green;");
|
bnTRGOUTMask[ID][i]->setStyleSheet("background-color: green;");
|
||||||
}else{
|
}else{
|
||||||
|
@ -3328,7 +3328,7 @@ void DigiSettingsPanel::UpdateComboBoxBit(RComboBox * & cb, uint32_t fullBit, st
|
||||||
void DigiSettingsPanel::SyncSpinBox(RSpinBox *(&spb)[][MaxRegChannel+1]){
|
void DigiSettingsPanel::SyncSpinBox(RSpinBox *(&spb)[][MaxRegChannel+1]){
|
||||||
if( !enableSignalSlot ) return;
|
if( !enableSignalSlot ) return;
|
||||||
|
|
||||||
const int nCh = digi[ID]->GetRegChannels();
|
const int nCh = digi[ID]->GetNumRegChannels();
|
||||||
|
|
||||||
int ch = chSelection[ID]->currentData().toInt();
|
int ch = chSelection[ID]->currentData().toInt();
|
||||||
|
|
||||||
|
@ -3360,7 +3360,7 @@ void DigiSettingsPanel::SyncSpinBox(RSpinBox *(&spb)[][MaxRegChannel+1]){
|
||||||
void DigiSettingsPanel::SyncComboBox(RComboBox *(&cb)[][MaxRegChannel+1]){
|
void DigiSettingsPanel::SyncComboBox(RComboBox *(&cb)[][MaxRegChannel+1]){
|
||||||
if( !enableSignalSlot ) return;
|
if( !enableSignalSlot ) return;
|
||||||
|
|
||||||
const int nCh = digi[ID]->GetRegChannels();
|
const int nCh = digi[ID]->GetNumRegChannels();
|
||||||
|
|
||||||
int ch = chSelection[ID]->currentData().toInt();
|
int ch = chSelection[ID]->currentData().toInt();
|
||||||
|
|
||||||
|
@ -3391,7 +3391,7 @@ void DigiSettingsPanel::SyncComboBox(RComboBox *(&cb)[][MaxRegChannel+1]){
|
||||||
void DigiSettingsPanel::SyncCheckBox(QCheckBox *(&chk)[][MaxRegChannel+1]){
|
void DigiSettingsPanel::SyncCheckBox(QCheckBox *(&chk)[][MaxRegChannel+1]){
|
||||||
if( !enableSignalSlot ) return;
|
if( !enableSignalSlot ) return;
|
||||||
|
|
||||||
const int nCh = digi[ID]->GetRegChannels();
|
const int nCh = digi[ID]->GetNumRegChannels();
|
||||||
int ch = chSelection[ID]->currentData().toInt();
|
int ch = chSelection[ID]->currentData().toInt();
|
||||||
if( ch >= 0 ){
|
if( ch >= 0 ){
|
||||||
enableSignalSlot = false;
|
enableSignalSlot = false;
|
||||||
|
@ -3469,7 +3469,7 @@ void DigiSettingsPanel::UpdateSettings_PHA(){
|
||||||
|
|
||||||
//printf("------ %s \n", __func__);
|
//printf("------ %s \n", __func__);
|
||||||
|
|
||||||
for( int ch = 0; ch < digi[ID]->GetRegChannels(); ch ++){
|
for( int ch = 0; ch < digi[ID]->GetNumRegChannels(); ch ++){
|
||||||
UpdateSpinBox(sbRecordLength[ID][ch], DPP::RecordLength_G, ch);
|
UpdateSpinBox(sbRecordLength[ID][ch], DPP::RecordLength_G, ch);
|
||||||
UpdateSpinBox(sbPreTrigger[ID][ch], DPP::PreTrigger, ch);
|
UpdateSpinBox(sbPreTrigger[ID][ch], DPP::PreTrigger, ch);
|
||||||
UpdateSpinBox(sbInputRiseTime[ID][ch], DPP::PHA::InputRiseTime, ch);
|
UpdateSpinBox(sbInputRiseTime[ID][ch], DPP::PHA::InputRiseTime, ch);
|
||||||
|
@ -3596,7 +3596,7 @@ void DigiSettingsPanel::UpdateSettings_PSD(){
|
||||||
|
|
||||||
// printf("------ %s \n", __func__);
|
// printf("------ %s \n", __func__);
|
||||||
|
|
||||||
for(int ch = 0; ch < digi[ID]->GetRegChannels(); ch ++){
|
for(int ch = 0; ch < digi[ID]->GetNumRegChannels(); ch ++){
|
||||||
|
|
||||||
UpdateSpinBox(sbRecordLength[ID][ch], DPP::RecordLength_G, ch);
|
UpdateSpinBox(sbRecordLength[ID][ch], DPP::RecordLength_G, ch);
|
||||||
UpdateSpinBox(sbPreTrigger[ID][ch], DPP::PreTrigger, ch);
|
UpdateSpinBox(sbPreTrigger[ID][ch], DPP::PreTrigger, ch);
|
||||||
|
@ -3700,7 +3700,7 @@ void DigiSettingsPanel::SyncAllChannelsTab_QDC(){
|
||||||
|
|
||||||
//Sync sub-DC-offset
|
//Sync sub-DC-offset
|
||||||
//SYnc Threshold
|
//SYnc Threshold
|
||||||
const int nGrp = digi[ID]->GetRegChannels();
|
const int nGrp = digi[ID]->GetNumRegChannels();
|
||||||
|
|
||||||
int grp = chSelection[ID]->currentData().toInt();
|
int grp = chSelection[ID]->currentData().toInt();
|
||||||
|
|
||||||
|
@ -3746,7 +3746,7 @@ void DigiSettingsPanel::SyncAllChannelsTab_QDC(){
|
||||||
void DigiSettingsPanel::UpdateSettings_QDC(){
|
void DigiSettingsPanel::UpdateSettings_QDC(){
|
||||||
enableSignalSlot = false;
|
enableSignalSlot = false;
|
||||||
|
|
||||||
for(int grp = 0; grp < digi[ID]->GetRegChannels(); grp ++){
|
for(int grp = 0; grp < digi[ID]->GetNumRegChannels(); grp ++){
|
||||||
|
|
||||||
UpdateSpinBox(sbPreTrigger[ID][grp], DPP::QDC::PreTrigger, grp);
|
UpdateSpinBox(sbPreTrigger[ID][grp], DPP::QDC::PreTrigger, grp);
|
||||||
UpdateSpinBox(sbDCOffset[ID][grp], DPP::QDC::DCOffset, grp);
|
UpdateSpinBox(sbDCOffset[ID][grp], DPP::QDC::DCOffset, grp);
|
||||||
|
@ -3822,8 +3822,8 @@ void DigiSettingsPanel::CheckRadioAndCheckedButtons(){
|
||||||
int id2 = cbToBoard->currentIndex();
|
int id2 = cbToBoard->currentIndex();
|
||||||
|
|
||||||
for( int i = 0 ; i < MaxRegChannel; i++){
|
for( int i = 0 ; i < MaxRegChannel; i++){
|
||||||
if( i >= digi[id1]->GetRegChannels() ) rbCh[i]->setEnabled(false);
|
if( i >= digi[id1]->GetNumRegChannels() ) rbCh[i]->setEnabled(false);
|
||||||
if( i >= digi[id2]->GetRegChannels() ) chkCh[i]->setEnabled(false);
|
if( i >= digi[id2]->GetNumRegChannels() ) chkCh[i]->setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if( digi[id1]->GetDPPType() != digi[id2]->GetDPPType() ){
|
if( digi[id1]->GetDPPType() != digi[id2]->GetDPPType() ){
|
||||||
|
@ -3839,18 +3839,18 @@ void DigiSettingsPanel::CheckRadioAndCheckedButtons(){
|
||||||
}
|
}
|
||||||
|
|
||||||
int chFromIndex = -1;
|
int chFromIndex = -1;
|
||||||
for( int i = 0 ; i < digi[id1]->GetRegChannels() ; i++){
|
for( int i = 0 ; i < digi[id1]->GetNumRegChannels() ; i++){
|
||||||
if( rbCh[i]->isChecked() && cbFromBoard->currentIndex() == cbToBoard->currentIndex()){
|
if( rbCh[i]->isChecked() && cbFromBoard->currentIndex() == cbToBoard->currentIndex()){
|
||||||
chFromIndex = i;
|
chFromIndex = i;
|
||||||
chkCh[i]->setChecked(false);
|
chkCh[i]->setChecked(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for( int i = 0 ; i < digi[id1]->GetRegChannels() ; i++) chkCh[i]->setEnabled(true);
|
for( int i = 0 ; i < digi[id1]->GetNumRegChannels() ; i++) chkCh[i]->setEnabled(true);
|
||||||
|
|
||||||
if( chFromIndex >= 0 && cbFromBoard->currentIndex() == cbToBoard->currentIndex() ) chkCh[chFromIndex]->setEnabled(false);
|
if( chFromIndex >= 0 && cbFromBoard->currentIndex() == cbToBoard->currentIndex() ) chkCh[chFromIndex]->setEnabled(false);
|
||||||
bool isToIndexCleicked = false;
|
bool isToIndexCleicked = false;
|
||||||
for( int i = 0 ; i < digi[id1]->GetRegChannels() ; i++){
|
for( int i = 0 ; i < digi[id1]->GetNumRegChannels() ; i++){
|
||||||
if( chkCh[i]->isChecked() ){
|
if( chkCh[i]->isChecked() ){
|
||||||
isToIndexCleicked = true;
|
isToIndexCleicked = true;
|
||||||
}
|
}
|
||||||
|
|
28
FSUDAQ.cpp
28
FSUDAQ.cpp
|
@ -790,7 +790,7 @@ void MainWindow::SetupScalar(){
|
||||||
|
|
||||||
unsigned short maxNChannel = 0;
|
unsigned short maxNChannel = 0;
|
||||||
for( unsigned int k = 0; k < nDigi; k ++ ){
|
for( unsigned int k = 0; k < nDigi; k ++ ){
|
||||||
if( digi[k]->GetNChannels() > maxNChannel ) maxNChannel = digi[k]->GetNChannels();
|
if( digi[k]->GetNumInputCh() > maxNChannel ) maxNChannel = digi[k]->GetNumInputCh();
|
||||||
}
|
}
|
||||||
|
|
||||||
scalar->setGeometry(0, 0, 10 + nDigi * 200, 110 + maxNChannel * 20);
|
scalar->setGeometry(0, 0, 10 + nDigi * 200, 110 + maxNChannel * 20);
|
||||||
|
@ -829,10 +829,10 @@ void MainWindow::SetupScalar(){
|
||||||
leAccept = new QLineEdit**[nDigi];
|
leAccept = new QLineEdit**[nDigi];
|
||||||
for( unsigned int iDigi = 0; iDigi < nDigi; iDigi++){
|
for( unsigned int iDigi = 0; iDigi < nDigi; iDigi++){
|
||||||
rowID = 2;
|
rowID = 2;
|
||||||
leTrigger[iDigi] = new QLineEdit *[digi[iDigi]->GetNChannels()];
|
leTrigger[iDigi] = new QLineEdit *[digi[iDigi]->GetNumInputCh()];
|
||||||
leAccept[iDigi] = new QLineEdit *[digi[iDigi]->GetNChannels()];
|
leAccept[iDigi] = new QLineEdit *[digi[iDigi]->GetNumInputCh()];
|
||||||
uint32_t chMask = digi[iDigi]->GetChannelMask();
|
uint32_t chMask = digi[iDigi]->GetRegChannelMask();
|
||||||
for( int ch = 0; ch < digi[iDigi]->GetNChannels(); ch++){
|
for( int ch = 0; ch < digi[iDigi]->GetNumInputCh(); ch++){
|
||||||
|
|
||||||
if( ch == 0 ){
|
if( ch == 0 ){
|
||||||
QLabel * lbDigi = new QLabel("Digi-" + QString::number(digi[iDigi]->GetSerialNumber()), scalar);
|
QLabel * lbDigi = new QLabel("Digi-" + QString::number(digi[iDigi]->GetSerialNumber()), scalar);
|
||||||
|
@ -860,11 +860,11 @@ void MainWindow::SetupScalar(){
|
||||||
leAccept[iDigi][ch]->setAlignment(Qt::AlignRight);
|
leAccept[iDigi][ch]->setAlignment(Qt::AlignRight);
|
||||||
leAccept[iDigi][ch]->setStyleSheet("background-color: #F0F0F0;");
|
leAccept[iDigi][ch]->setStyleSheet("background-color: #F0F0F0;");
|
||||||
|
|
||||||
if( digi[iDigi]->IsChEqRegCh() ){
|
if( digi[iDigi]->IsInputChEqRegCh() ){
|
||||||
leTrigger[iDigi][ch]->setEnabled( (chMask >> ch) & 0x1 );
|
leTrigger[iDigi][ch]->setEnabled( (chMask >> ch) & 0x1 );
|
||||||
leAccept[iDigi][ch]->setEnabled( (chMask >> ch) & 0x1 );
|
leAccept[iDigi][ch]->setEnabled( (chMask >> ch) & 0x1 );
|
||||||
}else{
|
}else{
|
||||||
int grpID = ch/digi[iDigi]->GetRegChannels();
|
int grpID = ch/digi[iDigi]->GetNumRegChannels();
|
||||||
leTrigger[iDigi][ch]->setEnabled( (chMask >> grpID) & 0x1 );
|
leTrigger[iDigi][ch]->setEnabled( (chMask >> grpID) & 0x1 );
|
||||||
leAccept[iDigi][ch]->setEnabled( (chMask >> grpID) & 0x1 );
|
leAccept[iDigi][ch]->setEnabled( (chMask >> grpID) & 0x1 );
|
||||||
}
|
}
|
||||||
|
@ -884,7 +884,7 @@ void MainWindow::CleanUpScalar(){
|
||||||
if( leTrigger == nullptr ) return;
|
if( leTrigger == nullptr ) return;
|
||||||
|
|
||||||
for( unsigned int i = 0; i < nDigi; i++){
|
for( unsigned int i = 0; i < nDigi; i++){
|
||||||
for( int ch = 0; ch < digi[i]->GetNChannels(); ch ++){
|
for( int ch = 0; ch < digi[i]->GetNumInputCh(); ch ++){
|
||||||
delete leTrigger[i][ch];
|
delete leTrigger[i][ch];
|
||||||
delete leAccept[i][ch];
|
delete leAccept[i][ch];
|
||||||
}
|
}
|
||||||
|
@ -925,11 +925,11 @@ void MainWindow::UpdateScalar(){
|
||||||
// printf("### %d ", iDigi);
|
// printf("### %d ", iDigi);
|
||||||
// digi[iDigi]->GetData()->PrintAllData(true, 10);
|
// digi[iDigi]->GetData()->PrintAllData(true, 10);
|
||||||
if( chkSaveData->isChecked() ) totalFileSize += digi[iDigi]->GetData()->GetTotalFileSize();
|
if( chkSaveData->isChecked() ) totalFileSize += digi[iDigi]->GetData()->GetTotalFileSize();
|
||||||
for( int i = 0; i < digi[iDigi]->GetNChannels(); i++){
|
for( int i = 0; i < digi[iDigi]->GetNumInputCh(); i++){
|
||||||
QString a = "";
|
QString a = "";
|
||||||
QString b = "";
|
QString b = "";
|
||||||
|
|
||||||
if( digi[iDigi]->GetChannelOnOff(i) == true ) {
|
if( digi[iDigi]->GetInputChannelOnOff(i) == true ) {
|
||||||
//printf(" %3d %2d | %7.2f %7.2f \n", digi[iDigi]->GetSerialNumber(), i, digi[iDigi]->GetData()->TriggerRate[i], digi[iDigi]->GetData()->NonPileUpRate[i]);
|
//printf(" %3d %2d | %7.2f %7.2f \n", digi[iDigi]->GetSerialNumber(), i, digi[iDigi]->GetData()->TriggerRate[i], digi[iDigi]->GetData()->NonPileUpRate[i]);
|
||||||
QString a = QString::number(digi[iDigi]->GetData()->TriggerRate[i], 'f', 2);
|
QString a = QString::number(digi[iDigi]->GetData()->TriggerRate[i], 'f', 2);
|
||||||
QString b = QString::number(digi[iDigi]->GetData()->NonPileUpRate[i], 'f', 2);
|
QString b = QString::number(digi[iDigi]->GetData()->NonPileUpRate[i], 'f', 2);
|
||||||
|
@ -1506,16 +1506,16 @@ void MainWindow::UpdateAllPanels(int panelID){
|
||||||
|
|
||||||
if(scalar) {
|
if(scalar) {
|
||||||
for( unsigned int iDigi = 0; iDigi < nDigi; iDigi++){
|
for( unsigned int iDigi = 0; iDigi < nDigi; iDigi++){
|
||||||
uint32_t chMask = digi[iDigi]->GetChannelMask();
|
uint32_t chMask = digi[iDigi]->GetRegChannelMask();
|
||||||
for( int ch = 0; ch < digi[iDigi]->GetNChannels(); ch++){
|
for( int ch = 0; ch < digi[iDigi]->GetNumInputCh(); ch++){
|
||||||
// leTrigger[iDigi][i]->setEnabled( (chMask >> i) & 0x1 );
|
// leTrigger[iDigi][i]->setEnabled( (chMask >> i) & 0x1 );
|
||||||
// leAccept[iDigi][i]->setEnabled( (chMask >> i) & 0x1 );
|
// leAccept[iDigi][i]->setEnabled( (chMask >> i) & 0x1 );
|
||||||
|
|
||||||
if( digi[iDigi]->IsChEqRegCh() ){
|
if( digi[iDigi]->IsInputChEqRegCh() ){
|
||||||
leTrigger[iDigi][ch]->setEnabled( (chMask >> ch) & 0x1 );
|
leTrigger[iDigi][ch]->setEnabled( (chMask >> ch) & 0x1 );
|
||||||
leAccept[iDigi][ch]->setEnabled( (chMask >> ch) & 0x1 );
|
leAccept[iDigi][ch]->setEnabled( (chMask >> ch) & 0x1 );
|
||||||
}else{
|
}else{
|
||||||
int grpID = ch/digi[iDigi]->GetRegChannels();
|
int grpID = ch/digi[iDigi]->GetNumRegChannels();
|
||||||
leTrigger[iDigi][ch]->setEnabled( (chMask >> grpID) & 0x1 );
|
leTrigger[iDigi][ch]->setEnabled( (chMask >> grpID) & 0x1 );
|
||||||
leAccept[iDigi][ch]->setEnabled( (chMask >> grpID) & 0x1 );
|
leAccept[iDigi][ch]->setEnabled( (chMask >> grpID) & 0x1 );
|
||||||
}
|
}
|
||||||
|
|
|
@ -102,7 +102,7 @@ Scope::Scope(Digitizer ** digi, unsigned int nDigi, ReadDataThread ** readDataTh
|
||||||
|
|
||||||
ID = 0;
|
ID = 0;
|
||||||
cbScopeDigi->setCurrentIndex(0);
|
cbScopeDigi->setCurrentIndex(0);
|
||||||
for( int i = 0; i < digi[0]->GetRegChannels(); i++) cbScopeCh->addItem("Ch-" + QString::number(i));
|
for( int i = 0; i < digi[0]->GetNumRegChannels(); i++) cbScopeCh->addItem("Ch-" + QString::number(i));
|
||||||
tick2ns = digi[ID]->GetTick2ns();
|
tick2ns = digi[ID]->GetTick2ns();
|
||||||
factor = digi[ID]->IsDualTrace_PHA() ? 2 : 1;
|
factor = digi[ID]->IsDualTrace_PHA() ? 2 : 1;
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ Scope::Scope(Digitizer ** digi, unsigned int nDigi, ReadDataThread ** readDataTh
|
||||||
enableSignalSlot = false;
|
enableSignalSlot = false;
|
||||||
//---setup cbScopeCh
|
//---setup cbScopeCh
|
||||||
cbScopeCh->clear();
|
cbScopeCh->clear();
|
||||||
for( int i = 0; i < digi[ID]->GetRegChannels(); i++) cbScopeCh->addItem("Ch-" + QString::number(i));
|
for( int i = 0; i < digi[ID]->GetNumRegChannels(); i++) cbScopeCh->addItem("Ch-" + QString::number(i));
|
||||||
|
|
||||||
//---Setup SettingGroup
|
//---Setup SettingGroup
|
||||||
CleanUpSettingsGroupBox();
|
CleanUpSettingsGroupBox();
|
||||||
|
@ -343,7 +343,7 @@ void Scope::UpdateScope(){
|
||||||
|
|
||||||
int ch = cbScopeCh->currentIndex();
|
int ch = cbScopeCh->currentIndex();
|
||||||
|
|
||||||
if( digi[ID]->GetChannelOnOff(ch) == false) return;
|
if( digi[ID]->GetInputChannelOnOff(ch) == false) return;
|
||||||
|
|
||||||
// printf("### %d %d \n", ch, digi[ID]->GetData()->DataIndex[ch]);
|
// printf("### %d %d \n", ch, digi[ID]->GetData()->DataIndex[ch]);
|
||||||
|
|
||||||
|
@ -782,7 +782,7 @@ void Scope::UpdatePanelFromMomeory(){
|
||||||
if( digi[ID]->GetDPPType() == V1730_DPP_PHA_CODE ) UpdatePHAPanel();
|
if( digi[ID]->GetDPPType() == V1730_DPP_PHA_CODE ) UpdatePHAPanel();
|
||||||
if( digi[ID]->GetDPPType() == V1730_DPP_PSD_CODE ) UpdatePSDPanel();
|
if( digi[ID]->GetDPPType() == V1730_DPP_PSD_CODE ) UpdatePSDPanel();
|
||||||
|
|
||||||
settingGroup->setEnabled(digi[ID]->GetChannelOnOff(ch));
|
settingGroup->setEnabled(digi[ID]->GetInputChannelOnOff(ch));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,7 @@ SingleSpectra::SingleSpectra(Digitizer ** digi, unsigned int nDigi, QString rawD
|
||||||
|
|
||||||
for( unsigned int i = 0; i < MaxNDigitizer; i++){
|
for( unsigned int i = 0; i < MaxNDigitizer; i++){
|
||||||
if( i >= nDigi ) continue;
|
if( i >= nDigi ) continue;
|
||||||
for( int j = 0; j < digi[i]->GetNChannels(); j++){
|
for( int j = 0; j < digi[i]->GetNumInputCh(); j++){
|
||||||
if( i < nDigi ) {
|
if( i < nDigi ) {
|
||||||
hist[i][j] = new Histogram1D("Digi-" + QString::number(digi[i]->GetSerialNumber()) +", Ch-" + QString::number(j), "Raw Energy [ch]", nBin, xMin, xMax);
|
hist[i][j] = new Histogram1D("Digi-" + QString::number(digi[i]->GetSerialNumber()) +", Ch-" + QString::number(j), "Raw Energy [ch]", nBin, xMin, xMax);
|
||||||
}else{
|
}else{
|
||||||
|
@ -99,7 +99,7 @@ SingleSpectra::~SingleSpectra(){
|
||||||
SaveSetting();
|
SaveSetting();
|
||||||
|
|
||||||
for( unsigned int i = 0; i < nDigi; i++ ){
|
for( unsigned int i = 0; i < nDigi; i++ ){
|
||||||
for( int ch = 0; ch < digi[i]->GetNChannels(); ch++){
|
for( int ch = 0; ch < digi[i]->GetNumInputCh(); ch++){
|
||||||
delete hist[i][ch];
|
delete hist[i][ch];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -135,7 +135,7 @@ void SingleSpectra::FillHistograms(){
|
||||||
for( int i = 0; i < nDigi; i++){
|
for( int i = 0; i < nDigi; i++){
|
||||||
|
|
||||||
digiMTX[i].lock();
|
digiMTX[i].lock();
|
||||||
for( int ch = 0; ch < digi[i]->GetNChannels(); ch ++ ){
|
for( int ch = 0; ch < digi[i]->GetNumInputCh(); ch ++ ){
|
||||||
int lastIndex = digi[i]->GetData()->DataIndex[ch];
|
int lastIndex = digi[i]->GetData()->DataIndex[ch];
|
||||||
int loopIndex = digi[i]->GetData()->LoopIndex[ch];
|
int loopIndex = digi[i]->GetData()->LoopIndex[ch];
|
||||||
|
|
||||||
|
@ -170,7 +170,7 @@ void SingleSpectra::SaveSetting(){
|
||||||
|
|
||||||
for( unsigned int i = 0; i < nDigi; i++){
|
for( unsigned int i = 0; i < nDigi; i++){
|
||||||
file.write(("======= " + QString::number(digi[i]->GetSerialNumber()) + "\n").toStdString().c_str());
|
file.write(("======= " + QString::number(digi[i]->GetSerialNumber()) + "\n").toStdString().c_str());
|
||||||
for( int ch = 0; ch < digi[i]->GetNChannels() ; ch++){
|
for( int ch = 0; ch < digi[i]->GetNumInputCh() ; ch++){
|
||||||
QString a = QString::number(ch).rightJustified(2, ' ');
|
QString a = QString::number(ch).rightJustified(2, ' ');
|
||||||
QString b = QString::number(hist[i][ch]->GetNBin()).rightJustified(6, ' ');
|
QString b = QString::number(hist[i][ch]->GetNBin()).rightJustified(6, ' ');
|
||||||
QString c = QString::number(hist[i][ch]->GetXMin()).rightJustified(6, ' ');
|
QString c = QString::number(hist[i][ch]->GetXMin()).rightJustified(6, ' ');
|
||||||
|
|
34
test.cpp
34
test.cpp
|
@ -29,25 +29,33 @@ int main(int argc, char* argv[]){
|
||||||
|
|
||||||
Digitizer * digi = new Digitizer(0, 2, false, true);
|
Digitizer * digi = new Digitizer(0, 2, false, true);
|
||||||
|
|
||||||
digi->ReadAllSettingsFromBoard();
|
|
||||||
|
|
||||||
printf("Record Length: 0x%d \n", digi->GetSettingFromMemory(DPP::QDC::RecordLength, 0));
|
Data * data = digi->GetData();
|
||||||
|
|
||||||
|
data->ClearData();
|
||||||
|
|
||||||
|
|
||||||
|
digi->StartACQ();
|
||||||
|
|
||||||
|
|
||||||
|
for( int i = 0; i < 9; i ++ ){
|
||||||
|
usleep(1000*1000);
|
||||||
|
digi->ReadData();
|
||||||
|
data->DecodeBuffer(false, 200);
|
||||||
|
data->PrintStat();
|
||||||
|
|
||||||
|
//data->SaveData();
|
||||||
|
|
||||||
|
// int index = data->NumEventsDecoded[0];
|
||||||
|
// printf("-------------- %ld \n", data->Waveform1[0][index].size());
|
||||||
|
|
||||||
|
//data->PrintAllData();
|
||||||
|
|
||||||
for( int grp = 0; grp < 8; grp ++){
|
|
||||||
printf("OverThreshold %d: 0x%d \n", grp, digi->GetSettingFromMemory(DPP::QDC::OverThresholdWidth, grp));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int ret;
|
digi->StopACQ();
|
||||||
//int ret = CAEN_DGTZ_WriteRegister(digi->GetHandle(), 0x8024, 0x60);
|
|
||||||
|
|
||||||
digi->WriteRegister(DPP::QDC::RecordLength, 0x60, -1, true);
|
|
||||||
|
|
||||||
unsigned int returnData;
|
|
||||||
ret = CAEN_DGTZ_ReadRegister(digi->GetHandle(), 0x8024, &returnData);
|
|
||||||
printf("ret : %d | 0x%08x\n", ret, returnData);
|
|
||||||
|
|
||||||
|
|
||||||
printf("Record Length: 0x%d \n", digi->GetSettingFromMemory(DPP::QDC::RecordLength, 0));
|
|
||||||
|
|
||||||
digi->CloseDigitizer();
|
digi->CloseDigitizer();
|
||||||
delete digi;
|
delete digi;
|
||||||
|
|
|
@ -179,7 +179,7 @@ int main(int argc, char* argv[]){
|
||||||
|
|
||||||
CAEN_DGTZ_BoardInfo_t BoardInfo;
|
CAEN_DGTZ_BoardInfo_t BoardInfo;
|
||||||
ret = (int) CAEN_DGTZ_GetInfo(handle, &BoardInfo);
|
ret = (int) CAEN_DGTZ_GetInfo(handle, &BoardInfo);
|
||||||
int NChannel = BoardInfo.Channels;
|
int NInputCh = BoardInfo.Channels;
|
||||||
uint32_t regChannelMask = 0xFFFF;
|
uint32_t regChannelMask = 0xFFFF;
|
||||||
float tick2ns = 4.0;
|
float tick2ns = 4.0;
|
||||||
switch(BoardInfo.Model){
|
switch(BoardInfo.Model){
|
||||||
|
@ -240,7 +240,7 @@ int main(int argc, char* argv[]){
|
||||||
printf("======== program Channels\n");
|
printf("======== program Channels\n");
|
||||||
///CAEN_DGTZ_DPP_PHA_Params_t DPPParams;
|
///CAEN_DGTZ_DPP_PHA_Params_t DPPParams;
|
||||||
///memset(&DPPParams, 0, sizeof(CAEN_DGTZ_DPP_PHA_Params_t));
|
///memset(&DPPParams, 0, sizeof(CAEN_DGTZ_DPP_PHA_Params_t));
|
||||||
///for(int i = 0; i < NChannel; i++){
|
///for(int i = 0; i < NInputCh; i++){
|
||||||
/// DPPParams.M[i] = 5000; /// decay time [ns]
|
/// DPPParams.M[i] = 5000; /// decay time [ns]
|
||||||
/// DPPParams.m[i] = 992; /// flat-top [ns]
|
/// DPPParams.m[i] = 992; /// flat-top [ns]
|
||||||
/// DPPParams.k[i] = 96; /// rise-time [ns]
|
/// DPPParams.k[i] = 96; /// rise-time [ns]
|
||||||
|
@ -301,7 +301,7 @@ int main(int argc, char* argv[]){
|
||||||
printf("allowcated %d byte ( %d words) for buffer\n", AllocatedSize, AllocatedSize/4);
|
printf("allowcated %d byte ( %d words) for buffer\n", AllocatedSize, AllocatedSize/4);
|
||||||
ret |= CAEN_DGTZ_MallocDPPEvents(handle, reinterpret_cast<void**>(&Events), &AllocatedSize) ;
|
ret |= CAEN_DGTZ_MallocDPPEvents(handle, reinterpret_cast<void**>(&Events), &AllocatedSize) ;
|
||||||
printf("allowcated %d byte for Events\n", AllocatedSize);
|
printf("allowcated %d byte for Events\n", AllocatedSize);
|
||||||
for( int i = 0 ; i < NChannel; i++){
|
for( int i = 0 ; i < NInputCh; i++){
|
||||||
ret |= CAEN_DGTZ_MallocDPPWaveforms(handle, reinterpret_cast<void**>(&Waveform[i]), &AllocatedSize);
|
ret |= CAEN_DGTZ_MallocDPPWaveforms(handle, reinterpret_cast<void**>(&Waveform[i]), &AllocatedSize);
|
||||||
printf("allowcated %d byte for waveform-%d\n", AllocatedSize, i);
|
printf("allowcated %d byte for waveform-%d\n", AllocatedSize, i);
|
||||||
}
|
}
|
||||||
|
@ -333,7 +333,7 @@ int main(int argc, char* argv[]){
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int ch = 0; ch < NChannel; ch++) {
|
for (int ch = 0; ch < NInputCh; ch++) {
|
||||||
if( DataIndex[ch] > 0 ) printf("------------------------ %d, %d\n", ch, DataIndex[ch]);
|
if( DataIndex[ch] > 0 ) printf("------------------------ %d, %d\n", ch, DataIndex[ch]);
|
||||||
for (int ev = 0; ev < DataIndex[ch]; ev++) {
|
for (int ev = 0; ev < DataIndex[ch]; ev++) {
|
||||||
///TrgCnt[ch]++;
|
///TrgCnt[ch]++;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user