Skip to content

Commit ddc8905

Browse files
committed
Option to randomize waveform sampling starting time
1 parent d856a17 commit ddc8905

3 files changed

Lines changed: 10 additions & 0 deletions

File tree

cpp/include/HitDigitizer.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,5 @@ class HitDigitizer_mPMT : public HitDigitizer
6161
float fDigiTimeOffset;
6262
int fHitInsensitivityPeriod;
6363
float fAmplitudeThreshold;
64+
int fRandomSampleStartTime;
6465
};

cpp/src/HitDigitizer.cc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ HitDigitizer_mPMT::HitDigitizer_mPMT(int seed) : HitDigitizer(seed)
164164
fAmplitudeSigma = 0.37;
165165
fADCMax = 999999;
166166
fADCOverflow = 0;
167+
fRandomSampleStartTime = 0;
167168

168169
Configuration *Conf = Configuration::GetInstance();
169170
Conf->GetValue<float>("SamplingInterval", fDt);
@@ -177,6 +178,7 @@ HitDigitizer_mPMT::HitDigitizer_mPMT(int seed) : HitDigitizer(seed)
177178
Conf->GetValue<int>("ChargeWindowBefore", fChargeWindowBefore);
178179
Conf->GetValue<int>("ChargeWindowAfter", fChargeWindowAfter);
179180
Conf->GetValue<int>("HitInsensitivityPeriod", fHitInsensitivityPeriod);
181+
Conf->GetValue<int>("RandomSampleStartTime", fRandomSampleStartTime);
180182

181183
this->LoadWaveform(Conf->GetValue<string>("WaveformFile"));
182184
Conf->GetValue<float>("AmplitudeSigma", fAmplitudeSigma);
@@ -349,6 +351,12 @@ TH1F HitDigitizer_mPMT::BuildWavetrain(const vector<TrueHit*> PEs, double wavefo
349351
double dt = fDt;
350352
double tmin = floor((PEs.front()->GetTime())/dt)*dt;
351353
double tmax = ceil((PEs.back()->GetTime()+waveform_window)/dt)*dt;
354+
// Randomize waveform sample start time if necessary
355+
if (fRandomSampleStartTime==1)
356+
{
357+
tmin = floor((PEs.front()->GetTime())/dt)*dt - dt*fRand->Uniform(0,1);
358+
tmax = ceil((PEs.back()->GetTime()+waveform_window-tmin)/dt)*dt+tmin;
359+
}
352360
TH1F hWT("","",(int)(tmax-tmin)/dt,tmin,tmax);
353361

354362
double waveform_offset = fWaveformOffset;

parameter/MDTParamenter_WCTE.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
< ADCMax = 61440 > # ADC dynamic range ~ 30PE
5252
< ADCOverflow = 0 > # Overflow causes ADC values to flip to negative
5353
< WaveformOffset = 0 > # ns
54+
< RandomSampleStartTime = 1 > # 1 = Waveform window start time is randomized with Uniform(0,SamplingInterval)
5455
< SamplingInterval = 8 > # ns
5556
< SamplingResolution = 0.1 >
5657
< AmplitudeThreshold = 683 > # self-trigger threshold (1/3 PE)

0 commit comments

Comments
 (0)