64 {
65
66 std::unique_ptr<TileSampleBuffer> bufall = std::make_unique<TileSampleBuffer>(nPul, -25*((nPul-1)/2), 25.);
67
69 cout << "Pileup pulses:" << std::endl;
70 for (std::vector<float>::const_iterator i = amp_pu.begin(); i != amp_pu.end(); ++i)
71 std::cout << *
i <<
' ';
72 std::cout << std::endl;
73 }
74
75
76 double tin, amp_it_out;
77 int nAmp = amp_pu.size();
79 vector<float> amp_pu_out(nAmp);
80 int x = (nAmp-1)/2 + nSamples;
81 double amp_total = pedestal;
82
84
86 cout <<
"sample to compute: " <<
i <<
" " << amp_total << std::endl;
87
88 for (int j = 0; j < nAmp ; j++) {
89
90 t[j] = bufall->getTime(
x + i - j) -
t0;
91
93 cout << "pileupsample to compute " << j << std::endl;
95 cout <<
" time in " <<
i <<
" " << j <<
" " << (
x +
i - j) <<
" " <<
" buf " << bufall->getTime(
x + i - j) <<
" time_out " <<
t[j] << std::endl;
96
97 if (t[j] < -((nSamples-1)/2)*25. || t[j] > ((nSamples+1)/2)*25.)
98 continue;
99 amp_pu_out[j] =
m_ps->eval(t[j]) * amp_pu.at(j);
100 amp_total += amp_pu_out[j];
101
103 cout <<
" amp_pu " << amp_pu.at(j) <<
" ps " <<
m_ps->eval(t[j]) <<
" amp_out " << amp_pu_out[j] << std::endl;
105 cout << " amp_total " << amp_total << std::endl;
106 }
107
108 tin =
m_buf->getTime(i) -
t0 + itOffset;
109 amp_it_out =
m_ps->eval(tin) * amp_it;
110 amp_total += amp_it_out;
111
113 cout <<
" INTIME amp_it " << amp_it <<
" ps " <<
m_ps->eval(tin) <<
" amp_it_out " << amp_it_out << std::endl;
115 std::cout << " amp_total " << amp_total << std::endl;
116
118 if (addNoise) {
121 }
123 cout << " FINAL " << amp_total << std::endl;
124 m_buf->setValueNoise(i, (noise));
125 m_buf->setValue(i, val);
126 }
127
128 return;
129}