added Trapazoid Rescaling and fine Gate calculation for PHA
This commit is contained in:
parent
4ab5e35f66
commit
cc2f336a6c
|
@ -502,16 +502,6 @@ void Digitizer::StartACQ(){
|
||||||
}
|
}
|
||||||
|
|
||||||
data->AllocateMemory(bufferSize);
|
data->AllocateMemory(bufferSize);
|
||||||
ret = CAEN_DGTZ_SWStartAcquisition(handle);
|
|
||||||
|
|
||||||
if( ret != 0 ) {
|
|
||||||
ErrorMsg("Start ACQ");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("\e[1m\e[33m======= Acquisition Started for %d | Board %d, Port %d\e[0m\n", BoardInfo.SerialNumber, boardID, portID);
|
|
||||||
AcqRun = true;
|
|
||||||
data->ClearTriggerRate();
|
|
||||||
|
|
||||||
unsigned int acqID = ExtractBits(GetSettingFromMemory(DPP::AcquisitionControl), DPP::Bit_AcquistionControl::StartStopMode);
|
unsigned int acqID = ExtractBits(GetSettingFromMemory(DPP::AcquisitionControl), DPP::Bit_AcquistionControl::StartStopMode);
|
||||||
unsigned int trgOutID = ExtractBits(GetSettingFromMemory(DPP::FrontPanelIOControl), DPP::Bit_FrontPanelIOControl::TRGOUTConfig);
|
unsigned int trgOutID = ExtractBits(GetSettingFromMemory(DPP::FrontPanelIOControl), DPP::Bit_FrontPanelIOControl::TRGOUTConfig);
|
||||||
|
@ -529,7 +519,35 @@ void Digitizer::StartACQ(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( DPPType == DPPType::DPP_PHA_CODE ) {
|
||||||
|
|
||||||
|
printf(" Setting Trapzoid Scaling Factor and Fine Gain \n");
|
||||||
|
for( int ch = 0; ch < NumRegChannel; ch++){
|
||||||
|
unsigned int riseTime = GetSettingFromMemory(DPP::PHA::TrapezoidRiseTime, ch);
|
||||||
|
unsigned int decayTime = GetSettingFromMemory(DPP::PHA::DecayTime, ch);
|
||||||
|
unsigned int SHF = std::floor(std::log2(riseTime * decayTime));
|
||||||
|
SetBits(DPP::DPPAlgorithmControl, DPP::Bit_DPPAlgorithmControl_PHA::TrapRescaling, SHF, ch);
|
||||||
|
|
||||||
|
//Always fix the fineGate = fg = 1
|
||||||
|
unsigned int f = 0xFFFF * pow(2, SHF)/ riseTime / decayTime;
|
||||||
|
WriteRegister(DPP::PHA::FineGain, f, ch);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
printf(" ACQ mode : %s (%d), TRG-OUT mode : %s (%d) \n", acqStr.c_str(), acqID, trgOutStr.c_str(), trgOutID);
|
printf(" ACQ mode : %s (%d), TRG-OUT mode : %s (%d) \n", acqStr.c_str(), acqID, trgOutStr.c_str(), trgOutID);
|
||||||
|
|
||||||
|
ret = CAEN_DGTZ_SWStartAcquisition(handle);
|
||||||
|
if( ret != 0 ) {
|
||||||
|
ErrorMsg("Start ACQ");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("\e[1m\e[33m======= Acquisition Started for %d | Board %d, Port %d\e[0m\n", BoardInfo.SerialNumber, boardID, portID);
|
||||||
|
AcqRun = true;
|
||||||
|
data->ClearTriggerRate();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Digitizer::StopACQ(){
|
void Digitizer::StopACQ(){
|
||||||
|
|
Loading…
Reference in New Issue
Block a user