diff --git a/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx b/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx index 1a1a42965184fd25ba86697e5c0389182aeaa6dd..322851f5c159b3875647aa02f70786978176e71e 100644 --- a/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx +++ b/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx @@ -99,7 +99,9 @@ void CbmStsTracksConverter::ReadVertexTracks() { track->Init(out_config_->GetBranchConfig(vtx_tracks_->GetId())); int pdg = GetMcPid( - sts_track, (CbmTrackMatchNew*) cbm_sts_match_->At(i_track), track); + (CbmTrackMatchNew*) cbm_sts_match_->At(i_track), track); + + bool is_good_track = IsGoodCovMatrix(sts_track); float chi2_vertex = ExtrapolateToVertex(sts_track, track, pdg); const FairTrackParam* trackParamFirst = sts_track->GetParamFirst(); @@ -123,12 +125,13 @@ void CbmStsTracksConverter::ReadVertexTracks() { out_indexes_map_.insert(std::make_pair(i_track, track->GetId())); - if (is_write_kfinfo_) { WriteKFInfo(track, sts_track); } + if (is_write_kfinfo_) { WriteKFInfo(track, sts_track, is_good_track); } } } void CbmStsTracksConverter::WriteKFInfo(AnalysisTree::Track* track, - const CbmStsTrack* sts_track) const { + const CbmStsTrack* sts_track, + bool is_good_track) const { assert(track && sts_track); const FairTrackParam* trackParamFirst = sts_track->GetParamFirst(); @@ -145,7 +148,7 @@ void CbmStsTracksConverter::WriteKFInfo(AnalysisTree::Track* track, icov_ + iCov); } } - track->SetField(IsGoodCovMatrix(sts_track), ipasscuts_); + track->SetField(is_good_track, ipasscuts_); } bool CbmStsTracksConverter::IsGoodCovMatrix( @@ -185,8 +188,7 @@ bool CbmStsTracksConverter::IsGoodCovMatrix( return ok; } -int CbmStsTracksConverter::GetMcPid(const CbmStsTrack* /*sts_track*/, - const CbmTrackMatchNew* match, +int CbmStsTracksConverter::GetMcPid(const CbmTrackMatchNew* match, AnalysisTree::Track* track) const { if (!is_write_kfinfo_) { return -2; } @@ -319,7 +321,7 @@ void CbmStsTracksConverter::MapTracks() { } auto sim_tracks_map = it->second; - assert(!out_indexes_map_.empty() || !sim_tracks_map.empty()); + if (out_indexes_map_.empty() || sim_tracks_map.empty()) return; CbmTrackMatchNew* match {nullptr}; for (const auto& track_id : out_indexes_map_) { diff --git a/analysis/common/analysis_tree_converter/CbmStsTracksConverter.h b/analysis/common/analysis_tree_converter/CbmStsTracksConverter.h index 24dd66aa8f70962419cb5f43ea96fe4a6b4af6b2..857f78d88f07daaecd2b18b58a7b4a6daa77c879 100644 --- a/analysis/common/analysis_tree_converter/CbmStsTracksConverter.h +++ b/analysis/common/analysis_tree_converter/CbmStsTracksConverter.h @@ -50,10 +50,10 @@ private: AnalysisTree::Track* track, int pdg); void WriteKFInfo(AnalysisTree::Track* track, - const CbmStsTrack* sts_track) const; + const CbmStsTrack* sts_track, + bool is_good_track) const; bool IsGoodCovMatrix(const CbmStsTrack* sts_track) const; - int GetMcPid(const CbmStsTrack* sts_track, - const CbmTrackMatchNew* match, + int GetMcPid(const CbmTrackMatchNew* match, AnalysisTree::Track* track) const; AnalysisTree::TrackDetector* vtx_tracks_ { @@ -67,7 +67,7 @@ private: TClonesArray* cbm_sts_match_ {nullptr}; ///< non-owning pointer bool is_write_kfinfo_ {true}; - bool is_reproduce_cbmkfpf_ {false}; + bool is_reproduce_cbmkfpf_ {true}; int ipar_ {-1}; int imf_ {-1};