diff --git a/lhetrack/MpdEctTrackFinderCpc.cxx b/lhetrack/MpdEctTrackFinderCpc.cxx index 99a00e272e75b3da62bc825dee772c8cac78e1c3..54978f9df693dc44a4cae00bebf036e06b34cfb3 100644 --- a/lhetrack/MpdEctTrackFinderCpc.cxx +++ b/lhetrack/MpdEctTrackFinderCpc.cxx @@ -1172,7 +1172,8 @@ Int_t MpdEctTrackFinderCpc::RunKalmanFilter(MpdEctKalmanTrack *track, Int_t layB if (trackDir == MpdKalmanTrack::kOutward) { layEnd = layMax + 1; dLay = 1; - if (track->GetPosNew() > 0 && layMax > fgkNlays2) layEnd -= fgkNlays2; + //AZ if (track->GetPosNew() > 0 && layMax > fgkNlays2) layEnd -= fgkNlays2; + if (track->GetPosNew() > 0 && layMax >= fgkNlays2) layEnd = fgkNlays2; //AZ - 28/03/17 } //Int_t indxOK = hits->IndexOf(hitOK); @@ -2234,7 +2235,7 @@ void MpdEctTrackFinderCpc::MergeWithTpc(MpdEctKalmanTrack *track) nAcc = nOld; map<Int_t,Double_t>& stepMap = track->GetSteps(); for (Int_t j = 0; j < nHits; ++j) { - MpdKalmanHit *hit = (MpdKalmanHit*) hits->UncheckedAt(j); + hit = (MpdKalmanHit*) hits->UncheckedAt(j); lay0 = lay; lay = hit->GetLayer(); //if (!MpdKalmanFilter::Instance()->PropagateToHit(track,hit,kFALSE)) continue; @@ -2384,12 +2385,11 @@ void MpdEctTrackFinderCpc::GoOutward() /// Propagate tracks outward (for matching with outer detectors) const Double_t cutChi2 = 15.; - Bool_t ok = 0; Int_t nReco = fTracks->GetEntriesFast(); FairMCEventHeader *mchead = (FairMCEventHeader*) FairRootManager::Instance()->GetObject("MCEventHeader."); - for (Int_t i = 0; i < nReco; ++i) { - MpdEctKalmanTrack *track = (MpdEctKalmanTrack*) fTracks->UncheckedAt(i); + for (Int_t itr = 0; itr < nReco; ++itr) { + MpdEctKalmanTrack *track = (MpdEctKalmanTrack*) fTracks->UncheckedAt(itr); //if (track->IsFromTpc()) continue; // track from TPC MpdEctKalmanTrack tr = *track; tr.SetParam(*tr.GetParamAtHit()); @@ -2427,7 +2427,7 @@ void MpdEctTrackFinderCpc::GoOutward() trhits->Sort(); Int_t nTpc = 0, nEct = 0, nHits = trhits->GetEntriesFast(); for (Int_t jh = 0; jh < nHits; ++jh) { - MpdKalmanHit *hit = (MpdKalmanHit*) trhits->UncheckedAt(jh); + hit = (MpdKalmanHit*) trhits->UncheckedAt(jh); if (hit->GetType() == MpdKalmanHit::kFixedR || hit->GetType() == MpdKalmanHit::kFixedP) ++nTpc; else ++nEct; } @@ -2442,7 +2442,7 @@ void MpdEctTrackFinderCpc::GoOutward() ok = MpdKalmanFilter::Instance()->Refit(&tr,-1,kTRUE); if (!ok) { cout << " Go outward: refit failed !!!" << endl; - fTracks->RemoveAt(i); + fTracks->RemoveAt(itr); continue; } // Go to TPC end-plate @@ -2475,9 +2475,9 @@ void MpdEctTrackFinderCpc::GoOutward() } TMatrixDSym pointWeight(5); TMatrixD param(5,1); - Bool_t ok = kTRUE; + Bool_t ok1 = kTRUE; for (Int_t jh = nEct - 1; jh >= 0; --jh) { - MpdKalmanHit *hit = (MpdKalmanHit*) hits->UncheckedAt(jh); + hit = (MpdKalmanHit*) hits->UncheckedAt(jh); //if (!MpdKalmanFilter::Instance()->PropagateToHit(&tr,hit,kFALSE)) continue; if (!MpdKalmanFilter::Instance()->PropagateToHit(&tr,hit,kTRUE)) continue; PassWall(&tr, 0.001); @@ -2486,8 +2486,8 @@ void MpdEctTrackFinderCpc::GoOutward() tr.SetParamNew(param); if (tr.GetParamNew(3) * fZplanes[hit->GetLayer()-1] < 0) { cout << " *** GoOutward: going in wrong direction - removing track " << tr.GetParam(3) << " " << fZplanes[hit->GetLayer()-1] << endl; - fTracks->RemoveAt(i); - ok = kFALSE; + fTracks->RemoveAt(itr); + ok1 = kFALSE; //cout << hit->GetLayer() << " " << tr.GetParam(4) << endl; //exit(0); break; @@ -2495,8 +2495,8 @@ void MpdEctTrackFinderCpc::GoOutward() (*tr.GetWeight()) += pointWeight; tr.SetChi2(tr.GetChi2()+dChi2); } - if (!ok) continue; - } + if (!ok1) continue; + } // if (nEct > 0) printf("MpdEctTrackFinderCpc::GoOutward(): %6d %2d %2d %10.3f %7.3f %1d \n", tr.GetTrackID(), nTpc, nEct, tr.GetChi2(), tr.Pt(), ok); // Set params at hit