diff --git a/reco/littrack/cbm/base/CbmLitToolFactory.cxx b/reco/littrack/cbm/base/CbmLitToolFactory.cxx index 10b3c405c243070024467d29214320a913c73d82..8ec7e8200d7cd522aeab3b4ef0a00d233aff0305 100644 --- a/reco/littrack/cbm/base/CbmLitToolFactory.cxx +++ b/reco/littrack/cbm/base/CbmLitToolFactory.cxx @@ -213,7 +213,7 @@ HitToTrackMergerPtr CbmLitToolFactory::CreateHitToTrackMerger(const std::string& nhMerger->SetLinePropagator(CreateTrackPropagator("line")); nhMerger->SetFilter(CreateTrackUpdate("kalman")); nhMerger->SetPDG(211); - nhMerger->SetChiSqCut(50.); //13.86); + nhMerger->SetChiSqCut(-1.); //50.); //13.86); return HitToTrackMergerPtr(nhMerger); } else if (name == "tof_all_hits") { diff --git a/reco/littrack/cbm/reco/CbmLitFindGlobalTracks.cxx b/reco/littrack/cbm/reco/CbmLitFindGlobalTracks.cxx index b13bf39ead567233cb9f6c130ba5a030145a27be..ca7a8bcc487ac94eb1a3d69f8f8499e639f2736d 100644 --- a/reco/littrack/cbm/reco/CbmLitFindGlobalTracks.cxx +++ b/reco/littrack/cbm/reco/CbmLitFindGlobalTracks.cxx @@ -609,25 +609,14 @@ void CbmLitFindGlobalTracks::RunTrackReconstruction() void CbmLitFindGlobalTracks::SelectTracksForTofMerging() { - // The aim of this procedure is to select only those tracks - // which have at least one hit in the last station group. - // Only those tracks will be propagated further and merged - // with TOF hits. - - Int_t nofStations = CbmLitTrackingGeometryConstructor::Instance()->GetNofMuchTrdStations(); - // Int_t stationCut = nofStations - 4; - // TODO: Fix this issue in a better way. This is done only as an ugly fix - // FU 19.09.13 - Int_t stationCut = nofStations - 3; + // Select tracks for merging with TOF. + // Currently all tracks are selected, no matter if they have hits in TRD / MUCH or not. + // The only requirement is the numerical quality of the covariance matrix. -- Sergey Gorbunov for (TrackPtrIterator it = fLitOutputTracks.begin(); it != fLitOutputTracks.end(); it++) { CbmLitTrack* track = *it; if (track->GetQuality() == kLITBAD) { continue; } - const CbmLitHit* hit = track->GetHit(track->GetNofHits() - 1); - if (hit->GetStation() >= stationCut) { - // OK select this track for further merging with TOF - track->SetQuality(kLITGOODMERGE); - } + track->SetQuality(kLITGOODMERGE); } } diff --git a/reco/littrack/std/data/CbmLitTrack.h b/reco/littrack/std/data/CbmLitTrack.h index 2aec9e196fcc56229dac61f2f239a17717c459c8..e5619d36888c45e213a615c155cc2436310ad94a 100644 --- a/reco/littrack/std/data/CbmLitTrack.h +++ b/reco/littrack/std/data/CbmLitTrack.h @@ -131,10 +131,10 @@ public: { std::vector<litfloat> covFirst(fParamFirst.GetCovMatrix()); std::vector<litfloat> covLast(fParamLast.GetCovMatrix()); - for (Int_t i = 0; i < 21; i++) { + // don't check the time error, because time can be unmeasured -- S.Gorbunov + for (Int_t i = 0; i < 15; i++) { if (std::abs(covFirst[i]) > 10000. || std::abs(covLast[i]) > 10000.) { return false; } } - if (GetNofHits() < 1) { return false; } return true; } diff --git a/reco/littrack/std/finder/CbmLitNearestHitTofMerger.cxx b/reco/littrack/std/finder/CbmLitNearestHitTofMerger.cxx index d71e6f009e9aa2dc323e4a4d3efe2fa65b29f118..f5c92458632f5f86e4e0e516eae05694f96e1453 100644 --- a/reco/littrack/std/finder/CbmLitNearestHitTofMerger.cxx +++ b/reco/littrack/std/finder/CbmLitNearestHitTofMerger.cxx @@ -75,11 +75,16 @@ LitStatus CbmLitNearestHitTofMerger::DoMerge(HitPtrVector& hits, TrackPtrVector& if (zParamMap.find(hit->GetZ()) == zParamMap.end()) { // This should never happen std::cout << "-E- CbmLitNearestHitTofMerger::DoMerge: Z position " << hit->GetZ() << " not found in map. Something is wrong.\n"; + assert(0); } CbmLitTrackParam tpar(zParamMap[hit->GetZ()]); - litfloat chi = 0.; + litfloat chi = 1.e10; fFilter->Update(&tpar, hit, chi); - if (chi < fChiSqCut && chi < minChiSq) { // Check if hit is inside validation gate and closer to the track. + + // Check if hit is inside validation gate. + if (fChiSqCut >= 0. && chi >= fChiSqCut) { continue; } + + if (chi < minChiSq) { // Check if hit is closer to the track. minChiSq = chi; minHit = hit; minPar = tpar;