diff --git a/analysis/common/analysis_tree_converter/CbmMatchEvents.cxx b/analysis/common/analysis_tree_converter/CbmMatchEvents.cxx index 77552434f5e0f5d8fca1ba1800f858c4e9f125e2..f690e3ca4afd38544549d7001b4f576a703a3be0 100644 --- a/analysis/common/analysis_tree_converter/CbmMatchEvents.cxx +++ b/analysis/common/analysis_tree_converter/CbmMatchEvents.cxx @@ -27,8 +27,8 @@ void CbmMatchEvents::ProcessData(CbmEvent* event) { if (!event) { throw std::runtime_error("No event to match"); } - LOG(info) << "Event: " << event->GetNumber() << " t_start " << event->GetStartTime() - << " Msts = " << event->GetNofStsTracks(); + LOG(info) << "Event: " << event->GetNumber() << " t_start = " << event->GetStartTime() + << " t_end = " << event->GetEndTime() << " Msts = " << event->GetNofStsTracks(); count_map_.clear(); diff --git a/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.cxx b/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.cxx index efe6df5e841cac46841c474f60c99e36f5467fec..f7c9a2efd4df951c98925ca1b73277c4954474f0 100644 --- a/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.cxx +++ b/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.cxx @@ -35,16 +35,18 @@ void CbmRecEventHeaderConverter::Init() RecEventHeaderBranch.AddField<float>("vtx_chi2", "primiry vertex fit chi^2/NDF"); RecEventHeaderBranch.AddField<float>("Epsd", "GeV, full energy deposit in PSD"); RecEventHeaderBranch.AddField<int>("M", "total multiplicity in STS(+MVD)"); + RecEventHeaderBranch.AddField<int>("nMCEvents", "Number of MC events that contributed"); RecEventHeaderBranch.AddField<int>("evt_id", "event identifier"); - RecEventHeaderBranch.AddField<float>("start_time", "Start time of the event, ns"); - RecEventHeaderBranch.AddField<float>("end_time", "End time of the event, ns"); - RecEventHeaderBranch.AddField<float>("match_weight", ""); + RecEventHeaderBranch.AddFields<float>({"start_time", "end_time"}, "Start and end time of the event, ns"); + RecEventHeaderBranch.AddField<float>("match_weight", + "Weight of matched event"); // TODO: Add info how it is calculated RecEventHeaderBranch.AddField<float>("T0", "Reconstructed T0, ns"); RecEventHeaderBranch.AddField<float>("tStartTS", "TS start time, ns"); ivtx_chi2_ = RecEventHeaderBranch.GetFieldId("vtx_chi2"); iEpsd_ = RecEventHeaderBranch.GetFieldId("Epsd"); iM_ = RecEventHeaderBranch.GetFieldId("M"); + iMCEvents_ = RecEventHeaderBranch.GetFieldId("nMCEvents"); ievt_id_ = RecEventHeaderBranch.GetFieldId("evt_id"); istart_time_ = RecEventHeaderBranch.GetFieldId("start_time"); iend_time_ = RecEventHeaderBranch.GetFieldId("end_time"); @@ -70,7 +72,7 @@ void CbmRecEventHeaderConverter::ProcessData(CbmEvent* event) rec_event_header_->SetField(n_sts_tracks, iM_); rec_event_header_->SetField(GetPsdEnergy(event), iEpsd_); - int evt_id; + int nMCEvents, evt_id; float match_weight, start_time, end_time, T0, tStartTS; if (event) { evt_id = event->GetUniqueID(); @@ -80,10 +82,14 @@ void CbmRecEventHeaderConverter::ProcessData(CbmEvent* event) tStartTS = fTimeSlice->GetStartTime(); - if (event->GetMatch() && event->GetMatch()->GetNofLinks() > 0) + if (event->GetMatch() && event->GetMatch()->GetNofLinks() > 0) { match_weight = float(event->GetMatch()->GetMatchedLink().GetWeight()); - else + nMCEvents = event->GetMatch()->GetNofLinks(); + } + else { match_weight = 0.; + nMCEvents = 0; + } } else { evt_id = cbm_header_->GetEventID(); @@ -92,6 +98,7 @@ void CbmRecEventHeaderConverter::ProcessData(CbmEvent* event) T0 = -999999.; tStartTS = -1.; match_weight = 1.; + nMCEvents = 1; } rec_event_header_->SetField(evt_id, ievt_id_); rec_event_header_->SetField(start_time, istart_time_); @@ -99,6 +106,7 @@ void CbmRecEventHeaderConverter::ProcessData(CbmEvent* event) rec_event_header_->SetField(T0, iT0_); rec_event_header_->SetField(tStartTS, iTStartTS_); rec_event_header_->SetField(match_weight, imatch_weight_); + rec_event_header_->SetField(nMCEvents, iMCEvents_); } float CbmRecEventHeaderConverter::GetPsdEnergy(CbmEvent* event) diff --git a/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.h b/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.h index 4a3fc3a351b0986b5196037f6242cac75f19f37b..cc4d053ca7d158f36d5f3975ce09ed0ef25efe1f 100644 --- a/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.h +++ b/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.h @@ -39,6 +39,7 @@ private: int ivtx_chi2_ {AnalysisTree::UndefValueInt}; int iEpsd_ {AnalysisTree::UndefValueInt}; int iM_ {AnalysisTree::UndefValueInt}; + int iMCEvents_{AnalysisTree::UndefValueInt}; int ievt_id_ {AnalysisTree::UndefValueInt}; int istart_time_ {AnalysisTree::UndefValueInt}; int iend_time_ {AnalysisTree::UndefValueInt}; diff --git a/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx b/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx index eeadfa3dee97416b342f6a885062692505082d1c..6a3e4371b2ea9c6de0e20129ec10a453e1cb688e 100644 --- a/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx +++ b/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx @@ -277,8 +277,6 @@ void CbmStsTracksConverter::MapTracks(CbmEvent* event) if (p == sim_tracks_map.end()) // match is not found continue; - // LOG(info) << match->GetTrueOverAllHitsRatio(); - track.SetField(float(match->GetTrueOverAllHitsRatio()), imatch_weight_); vtx_tracks_2_sim_->AddMatch(out_id, p->second); }