41 LOGP(
debug,
"nHits = {}", hits->size());
44 for (
int i = 0;
i < mArrayD.size();
i++) {
45 mArrayD[
i].setAmplitude(0);
46 mArrayD[
i].setTimeStamp(1000);
47 mArrayD[
i].setTower(
i);
48 mArrayD[
i].setLabel(-1);
52 for (
auto& hit : *hits) {
53 int cellID = hit.GetCellID();
54 double eloss = hit.GetEnergyLoss();
55 double t = hit.GetTime();
56 double elossSmeared = eloss;
57 bool isCrystal = geo.isCrystal(cellID);
59 double elossSmearedNpe = gRandom->Poisson(eloss * mCrystalPePerGeV) / mCrystalPePerGeV;
61 elossSmeared = elossSmearedNpe * gRandom->Gaus(1, 0.007);
64 elossSmeared *= mSamplingFraction;
67 Digit& digit = mArrayD[cellID];
69 if (t < digit.getTimeStamp()) {
70 digit.setTimeStamp(t);
72 LOGF(
debug,
" crystal: %d cellID = %5d, eloss = %8.5f elossSmeared = %8.5f time = %8.5f", isCrystal, cellID, eloss, elossSmeared, t);
75 MCLabel label(hit.GetTrackID(), collId, 0,
false, hit.GetEnergyLoss());
77 if (labelIndex == -1) {
86 for (
int i = 0;
i < mArrayD.size();
i++) {
87 if (mArrayD[
i].getAmplitude() > mThreshold) {