13 #include <TProfile2D.h>
18 using namespace std::chrono;
62 std::vector<Int_t> mask)
80 std::vector<Int_t> mask) {
84 for (UInt_t
i = 0;
i <= mask.size();
i++)
89 for (UInt_t
i = 0;
i < mask.size();
i++)
107 auto start = high_resolution_clock::now();
109 auto stop = high_resolution_clock::now();
110 auto duration = duration_cast<microseconds>(stop - start);
112 std::cout << std::endl
114 <<
"filling took: " << duration.count() <<
" microseconds "
127 auto start = high_resolution_clock::now();
129 auto stop = high_resolution_clock::now();
130 auto duration = duration_cast<microseconds>(stop - start);
132 std::cout << std::endl
134 <<
"filling took: " << duration.count() <<
" microseconds "
151 auto start = high_resolution_clock::now();
157 auto stop = high_resolution_clock::now();
158 auto duration = duration_cast<microseconds>(stop - start);
160 std::cout << std::endl
162 <<
"filling took: " << duration.count() <<
" microseconds "
188 Float_t energy =
max * 1.0 / temp;
203 fQA->
CreateHist(
"Asym", 512, -12.0, 500.0, 512, -12.0, 500.0);
205 fQA->
Fill(
"Asym", a, b, shift);
208 Int_t extrapolate = 0;
211 if ((b - extrapolate) <= minb || (a - extrapolate) <= mina)
break;
227 a - extrapolate - count,
239 a - extrapolate + count,
248 if ((b + extrapolate) >= maxb || (a + extrapolate) >= maxa)
break;
264 a + extrapolate - count,
276 a + extrapolate + count,
298 Int_t extrapolate = 0;
300 Float_t energy =
max * 1.0 / temp;
322 fQA->
CreateHist(
"Asym", 512, -12.0, 500.0, 512, -12.0, 500.0);
324 fQA->
Fill(
"Asym", a, b, shift);
330 if ((b - extrapolate) <= minb || (a - extrapolate) <= mina)
break;
346 a - extrapolate - count,
358 a - extrapolate + count,
367 if ((b + extrapolate) >= maxb || (a + extrapolate) >= maxa)
break;
383 a + extrapolate - count,
395 a + extrapolate + count,
415 for (Int_t n = 0; n <= range; n++) {
416 Float_t value = n /
fEReco;
425 TFile
f(file.data(),
"OPEN");
427 h = (TProfile2D*)
f.Get(
"MAX ADC");
428 for (Int_t
x = 1;
x <=
h->GetNbinsX();
x++) {
429 for (Int_t
y = 1;
y <=
h->GetNbinsY();
y++) {
431 [
h->GetYaxis()->GetBinCenter(
y)] =
h->GetBinContent(
x,
y);
433 fQA->
CreateHist(
"Read Small", 63, -0.5, 62.5, 512, -12., 500.);
436 h->GetXaxis()->GetBinCenter(
x),
437 h->GetYaxis()->GetBinCenter(
y),
438 h->GetBinContent(
x,
y));
441 h = (TProfile2D*)
f.Get(
"ASYM MAP");
442 for (Int_t
x = 1;
x <=
h->GetNbinsX();
x++) {
443 for (Int_t
y = 1;
y <=
h->GetNbinsY();
y++) {
445 [
h->GetYaxis()->GetBinCenter(
y)] =
h->GetBinContent(
x,
y);
447 fQA->
CreateHist(
"Read Asym", 512, 0., 512., 512, -12., 500.);
450 h->GetXaxis()->GetBinCenter(
x),
451 h->GetYaxis()->GetBinCenter(
y),
452 h->GetBinContent(
x,
y));
458 TFile
f(file.data(),
"OPEN");
460 h = (TProfile2D*)
f.Get(
"MAX ADC");
461 for (Int_t
x = 1;
x <=
h->GetNbinsX();
x++) {
462 for (Int_t
y = 1;
y <=
h->GetNbinsY();
y++) {
464 [
h->GetYaxis()->GetBinCenter(
y)] =
h->GetBinContent(
x,
y);
466 fQA->
CreateHist(
"Read Small", 63, -0.5, 62.5, 512, -12., 500.);
469 h->GetXaxis()->GetBinCenter(
x),
470 h->GetYaxis()->GetBinCenter(
y),
471 h->GetBinContent(
x,
y));
474 h = (TProfile2D*)
f.Get(
"ASYM MAP");
475 for (Int_t
x = 1;
x <=
h->GetNbinsX();
x++) {
476 for (Int_t
y = 1;
y <=
h->GetNbinsY();
y++) {
478 [
h->GetYaxis()->GetBinCenter(
y)] =
h->GetBinContent(
x,
y);
480 fQA->
CreateHist(
"Read Asym", 512, 0., 512., 512, -12., 500.);
483 h->GetXaxis()->GetBinCenter(
x),
484 h->GetYaxis()->GetBinCenter(
y),
485 h->GetBinContent(
x,
y));
494 Int_t uniqueModuleId,
497 Float_t digicharge = 0;
528 new CbmTrdDigi(channel, uniqueModuleId, digicharge, time, 0, 0);
603 return (t /
fTau) * (t /
fTau) * TMath::Exp(-(t /
fTau));