42 TString zdcConf(
path);
43 zdcConf +=
"/ZdcRecConfig.conf";
47 ATH_MSG_INFO(
"ZdcC calibration LG " <<
env.GetValue(
"ZdcCCalibrationLG",
"1.;1.;1.;1."));
49 return StatusCode::SUCCESS;
59 <<
module.zdcModule() <<
" "
64 return StatusCode::SUCCESS;
72 return StatusCode::FAILURE;
75 for (
const auto zdcModule : moduleContainer)
79 return StatusCode::SUCCESS;
87 return StatusCode::FAILURE;
95 return StatusCode::SUCCESS;
100 size_t nsamp =
adc.size();
101 float presamp =
adc.at(0);
102 unsigned short max_adc = 0;
104 for (
size_t i = 0;
i<nsamp;
i++)
112 amp = max_adc - presamp;
113 time = max_index*deltaT;
128 size_t nsamp =
adc.size();
129 float presamp =
adc.at(0);
130 unsigned short max_adc = 0;
131 for (
size_t i = 0;
i<nsamp;
i++)
133 if (
adc.at(
i)>max_adc)
137 g.SetPoint(
i,
i*deltaT,
adc.at(
i)-presamp);
139 double timeScale = deltaT/12.5;
140 m_tf1FermiExpFit->SetParameters(max_adc-presamp,30*timeScale, 2.5*timeScale, 25*timeScale);
145 g.Fit(
"FermiExpFit",
"QWR",
"");
154 size_t nsamp =
adc.size();
155 float presamp =
adc.at(0);
157 for (
size_t i = 0;
i<nsamp;
i++)
173 for (
int isamp = 0;isamp<7;isamp++)
175 double arg = (
t - isamp*T)/T;
186 const float offsetScale = 3;
190 double amp =
pvec[0];
192 double tau1 =
pvec[2];
193 double tau2 =
pvec[3];
195 double tauRatio = tau2/tau1;
196 double tauRatioMinunsOne = tauRatio - 1;
198 double norm = (
std::exp(-offsetScale/tauRatio)*
pow(1./tauRatioMinunsOne, 1./(1 + tauRatio))/
199 ( 1 +
pow(1./tauRatioMinunsOne, 1./(1 + 1/tauRatio))) );
201 double deltaT =
t - (t0 - offsetScale*tau1);
202 if (deltaT < 0) deltaT = 0;
204 double expTerm =
std::exp(-deltaT/tau2);
205 double fermiTerm = 1./(1. +
std::exp(-(
t - t0)/tau1));
207 return amp*expTerm*fermiTerm/
norm;