diff --git a/reco/L1/CbmL1ReadEvent.cxx b/reco/L1/CbmL1ReadEvent.cxx index 33f7e5bb81c2eeadc7680d46e3b3a1047e2ab7b1..ebf5250e8f55db257d44b758545f4ab826891bdf 100644 --- a/reco/L1/CbmL1ReadEvent.cxx +++ b/reco/L1/CbmL1ReadEvent.cxx @@ -87,6 +87,8 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength, { if (fVerbose >= 10) cout << "ReadEvent: start." << endl; + fData_->Clear(); + // clear arrays for next event vMCPoints.clear(); vMCPoints_in_Time_Slice.clear(); @@ -390,7 +392,7 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength, th.id = tmpHits.size(); th.iStation = mh->GetStationNr(); th.iStripF = firstDetStrip + j; - th.iStripB = th.iStripF; + th.iStripB = th.iStripF; if (NStrips <= th.iStripF) { NStrips = th.iStripF + 1; } TVector3 pos, err; @@ -914,8 +916,8 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength, fData_->fStripFlag.reserve(NStrips); fData_->fStripFlag.assign(NStrips, 0); for (int ih = 0; ih < nHits; ih++) { - TmpHit& th = tmpHits[ih]; - char flag = th.iStation * 4; + TmpHit& th = tmpHits[ih]; + char flag = th.iStation * 4; fData_->fStripFlag[th.iStripF] = flag; fData_->fStripFlag[th.iStripB] = flag; } // ih diff --git a/reco/L1/L1Algo/L1CAMergeClones.cxx b/reco/L1/L1Algo/L1CAMergeClones.cxx index cd548f0c50ac385aedf7f2f41bda1ed65752ac2d..97b82acc862eccf43fd351b960c8e942f0fd7a09 100644 --- a/reco/L1/L1Algo/L1CAMergeClones.cxx +++ b/reco/L1/L1Algo/L1CAMergeClones.cxx @@ -234,7 +234,7 @@ void L1Algo::CAMergeClones() neighbour.resize(nTracks); isDownstreamNeighbour.resize(nTracks); - THitI start_hit = 0; + THitI start_hit = 0; #ifdef OMP #pragma omp parallel for #endif @@ -287,6 +287,7 @@ void L1Algo::CAMergeClones() Tb.ty = fTracks[iTr].TFirst[3]; Tb.qp = fTracks[iTr].TFirst[4]; Tb.z = fTracks[iTr].TFirst[5]; + Tb.t = fTracks[iTr].TFirst[6]; Tb.C00 = fTracks[iTr].CFirst[0]; Tb.C10 = fTracks[iTr].CFirst[1]; Tb.C11 = fTracks[iTr].CFirst[2]; @@ -302,6 +303,12 @@ void L1Algo::CAMergeClones() Tb.C42 = fTracks[iTr].CFirst[12]; Tb.C43 = fTracks[iTr].CFirst[13]; Tb.C44 = fTracks[iTr].CFirst[14]; + Tb.C50 = fTracks[iTr].CFirst[15]; + Tb.C51 = fTracks[iTr].CFirst[16]; + Tb.C52 = fTracks[iTr].CFirst[17]; + Tb.C53 = fTracks[iTr].CFirst[18]; + Tb.C54 = fTracks[iTr].CFirst[19]; + Tb.C55 = fTracks[iTr].CFirst[20]; unsigned short staf = lastStation[jTr]; @@ -311,6 +318,7 @@ void L1Algo::CAMergeClones() Tf.ty = fTracks[jTr].TLast[3]; Tf.qp = fTracks[jTr].TLast[4]; Tf.z = fTracks[jTr].TLast[5]; + Tf.t = fTracks[jTr].TLast[6]; Tf.C00 = fTracks[jTr].CLast[0]; Tf.C10 = fTracks[jTr].CLast[1]; Tf.C11 = fTracks[jTr].CLast[2]; @@ -326,6 +334,13 @@ void L1Algo::CAMergeClones() Tf.C42 = fTracks[jTr].CLast[12]; Tf.C43 = fTracks[jTr].CLast[13]; Tf.C44 = fTracks[jTr].CLast[14]; + Tf.C50 = fTracks[jTr].CLast[15]; + Tf.C51 = fTracks[jTr].CLast[16]; + Tf.C52 = fTracks[jTr].CLast[17]; + Tf.C53 = fTracks[jTr].CLast[18]; + Tf.C54 = fTracks[jTr].CLast[19]; + Tf.C55 = fTracks[jTr].CLast[20]; + //std::cout << "!!!!!!! Chi2 !!!!!! "<<fTracks[iTr].TFirst[0]<<" "<<fTracks[jTr].TLast[0]<<std::endl; //if(((Tf.qp - Tb.qp)*(Tf.qp - Tb.qp)/(Tb.C44+Tf.C44))[0] > 25*10*7) continue; @@ -344,7 +359,7 @@ void L1Algo::CAMergeClones() fvec zm = vStations[stam].z; fvec xm = 0.5 * (Tf.x + Tf.tx * (zm - Tf.z) + Tb.x + Tb.tx * (zm - Tb.z)); - fvec ym = 0.5 * (Tb.y + Tb.ty * (zm - Tb.z) + Tb.y + Tb.ty * (zm - Tb.z)); + fvec ym = 0.5 * (Tf.y + Tf.ty * (zm - Tf.z) + Tb.y + Tb.ty * (zm - Tb.z)); vStations[stam].fieldSlice.GetFieldValue(xm, ym, fBm); fld.Set(fBb, Tb.z, fBm, zm, fBf, Tf.z); diff --git a/reco/L1/L1Algo/L1TrackExtender.cxx b/reco/L1/L1Algo/L1TrackExtender.cxx index 317a7839b4780e464f60ffc4ae2f57be1c02a8e7..2e917ff1f00919f3bbc5ab763a70bf3ea01606c9 100644 --- a/reco/L1/L1Algo/L1TrackExtender.cxx +++ b/reco/L1/L1Algo/L1TrackExtender.cxx @@ -123,9 +123,9 @@ void L1Algo::BranchFitterFast(const L1Branch& t, L1TrackPar& T, const bool dir, int ista = ista2; for (int i = iFirstHit + step; step * i <= step * iLastHit; i += step) { - const L1Hit& hit = (*vStsHits)[hits[i]]; - ista_prev = ista; - ista = GetFStation((*fStripFlag)[hit.f]); + const L1Hit& hit = (*vStsHits)[hits[i]]; + ista_prev = ista; + ista = GetFStation((*fStripFlag)[hit.f]); L1Station& sta = vStations[ista]; @@ -283,7 +283,7 @@ void L1Algo::FindMoreHits(L1Branch& t, L1TrackPar& T, const bool dir, ih += StsHitsUnusedStartIndex[ista]; const L1Hit& hit = (*vStsHitsUnused)[ih]; //TODO: bug, it should be hit.dt*hit.dt - if (fabs(hit.t - T.t[0]) > sqrt(T.C55[0] + hit.dt) * 5) continue; + if (fabs(hit.t - T.t[0]) > sqrt(T.C55[0] + hit.dt * hit.dt) * 5) continue; if (GetFUsed((*fStripFlag)[hit.f] | (*fStripFlag)[hit.b])) continue; // if used @@ -315,9 +315,9 @@ void L1Algo::FindMoreHits(L1Branch& t, L1TrackPar& T, const bool dir, newHits.push_back((*RealIHitP)[iHit_best]); - const L1Hit& hit = (*vStsHitsUnused)[iHit_best]; - fvec u = hit.u; - fvec v = hit.v; + const L1Hit& hit = (*vStsHitsUnused)[iHit_best]; + fvec u = hit.u; + fvec v = hit.v; fvec x, y, z; StripsToCoor(u, v, x, y, sta); z = (*vStsZPos)[hit.iz];