diff --git a/analysis/PWGCHA/jpsi/CbmAnaJpsiTask.cxx b/analysis/PWGCHA/jpsi/CbmAnaJpsiTask.cxx index 7601b87ad955715be048906912c2ed0d4b88b708..4f9d66c189a6a241fc2f4d0423f1d81497636029 100644 --- a/analysis/PWGCHA/jpsi/CbmAnaJpsiTask.cxx +++ b/analysis/PWGCHA/jpsi/CbmAnaJpsiTask.cxx @@ -626,7 +626,7 @@ void CbmAnaJpsiTask::IsRecoTrackAccepted(CbmAnaJpsiCandidate* cand) { CbmStsTrack* stsTrack = (CbmStsTrack*) fStsTracks->At(cand->fStsInd); if (stsTrack == NULL) cand->fIsRecoTrackAccepted = false; - int nStsHits = stsTrack->GetNofHits(); + int nStsHits = stsTrack->GetNofStsHits(); int nMvdHits = stsTrack->GetNofMvdHits(); CbmRichRing* richRing = (CbmRichRing*) fRichRings->At(cand->fRichInd); if (richRing == NULL) cand->fIsRecoTrackAccepted = false; diff --git a/analysis/PWGDIL/dielectron/conversion/CbmAnaConversion.cxx b/analysis/PWGDIL/dielectron/conversion/CbmAnaConversion.cxx index ff51ebf47ce9c0784de9c2455e362a02833ec2be..716e04fd6048e9fd84cc068ffe7d822532fd82e8 100644 --- a/analysis/PWGDIL/dielectron/conversion/CbmAnaConversion.cxx +++ b/analysis/PWGDIL/dielectron/conversion/CbmAnaConversion.cxx @@ -1032,7 +1032,7 @@ void CbmAnaConversion::Exec(Option_t*) fhPi0_Reco_ndf_vs_startvertex->Fill(result_ndf_electron, startvertexZ); fhPi0_Reco_startvertex_vs_chi->Fill(startvertexZ, result_chi_electron); - Double_t nofhits_sts = stsTrack->GetNofHits(); + Double_t nofhits_sts = stsTrack->GetTotalNofHits(); fhPi0_Reco_startvertex_vs_nofhits->Fill(startvertexZ, nofhits_sts); fhPi0_Reco_noRichInd_chi_vs_momentum->Fill(refittedMomentum_electron.Mag(), result_chi_electron); diff --git a/analysis/PWGDIL/dielectron/lmvm/LmvmTask.cxx b/analysis/PWGDIL/dielectron/lmvm/LmvmTask.cxx index 68eb961bd8cda8f00df6cf5ae9b9b98ded0de7cf..54086def8014d652ab54670a3f69455068700f5b 100755 --- a/analysis/PWGDIL/dielectron/lmvm/LmvmTask.cxx +++ b/analysis/PWGDIL/dielectron/lmvm/LmvmTask.cxx @@ -1832,7 +1832,7 @@ void LmvmTask::DifferenceSignalAndBg(const LmvmCand& cand) CbmStsTrack* stsTrack = static_cast<CbmStsTrack*>(fStsTracks->At(cand.fStsInd)); if (stsTrack == nullptr) return; - fH.FillH1("hNofStsHits", cand.fMcSrc, stsTrack->GetNofHits(), fW); + fH.FillH1("hNofStsHits", cand.fMcSrc, stsTrack->GetNofStsHits(), fW); if (fUseMvd) { double mvd1x = 0., mvd1y = 0., mvd2x = 0., mvd2y = 0.; diff --git a/analysis/PWGDIL/dimuon/CbmAnaDimuonAnalysis.cxx b/analysis/PWGDIL/dimuon/CbmAnaDimuonAnalysis.cxx index bd4ace66b3845ad935698250289e3326a65acf58..0573d4cc1180329490a23db7506ad092c8873a3e 100644 --- a/analysis/PWGDIL/dimuon/CbmAnaDimuonAnalysis.cxx +++ b/analysis/PWGDIL/dimuon/CbmAnaDimuonAnalysis.cxx @@ -637,7 +637,7 @@ void CbmAnaDimuonAnalysis::Exec(Option_t* /*opt*/) CbmStsTrack* stsTrack = (CbmStsTrack*) fStsTracks->At(iStsTrack); if (!stsTrack) continue; - Int_t nStsHits = stsTrack->GetNofHits(); + Int_t nStsHits = stsTrack->GetTotalNofHits(); Double_t chi2vertex = fFitter->GetChiToVertex(stsTrack); Double_t chi2sts = 1000; if (stsTrack->GetNDF() != 0) chi2sts = stsTrack->GetChiSq() / stsTrack->GetNDF(); diff --git a/analysis/PWGHAD/hadron/CbmHadronAnalysis.cxx b/analysis/PWGHAD/hadron/CbmHadronAnalysis.cxx index 73246290c11bfb76b86224f6346dd523d7a43fc3..b1da44180deb967ae02a4b5e150ccb9fed3b6326 100644 --- a/analysis/PWGHAD/hadron/CbmHadronAnalysis.cxx +++ b/analysis/PWGHAD/hadron/CbmHadronAnalysis.cxx @@ -2999,7 +2999,7 @@ void CbmHadronAnalysis::ExecEvent(Option_t*) //if(NStsHits<8) continue; // nh-debugging if (fDigiMan->IsMatchPresent(ECbmModuleId::kSts)) for (Int_t ih = 0; ih < NStsHits; ih++) { - Int_t iHind = StsTrack->GetHitIndex(ih); + Int_t iHind = StsTrack->GetStsHitIndex(ih); LOG(debug1) << " inspect STS track " << s << ", hit " << ih << ", hitindex " << iHind; if (NULL == fStsHits) LOG(fatal) << " No STS Hits available "; diff --git a/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx b/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx index ab60022c16947940de80114ddca628f9b96f5015..7af3a55011449aa02420e6dcf473469cc18353f9 100644 --- a/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx +++ b/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx @@ -169,7 +169,7 @@ void CbmStsTracksConverter::ReadVertexTracks(CbmEvent* event) track.SetField(int(sts_track->GetNdfTime()), indf_time_); track.SetField(float(sts_track->GetChiSq()), ichi2_); track.SetField(float(sts_track->GetChiSqTime()), ichi2_time_); - track.SetField(int(sts_track->GetNofHits()), inhits_); + track.SetField(int(sts_track->GetTotalNofHits()), inhits_); track.SetField(float(trackParamFirst->GetX() - cbm_prim_vertex_->GetX()), idcax_); track.SetField(float(trackParamFirst->GetY() - cbm_prim_vertex_->GetY()), idcax_ + 1); track.SetField(float(trackParamFirst->GetZ() - cbm_prim_vertex_->GetZ()), idcax_ + 2); diff --git a/core/base/CbmMatchRecoToMC.cxx b/core/base/CbmMatchRecoToMC.cxx index 40fa696ab119a6116a5fb9b02e66e836d56e2737..528651ebe9df7ff36c8630e0516d4404d24d6610 100644 --- a/core/base/CbmMatchRecoToMC.cxx +++ b/core/base/CbmMatchRecoToMC.cxx @@ -745,7 +745,7 @@ void CbmMatchRecoToMC::MatchStsTracks(const TClonesArray* mvdHitMatches, const T Int_t nofStsHits = track->GetNofStsHits(); for (Int_t iHit = 0; iHit < nofStsHits; iHit++) { - const CbmMatch* hitMatch = static_cast<CbmMatch*>(stsHitMatches->At(track->GetHitIndex(iHit))); + const CbmMatch* hitMatch = static_cast<CbmMatch*>(stsHitMatches->At(track->GetStsHitIndex(iHit))); Int_t nofLinks = hitMatch->GetNofLinks(); for (Int_t iLink = 0; iLink < nofLinks; iLink++) { const CbmLink& link = hitMatch->GetLink(iLink); @@ -786,7 +786,7 @@ void CbmMatchRecoToMC::MatchStsTracks(const TClonesArray* mvdHitMatches, const T Int_t trueCounter = trackMatch->GetNofTrueHits(); Int_t wrongCounter = trackMatch->GetNofWrongHits(); for (Int_t iHit = 0; iHit < nofStsHits; iHit++) { - const CbmMatch* hitMatch = static_cast<CbmMatch*>(stsHitMatches->At(track->GetHitIndex(iHit))); + const CbmMatch* hitMatch = static_cast<CbmMatch*>(stsHitMatches->At(track->GetStsHitIndex(iHit))); Int_t nofLinks = hitMatch->GetNofLinks(); Bool_t hasTrue = false; for (Int_t iLink = 0; iLink < nofLinks; iLink++) { diff --git a/core/data/sts/CbmStsTrack.h b/core/data/sts/CbmStsTrack.h index 0a4887d91b977fbd119c96caeebc5cb82a71d6b2..76f34d40d125196bb9a05996f618454483b5ce56 100644 --- a/core/data/sts/CbmStsTrack.h +++ b/core/data/sts/CbmStsTrack.h @@ -78,7 +78,7 @@ public: /** Total number of hits ** @return Sum of numbers of STS and MVD hits **/ - virtual int32_t GetNofHits() const { return (GetNofStsHits() + GetNofMvdHits()); } + virtual int32_t GetTotalNofHits() const { return (GetNofStsHits() + GetNofMvdHits()); } /** Number of MVD hits @@ -101,7 +101,7 @@ public: int32_t GetStsHitIndex(int32_t iHit) const { assert(iHit < GetNofStsHits()); - return GetHitIndex(iHit); + return CbmTrack::GetHitIndex(iHit); } @@ -138,6 +138,19 @@ private: /** median dE/dx [e/300µm] **/ float fELoss {-1.f}; + /** Hide this method of the base class because it is confusing. It is valid only for STS hits + * use GetStsHitIndex() or GetMvdHitIndex() **/ + using CbmTrack::GetHitIndex; + + /** Hide this method of the base class because it is often mixed with GetNofStsHits(). + * Use GetTotalNofHits() instead. **/ + using CbmTrack::GetNofHits; + + /** Hide this method of the base class because Mvd hits must be stored in a separate vector fMvdHitIndex. + * use AddStsHit() and AddMvdHit() instead. + **/ + using CbmTrack::AddHit; + ClassDef(CbmStsTrack, 3); }; diff --git a/reco/KF/CbmKFParticleFinder.cxx b/reco/KF/CbmKFParticleFinder.cxx index ebc636349d7e32fb71bdc9c04d5f7944859f3116..64f847de8345ce14e0e289a8beaa0816f9971f19 100644 --- a/reco/KF/CbmKFParticleFinder.cxx +++ b/reco/KF/CbmKFParticleFinder.cxx @@ -193,7 +193,7 @@ void CbmKFParticleFinder::Exec(Option_t* /*opt*/) for (Int_t j = 0; j <= i; j++, iCov++) V[iCov] = parameters->GetCovariance(i, j); - if (stsTrack->GetNofHits() < 3) continue; + if (stsTrack->GetTotalNofHits() < 3) continue; bool ok = 1; ok = ok && std::isfinite(parameters->GetX()); diff --git a/reco/KF/CbmKFParticleFinderPID.cxx b/reco/KF/CbmKFParticleFinderPID.cxx index 5a8a731ccdc3a51cb7fcaf167224d7f0bd37a090..8376cbeb7ea72fd78ee1053174a394ba219dc3a3 100644 --- a/reco/KF/CbmKFParticleFinderPID.cxx +++ b/reco/KF/CbmKFParticleFinderPID.cxx @@ -494,7 +494,7 @@ void CbmKFParticleFinderPID::SetRecoPID() if (muchTrack) { if ((cbmStsTrack->GetChiSq() / cbmStsTrack->GetNDF()) < fMuchCutsFloat[0] && (muchTrack->GetChiSq() / muchTrack->GetNDF()) < fMuchCutsFloat[1] - && cbmStsTrack->GetNofHits() >= fMuchCutsInt[0]) { + && cbmStsTrack->GetTotalNofHits() >= fMuchCutsInt[0]) { if (muchTrack->GetNofHits() >= fMuchCutsInt[1]) isMuon = 2; if (muchTrack->GetNofHits() >= fMuchCutsInt[2]) isMuon = 1; } diff --git a/reco/KF/Interface/CbmPVFinderKF.cxx b/reco/KF/Interface/CbmPVFinderKF.cxx index 42490a3bf56c44277a5ca9491ec2028175641f5c..48a75b5b80467fc87bad1f21792578f7f84a20ff 100644 --- a/reco/KF/Interface/CbmPVFinderKF.cxx +++ b/reco/KF/Interface/CbmPVFinderKF.cxx @@ -24,7 +24,7 @@ ClassImp(CbmPVFinderKF) CbmKFTrack* CloneArray = new CbmKFTrack[NTracks]; for (Int_t i = 0; i < NTracks; i++) { CbmStsTrack* st = (CbmStsTrack*) tracks->At(i); - Int_t NHits = st->GetNofHits(); + Int_t NHits = st->GetTotalNofHits(); if (NHits < 4) continue; if (st->GetFlag()) continue; if (st->GetChiSq() < 0. || st->GetChiSq() > 3.5 * 3.5 * st->GetNDF()) continue; @@ -59,7 +59,7 @@ Int_t CbmPVFinderKF::FindEventVertex(CbmEvent* event, TClonesArray* tracks) for (Int_t iTrack = 0; iTrack < nTracks; iTrack++) { Int_t trackIndex = event->GetIndex(ECbmDataType::kStsTrack, iTrack); CbmStsTrack* track = (CbmStsTrack*) tracks->At(trackIndex); - Int_t nHits = track->GetNofHits(); + Int_t nHits = track->GetTotalNofHits(); if (nHits < 4) continue; // use only tracks with at least 4 hits if (track->GetFlag()) continue; // do not use suspicious tracks if (track->GetChiSq() < 0. // use only good-quality tracks diff --git a/reco/KF/Interface/CbmStsFitPerformanceTask.cxx b/reco/KF/Interface/CbmStsFitPerformanceTask.cxx index 33f46f38f6fef4036a26923a36a7fdbf339241e9..1e9b07df2b4ae53871f8c432b1f2258b563fe378 100644 --- a/reco/KF/Interface/CbmStsFitPerformanceTask.cxx +++ b/reco/KF/Interface/CbmStsFitPerformanceTask.cxx @@ -564,7 +564,7 @@ void CbmStsFitPerformanceTask::Exec(Option_t* /*option*/) // Get MC points; vector<CbmStsPoint*> vPoints; for (Int_t i = 0; i < track->GetNofStsHits(); i++) { - Int_t hitID = track->GetHitIndex(i); + Int_t hitID = track->GetStsHitIndex(i); if (hitID < 0) continue; CbmStsHit* hit = (CbmStsHit*) fStsHitArray->At(hitID); if (!hit) continue; @@ -976,7 +976,7 @@ Bool_t CbmStsFitPerformanceTask::IsLong(CbmStsTrack* track) Int_t stmin = 1000, stmax = -1000; Int_t st, iHit, hitID; for (iHit = 0; iHit < nHits; iHit++) { - hitID = track->GetHitIndex(iHit); + hitID = track->GetStsHitIndex(iHit); st = ((CbmStsHit*) fStsHitArray->At(hitID))->GetAddress(); if (st < stmin) stmin = st; if (st > stmax) stmax = st; diff --git a/reco/KF/Interface/CbmStsKFTrackFitter.cxx b/reco/KF/Interface/CbmStsKFTrackFitter.cxx index 2cadfb379d0af5151737d30e46a4f27f748e5a83..4373310d6aabc24458b5efe17321e8d4ec3f00a4 100644 --- a/reco/KF/Interface/CbmStsKFTrackFitter.cxx +++ b/reco/KF/Interface/CbmStsKFTrackFitter.cxx @@ -60,7 +60,7 @@ void CbmStsKFTrackFitter::SetKFHits(CbmKFTrack& T, CbmStsTrack* track) if (!fIsInitialised) Init(); - Int_t NStsHits = (fStsHitsArray) ? track->GetNofHits() : 0; + Int_t NStsHits = (fStsHitsArray) ? track->GetNofStsHits() : 0; Int_t NMvdHits = (fMvdHitsArray) ? track->GetNofMvdHits() : 0; fHits.resize(NMvdHits + NStsHits); @@ -73,7 +73,7 @@ void CbmStsKFTrackFitter::SetKFHits(CbmKFTrack& T, CbmStsTrack* track) } if (NStsHits > 0 && fStsHitsArray) { for (Int_t i = 0; i < NStsHits; i++) { - Int_t j = track->GetHitIndex(i); + Int_t j = track->GetStsHitIndex(i); fHits[NMvdHits + i].Create(reinterpret_cast<CbmStsHit*>(fStsHitsArray->At(j))); T.fHits.push_back(&(fHits[NMvdHits + i])); } diff --git a/reco/KF/KFQA/CbmKFTrackQa.cxx b/reco/KF/KFQA/CbmKFTrackQa.cxx index fb55d21039df90f3bed0f49d189cbae06e532818..94445636d20de8b01dbb60007602e40ee1c27ba4 100644 --- a/reco/KF/KFQA/CbmKFTrackQa.cxx +++ b/reco/KF/KFQA/CbmKFTrackQa.cxx @@ -538,7 +538,7 @@ void CbmKFTrackQa::Exec(Option_t* /*opt*/) Int_t stsTrackIndex = globalTrack->GetStsTrackIndex(); //for STS histos CbmStsTrack* cbmStsTrack = (CbmStsTrack*) fStsTrackArray->At(stsTrackIndex); double stsHistoData[NStsHisto] = { - (double) cbmStsTrack->GetNofHits(), //NHits + (double) cbmStsTrack->GetTotalNofHits(), //NHits cbmStsTrack->GetChiSq() / cbmStsTrack->GetNDF(), //Chi2/NDF TMath::Prob(cbmStsTrack->GetChiSq(), cbmStsTrack->GetNDF()) //prob }; diff --git a/reco/KF/ParticleFitter/CbmL1PFFitter.cxx b/reco/KF/ParticleFitter/CbmL1PFFitter.cxx index 0b4261879459eb90c36f2cfeccc2582e895cc366..3c9c01e52114365b410c80a0dc03904a49f1198f 100644 --- a/reco/KF/ParticleFitter/CbmL1PFFitter.cxx +++ b/reco/KF/ParticleFitter/CbmL1PFFitter.cxx @@ -275,7 +275,7 @@ void CbmL1PFFitter::Fit(std::vector<CbmStsTrack>& Tracks, const std::vector<CbmM hit = mvdHit; } else { - int hitIndex = tr[iVec]->GetHitIndex(i - nHitsTrackMvd); + int hitIndex = tr[iVec]->GetStsHitIndex(i - nHitsTrackMvd); const CbmStsHit* stsHit = &(vStsHits[hitIndex]); ista = GetStsStationIndex(stsHit); if (ista < 0) continue; @@ -554,7 +554,7 @@ void CbmL1PFFitter::GetChiToVertex(vector<CbmStsTrack>& Tracks, vector<PFFieldRe } else { if (!fStsHitArray) continue; - int hitIndex = tr[iVec]->GetHitIndex(iH - nHitsTrackMvd); + int hitIndex = tr[iVec]->GetStsHitIndex(iH - nHitsTrackMvd); const CbmStsHit* hit = dynamic_cast<const CbmStsHit*>(fStsHitArray->At(hitIndex)); posx = hit->GetX(); @@ -682,7 +682,7 @@ void CbmL1PFFitter::CalculateFieldRegion(vector<CbmStsTrack>& Tracks, vector<PFF } else { if (!fStsHitArray) continue; - int hitIndex = tr[iVec]->GetHitIndex(iH - nHitsTrackMvd); + int hitIndex = tr[iVec]->GetStsHitIndex(iH - nHitsTrackMvd); const CbmStsHit* hit = dynamic_cast<const CbmStsHit*>(fStsHitArray->At(hitIndex)); posx = hit->GetX(); @@ -738,7 +738,7 @@ void CbmL1PFFitter::CalculateFieldRegionAtLastPoint(vector<CbmStsTrack>& Tracks, for (int iVec = 0; iVec < nTracks_SIMD; iVec++) { int nHitsTrackMvd = tr[iVec]->GetNofMvdHits(); - int nHits = tr[iVec]->GetNofHits(); + int nHits = tr[iVec]->GetTotalNofHits(); for (int iH = 0; iH < 3; iH++) { float posx = 0.f, posy = 0.f, posz = 0.f; @@ -756,7 +756,7 @@ void CbmL1PFFitter::CalculateFieldRegionAtLastPoint(vector<CbmStsTrack>& Tracks, } else { if (!fStsHitArray) continue; - int hitIndex = tr[iVec]->GetHitIndex(hitNumber - nHitsTrackMvd); + int hitIndex = tr[iVec]->GetStsHitIndex(hitNumber - nHitsTrackMvd); const CbmStsHit* hit = dynamic_cast<const CbmStsHit*>(fStsHitArray->At(hitIndex)); posx = hit->GetX(); diff --git a/reco/L1/CbmCaTimeSliceReader.cxx b/reco/L1/CbmCaTimeSliceReader.cxx index f50c4eb1c4140b42de40aca5868ec1fcdf387862..1e2d83e23e31fa4b934b96ab00a273c195268630 100644 --- a/reco/L1/CbmCaTimeSliceReader.cxx +++ b/reco/L1/CbmCaTimeSliceReader.cxx @@ -223,7 +223,7 @@ void TimeSliceReader::ReadRecoTracks() track.TLast.Time() = pInputTrack->GetLastHitTime(); track.TLast.C55() = pInputTrack->GetLastHitTimeError(); track.Hits.clear(); - track.Hits.reserve(pInputTrack->GetNofHits()); + track.Hits.reserve(pInputTrack->GetTotalNofHits()); for (int iH = 0; iH < pInputTrack->GetNofMvdHits(); ++iH) { int iHext = pInputTrack->GetMvdHitIndex(iH); int iHint = fvvHitExtToIntIndexMap[ca::EDetectorID::kMvd][iHext]; diff --git a/reco/L1/OffLineInterface/CbmL1GlobalTrackFinder.cxx b/reco/L1/OffLineInterface/CbmL1GlobalTrackFinder.cxx index 2cc29cef1f3a871971d910e90e1c9d7501271ca5..6fef8e32b9845250c47b3cb17a3d918705ea4e1c 100644 --- a/reco/L1/OffLineInterface/CbmL1GlobalTrackFinder.cxx +++ b/reco/L1/OffLineInterface/CbmL1GlobalTrackFinder.cxx @@ -177,7 +177,7 @@ void CbmL1GlobalTrackFinder::CbmL1TrackToCbmStsTrack(CbmL1Track l1track, CbmStsT track->AddMvdHit(h.hitId); } else if (h.detId == 1) { - track->AddHit(h.hitId, kSTSHIT); + track->AddStsHit(h.hitId); } } diff --git a/reco/L1/OffLineInterface/CbmL1StsTrackFinder.cxx b/reco/L1/OffLineInterface/CbmL1StsTrackFinder.cxx index 618529d110a3a09e58e9a502d2b7494e1285ab53..7d05c41994b52a4641fbe1f50f46381f06ee3333 100644 --- a/reco/L1/OffLineInterface/CbmL1StsTrackFinder.cxx +++ b/reco/L1/OffLineInterface/CbmL1StsTrackFinder.cxx @@ -93,7 +93,7 @@ Int_t CbmL1StsTrackFinder::CopyL1Tracks(CbmEvent* event) t->AddMvdHit(h.hitId); } else if (h.detId == 1) { - t->AddHit(h.hitId, kSTSHIT); + t->AddStsHit(h.hitId); } } } diff --git a/reco/detectors/sts/CbmStsTrackFinderIdeal.cxx b/reco/detectors/sts/CbmStsTrackFinderIdeal.cxx index d6f5375c1567b22b80ac776ae79bec7dff9100f9..9a89b4f46236cc012dac78e33c6483a55cd47a0a 100644 --- a/reco/detectors/sts/CbmStsTrackFinderIdeal.cxx +++ b/reco/detectors/sts/CbmStsTrackFinderIdeal.cxx @@ -215,7 +215,7 @@ Int_t CbmStsTrackFinderIdeal::DoFind() success = kFALSE; continue; } - pTrck->AddHit(iHit, kSTSHIT); + pTrck->AddStsHit(iHit); if (fVerbose > 2) cout << "Sts Hit " << iHit << " from StsPoint " << ptIndex << " (MCTrack " << mcTrackIndex << ") added to StsTrack " << trackIndex << endl; diff --git a/reco/detectors/sts/qa/CbmStsFindTracksQa.cxx b/reco/detectors/sts/qa/CbmStsFindTracksQa.cxx index 006ad0038918afe6f5dca0575fc6f47220148edf..599a6f60917ee5ca366727bc7af907086a7ec985 100644 --- a/reco/detectors/sts/qa/CbmStsFindTracksQa.cxx +++ b/reco/detectors/sts/qa/CbmStsFindTracksQa.cxx @@ -739,7 +739,7 @@ void CbmStsFindTracksQa::FillMatchMap(Int_t& nRec, Int_t& nGhosts, Int_t& nClone // --- StsTrack CbmStsTrack* stsTrack = (CbmStsTrack*) fStsTracks->At(iTrack); assert(stsTrack); - Int_t nHits = stsTrack->GetNofHits(); + Int_t nHits = stsTrack->GetTotalNofHits(); // --- TrackMatch diff --git a/reco/global/CbmFitGlobalTracksQa.cxx b/reco/global/CbmFitGlobalTracksQa.cxx index 48dab99d2ede716671911c3393b47d4d0a071f16..00b1b5a64a025ef820a7d7ebd5e647f916b6c7fe 100644 --- a/reco/global/CbmFitGlobalTracksQa.cxx +++ b/reco/global/CbmFitGlobalTracksQa.cxx @@ -213,8 +213,8 @@ void CbmFitGlobalTracksQa::Exec(Option_t*) stsTrack = (CbmStsTrack*) fArrayStsTrack->At(stsTrackIndex); if (NULL != stsTrack) { stsPointIndex = -1; - if (stsTrack->GetNofHits()) { - stsHitIndex = stsTrack->GetHitIndex(0); + if (stsTrack->GetNofStsHits()) { + stsHitIndex = stsTrack->GetStsHitIndex(0); stsHit = (CbmStsHit*) fArrayStsHit->At(stsHitIndex); if (NULL != stsHit) { stsPointIndex = stsHit->GetRefId(); } } @@ -327,8 +327,8 @@ void CbmFitGlobalTracksQa::Exec(Option_t*) stsTrack = (CbmStsTrack*) fArrayStsTrack->At(stsTrackIndex); if (NULL != stsTrack) { stsPointIndex = -1; - if (stsTrack->GetNofHits()) { - stsHitIndex = stsTrack->GetHitIndex(stsTrack->GetNofHits() - 1); + if (stsTrack->GetNofStsHits()) { + stsHitIndex = stsTrack->GetStsHitIndex(stsTrack->GetNofStsHits() - 1); stsHit = (CbmStsHit*) fArrayStsHit->At(stsHitIndex); if (NULL != stsHit) { stsPointIndex = stsHit->GetRefId(); } } diff --git a/reco/littrack/cbm/qa/fit/CbmLitFitQa.cxx b/reco/littrack/cbm/qa/fit/CbmLitFitQa.cxx index 54a03014fc166af3605a684e6fa4b67032a51168..c46d92f0198b5eb9f531b88e410091c0dd391741 100644 --- a/reco/littrack/cbm/qa/fit/CbmLitFitQa.cxx +++ b/reco/littrack/cbm/qa/fit/CbmLitFitQa.cxx @@ -203,7 +203,7 @@ void CbmLitFitQa::ProcessStsTrack(Int_t trackId) } } else { // first track parameters in STS - const CbmStsHit* firstHit = static_cast<const CbmStsHit*>(fStsHits->At(track->GetHitIndex(0))); + const CbmStsHit* firstHit = static_cast<const CbmStsHit*>(fStsHits->At(track->GetStsHitIndex(0))); Int_t firstStation = CbmStsSetup::Instance()->GetStationNumber(firstHit->GetAddress()) - 1; //firstHit->GetStationNr() - 1; // to start with 0 if (mcTrack.GetNofPointsAtStation(ECbmModuleId::kSts, firstStation) > 0) { @@ -214,7 +214,7 @@ void CbmLitFitQa::ProcessStsTrack(Int_t trackId) } // Fill histograms for last track parameters - const CbmStsHit* lastHit = static_cast<const CbmStsHit*>(fStsHits->At(track->GetHitIndex(nofStsHits - 1))); + const CbmStsHit* lastHit = static_cast<const CbmStsHit*>(fStsHits->At(track->GetStsHitIndex(nofStsHits - 1))); Int_t lastStation = CbmStsSetup::Instance()->GetStationNumber(lastHit->GetAddress()) - 1; //lastHit->GetStationNr() - 1; // to start with 0 if (mcTrack.GetNofPointsAtStation(ECbmModuleId::kSts, lastStation) > 0) { diff --git a/reco/littrack/cbm/reco/CbmLitFindGlobalTracks.cxx b/reco/littrack/cbm/reco/CbmLitFindGlobalTracks.cxx index ca7a8bcc487ac94eb1a3d69f8f8499e639f2736d..31e90c6e7a1e5fcbbaab7d7033d7aec0b25dc81a 100644 --- a/reco/littrack/cbm/reco/CbmLitFindGlobalTracks.cxx +++ b/reco/littrack/cbm/reco/CbmLitFindGlobalTracks.cxx @@ -438,7 +438,7 @@ void CbmLitFindGlobalTracks::CalculateLength(CbmEvent* event) const CbmStsTrack* stsTrack = static_cast<const CbmStsTrack*>(fStsTracks->At(stsId)); Int_t nofStsHits = stsTrack->GetNofStsHits(); for (Int_t ih = 0; ih < nofStsHits; ih++) { - CbmStsHit* hit = (CbmStsHit*) fStsHits->At(stsTrack->GetHitIndex(ih)); + CbmStsHit* hit = (CbmStsHit*) fStsHits->At(stsTrack->GetStsHitIndex(ih)); X.push_back(hit->GetX()); Y.push_back(hit->GetY()); Z.push_back(hit->GetZ()); diff --git a/reco/qa/CbmTrackingTrdQa.cxx b/reco/qa/CbmTrackingTrdQa.cxx index 73b94fb4f4f20166b73cd6e1d44bdec11ec2d447..b6710af04538c105d6205483d58bf6180bf9268c 100644 --- a/reco/qa/CbmTrackingTrdQa.cxx +++ b/reco/qa/CbmTrackingTrdQa.cxx @@ -285,7 +285,7 @@ void CbmTrackingTrdQa::Exec(Option_t* /*opt*/) if (stsTrackId >= 0) { CbmStsTrack* stsTrack = (CbmStsTrack*) fStsTracks->At(stsTrackId); assert(stsTrack); - nStsHits = stsTrack->GetNofHits(); + nStsHits = stsTrack->GetTotalNofHits(); } } diff --git a/reco/tracking/global/CbmGlobalTrackingQa.cxx b/reco/tracking/global/CbmGlobalTrackingQa.cxx index 70431bc9cd977ac186e546793acb0c5f828da238..ec224b513c0146c5f4042cf086eaf317623d38a0 100644 --- a/reco/tracking/global/CbmGlobalTrackingQa.cxx +++ b/reco/tracking/global/CbmGlobalTrackingQa.cxx @@ -250,11 +250,11 @@ void CbmGlobalTrackingQa::Exec(Option_t*) const CbmStsTrack* stsTrack = static_cast<const CbmStsTrack*>(fStsTracks->At(stsTrackInd)); map<TrackData*, int> stsMCTracks; - int nofStsHits = stsTrack->GetNofHits(); + int nofStsHits = stsTrack->GetNofStsHits(); int nofStsMatches = 0; for (int j = 0; j < nofStsHits; ++j) { - int stsHitInd = stsTrack->GetHitIndex(j); + int stsHitInd = stsTrack->GetStsHitIndex(j); const CbmStsHit* stsHit = static_cast<const CbmStsHit*>(fStsHits->At(stsHitInd)); int frontClusterInd = stsHit->GetFrontClusterId(); int backClusterInd = stsHit->GetBackClusterId(); diff --git a/reco/tracking/global/CbmGlobalTrackingTask.cxx b/reco/tracking/global/CbmGlobalTrackingTask.cxx index 7a99c5d044e43b5783809c70c50fa46fb3eaf15b..7d7217045ca5dfd111df48e2a8aa3ceaab478192 100644 --- a/reco/tracking/global/CbmGlobalTrackingTask.cxx +++ b/reco/tracking/global/CbmGlobalTrackingTask.cxx @@ -160,6 +160,7 @@ void CbmGlobalTrackingTask::Exec(Option_t* /*opt*/) long endTime = ts.tv_sec * 1000000000 + ts.tv_nsec; fullDuration += endTime - beginTime; #endif //CBM_GLOBALTB_PRINT_PERF + } //for (int i = 0; i < nofStsTracks; ++i) } @@ -213,12 +214,19 @@ Double_t CbmGlobalTrackingTask::CalcStsTrackLength(const CbmStsTrack* track) z = paramFirst->GetZ(); const FairTrackParam* paramLast = track->GetParamLast(); - int nofHits = track->GetNofHits(); + int nofHits = track->GetTotalNofHits(); for (int i = 1; i < nofHits; ++i) { - Int_t hitInd = track->GetHitIndex(i); - HitType hitType = track->GetHitType(i); - CbmPixelHit* hit = static_cast<CbmPixelHit*>(kMVDHIT == hitType ? fMvdHits->At(hitInd) : fStsHits->At(hitInd)); + bool isMvdHit = true; + CbmPixelHit* hit = nullptr; + if (i < track->GetNofMvdHits()) { + isMvdHit = true; + hit = static_cast<CbmPixelHit*>(fMvdHits->At(track->GetMvdHitIndex(i))); + } + else { + isMvdHit = false; + hit = static_cast<CbmPixelHit*>(fStsHits->At(track->GetStsHitIndex(i - track->GetNofMvdHits()))); + } // Double_t nextX; (VF) not used // Double_t nextY; (VF) not used Double_t nextZ; @@ -248,9 +256,12 @@ Double_t CbmGlobalTrackingTask::CalcStsTrackLength(const CbmStsTrack* track) if (z == nextZ) { CbmKFStsHit stsKFHit; - if (kMVDHIT == hitType) stsKFHit.Create(static_cast<CbmMvdHit*>(hit)); - else + if (isMvdHit) { + stsKFHit.Create(static_cast<CbmMvdHit*>(hit)); + } + else { stsKFHit.Create(static_cast<CbmStsHit*>(hit)); + } Double_t qp0 = T[4]; stsKFHit.Filter(fKFTrack, kTRUE, qp0);