Skip to content
Snippets Groups Projects
Commit 7256ff10 authored by Oleksii Lubynets's avatar Oleksii Lubynets Committed by Florian Uhlig
Browse files

AT converter: remove obsolete code

MC-true pdg code field was removed from VtxTracks branch long back in time.
This information is available via AT::Matching. 
The commented piece of code and empty (filled with zeros) field mc_pdg still remained
which was fixed with this MR.
parent 1677264c
No related branches found
No related tags found
1 merge request!1307AT converter: remove obsolete code
Pipeline #23918 passed
...@@ -27,8 +27,8 @@ void CbmSimEventHeaderConverter::Init() ...@@ -27,8 +27,8 @@ void CbmSimEventHeaderConverter::Init()
auto* ioman = FairRootManager::Instance(); auto* ioman = FairRootManager::Instance();
assert(ioman != nullptr); assert(ioman != nullptr);
cbm_mc_manager_ = dynamic_cast<CbmMCDataManager*>(ioman->GetObject("MCDataManager")); cbm_mc_manager_ = dynamic_cast<CbmMCDataManager*>(ioman->GetObject("MCDataManager"));
cbm_header_obj_ = cbm_mc_manager_->GetObject("MCEventHeader."); cbm_header_obj_ = cbm_mc_manager_->GetObject("MCEventHeader.");
cbm_mc_event_list_ = (CbmMCEventList*) ioman->GetObject("MCEventList."); cbm_mc_event_list_ = (CbmMCEventList*) ioman->GetObject("MCEventList.");
if (!cbm_mc_event_list_) { throw std::runtime_error("CbmSimEventHeaderConverter::Init - ERROR! No fMCEventList!"); } if (!cbm_mc_event_list_) { throw std::runtime_error("CbmSimEventHeaderConverter::Init - ERROR! No fMCEventList!"); }
......
...@@ -30,7 +30,7 @@ ClassImp(CbmStsTracksConverter); ...@@ -30,7 +30,7 @@ ClassImp(CbmStsTracksConverter);
void CbmStsTracksConverter::ProcessData(CbmEvent* event) void CbmStsTracksConverter::ProcessData(CbmEvent* event)
{ {
assert(cbm_sts_tracks_ != nullptr && cbm_mc_tracks_new_ != nullptr); assert(cbm_sts_tracks_ != nullptr);
vtx_tracks_2_sim_->Clear(); vtx_tracks_2_sim_->Clear();
out_indexes_map_.clear(); out_indexes_map_.clear();
...@@ -51,11 +51,9 @@ void CbmStsTracksConverter::InitInput() ...@@ -51,11 +51,9 @@ void CbmStsTracksConverter::InitInput()
cbm_prim_vertex_ = (CbmVertex*) ioman->GetObject("PrimaryVertex."); cbm_prim_vertex_ = (CbmVertex*) ioman->GetObject("PrimaryVertex.");
cbm_sts_tracks_ = (TClonesArray*) ioman->GetObject("StsTrack"); cbm_sts_tracks_ = (TClonesArray*) ioman->GetObject("StsTrack");
// cbm_mc_tracks_ = (TClonesArray*) ioman->GetObject("MCTrack"); cbm_sts_match_ = (TClonesArray*) ioman->GetObject("StsTrackMatch");
cbm_sts_match_ = (TClonesArray*) ioman->GetObject("StsTrackMatch");
cbm_mc_manager_ = dynamic_cast<CbmMCDataManager*>(ioman->GetObject("MCDataManager")); cbm_mc_manager_ = dynamic_cast<CbmMCDataManager*>(ioman->GetObject("MCDataManager"));
cbm_mc_tracks_new_ = cbm_mc_manager_->InitBranch("MCTrack");
} }
void CbmStsTracksConverter::Init() void CbmStsTracksConverter::Init()
...@@ -93,13 +91,11 @@ void CbmStsTracksConverter::Init() ...@@ -93,13 +91,11 @@ void CbmStsTracksConverter::Init()
"covarience matrix"); "covarience matrix");
vtx_tracks_config.AddField<int>("mother_pdg", "PDG code of mother particle"); vtx_tracks_config.AddField<int>("mother_pdg", "PDG code of mother particle");
vtx_tracks_config.AddField<int>("mc_pdg", "MC-true PDG code");
vtx_tracks_config.AddField<bool>("pass_cuts", "ask Oleksii"); vtx_tracks_config.AddField<bool>("pass_cuts", "ask Oleksii");
ipar_ = vtx_tracks_config.GetFieldId("x"); ipar_ = vtx_tracks_config.GetFieldId("x");
imf_ = vtx_tracks_config.GetFieldId("cx0"); imf_ = vtx_tracks_config.GetFieldId("cx0");
icov_ = vtx_tracks_config.GetFieldId("cov1"); icov_ = vtx_tracks_config.GetFieldId("cov1");
imc_pdg_ = vtx_tracks_config.GetFieldId("mc_pdg");
imother_pdg_ = vtx_tracks_config.GetFieldId("mother_pdg"); imother_pdg_ = vtx_tracks_config.GetFieldId("mother_pdg");
ipasscuts_ = vtx_tracks_config.GetFieldId("pass_cuts"); ipasscuts_ = vtx_tracks_config.GetFieldId("pass_cuts");
} }
...@@ -282,48 +278,3 @@ void CbmStsTracksConverter::MapTracks(CbmEvent* event) ...@@ -282,48 +278,3 @@ void CbmStsTracksConverter::MapTracks(CbmEvent* event)
} }
} }
} }
//int CbmStsTracksConverter::GetMcPid(const CbmTrackMatchNew* match, AnalysisTree::Track& track) const
//{
//
// if (!is_write_kfinfo_) { return -2; }
// //-----------PID as in MZ's
// //CbmKFPF----------------------------------------------------------
// Int_t nMCTracks = cbm_mc_tracks_->GetEntriesFast();
//
// int pdgCode = -2;
// if (match->GetNofLinks() > 0) { // there is at least one matched MC-track
// Float_t bestWeight = 0.f;
// Float_t totalWeight = 0.f;
// Int_t mcTrackId = -1;
//
// for (int iLink = 0; iLink < match->GetNofLinks(); iLink++) {
// totalWeight += match->GetLink(iLink).GetWeight();
// if (match->GetLink(iLink).GetWeight() > bestWeight) {
// bestWeight = match->GetLink(iLink).GetWeight();
// mcTrackId = match->GetLink(iLink).GetIndex();
// }
// }
//
// if (!((bestWeight / totalWeight < 0.7) || (mcTrackId >= nMCTracks || mcTrackId < 0))) {
// auto* mctrack = static_cast<CbmMCTrack*>(cbm_mc_tracks_->At(mcTrackId));
//
// if (!(TMath::Abs(mctrack->GetPdgCode()) == 11 || TMath::Abs(mctrack->GetPdgCode()) == 13
// || TMath::Abs(mctrack->GetPdgCode()) == 211 || TMath::Abs(mctrack->GetPdgCode()) == 321
// || TMath::Abs(mctrack->GetPdgCode()) == 2212 || TMath::Abs(mctrack->GetPdgCode()) == 1000010020
// || TMath::Abs(mctrack->GetPdgCode()) == 1000010030 || TMath::Abs(mctrack->GetPdgCode()) == 1000020030
// || TMath::Abs(mctrack->GetPdgCode()) == 1000020040)) {
// pdgCode = -1;
// }
// else {
// pdgCode = mctrack->GetPdgCode();
// }
// if (mctrack->GetMotherId() > -1) {
// track.SetField(int(((CbmMCTrack*) cbm_mc_tracks_->At(mctrack->GetMotherId()))->GetPdgCode()), imother_pdg_);
// }
// }
// }
// track.SetField(pdgCode, imc_pdg_);
//
// return pdgCode;
//}
...@@ -53,12 +53,10 @@ private: ...@@ -53,12 +53,10 @@ private:
AnalysisTree::Matching* vtx_tracks_2_sim_ {nullptr}; ///< raw pointers are needed for TTree::Branch AnalysisTree::Matching* vtx_tracks_2_sim_ {nullptr}; ///< raw pointers are needed for TTree::Branch
CbmVertex* cbm_prim_vertex_ {nullptr}; ///< non-owning pointer CbmVertex* cbm_prim_vertex_ {nullptr}; ///< non-owning pointer
// TClonesArray* cbm_mc_tracks_ {nullptr}; ///< non-owning pointer
TClonesArray* cbm_sts_tracks_ {nullptr}; ///< non-owning pointer TClonesArray* cbm_sts_tracks_ {nullptr}; ///< non-owning pointer
TClonesArray* cbm_sts_match_ {nullptr}; ///< non-owning pointer TClonesArray* cbm_sts_match_ {nullptr}; ///< non-owning pointer
CbmMCDataManager* cbm_mc_manager_ {nullptr}; CbmMCDataManager* cbm_mc_manager_ {nullptr};
CbmMCDataArray* cbm_mc_tracks_new_ {nullptr};
bool is_write_kfinfo_ {true}; bool is_write_kfinfo_ {true};
bool is_reproduce_cbmkfpf_ {true}; bool is_reproduce_cbmkfpf_ {true};
...@@ -76,7 +74,6 @@ private: ...@@ -76,7 +74,6 @@ private:
int ipar_ {AnalysisTree::UndefValueInt}; int ipar_ {AnalysisTree::UndefValueInt};
int imf_ {AnalysisTree::UndefValueInt}; int imf_ {AnalysisTree::UndefValueInt};
int icov_ {AnalysisTree::UndefValueInt}; int icov_ {AnalysisTree::UndefValueInt};
int imc_pdg_ {AnalysisTree::UndefValueInt};
int imother_pdg_ {AnalysisTree::UndefValueInt}; int imother_pdg_ {AnalysisTree::UndefValueInt};
int ipasscuts_ {AnalysisTree::UndefValueInt}; int ipasscuts_ {AnalysisTree::UndefValueInt};
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include "ATKFParticleFinder.h" #include "ATKFParticleFinder.h"
#include "AnalysisTree/Matching.hpp"
#include "KFParticleTopoReconstructor.h" #include "KFParticleTopoReconstructor.h"
void ATKFParticleFinder::InitInput(const std::string& file_name, const std::string& tree_name) void ATKFParticleFinder::InitInput(const std::string& file_name, const std::string& tree_name)
...@@ -22,6 +23,19 @@ void ATKFParticleFinder::InitInput(const std::string& file_name, const std::stri ...@@ -22,6 +23,19 @@ void ATKFParticleFinder::InitInput(const std::string& file_name, const std::stri
else if (in_chain_->CheckBranchExistence("RecEventHeader") == 2) { else if (in_chain_->CheckBranchExistence("RecEventHeader") == 2) {
in_chain_->SetBranchAddress("RecEventHeader.", &rec_event_header_); in_chain_->SetBranchAddress("RecEventHeader.", &rec_event_header_);
} }
if (in_chain_->CheckBranchExistence("SimParticles") == 1) {
in_chain_->SetBranchAddress("SimParticles", &sim_particles_);
}
else if (in_chain_->CheckBranchExistence("SimParticles") == 2) {
in_chain_->SetBranchAddress("SimParticles.", &sim_particles_);
}
std::string kf2sim_tracks_name = in_chain_->GetConfiguration()->GetMatchName("VtxTracks", "SimParticles");
if (in_chain_->CheckBranchExistence(kf2sim_tracks_name) == 1) {
in_chain_->SetBranchAddress(kf2sim_tracks_name.c_str(), &kf2sim_tracks_);
}
else if (in_chain_->CheckBranchExistence(kf2sim_tracks_name) == 2) {
in_chain_->SetBranchAddress((kf2sim_tracks_name + ".").c_str(), &kf2sim_tracks_);
}
auto branch_conf_kftr = in_chain_->GetConfiguration()->GetBranchConfig("VtxTracks"); auto branch_conf_kftr = in_chain_->GetConfiguration()->GetBranchConfig("VtxTracks");
q_field_id_ = branch_conf_kftr.GetFieldId("q"); q_field_id_ = branch_conf_kftr.GetFieldId("q");
...@@ -31,7 +45,6 @@ void ATKFParticleFinder::InitInput(const std::string& file_name, const std::stri ...@@ -31,7 +45,6 @@ void ATKFParticleFinder::InitInput(const std::string& file_name, const std::stri
cov_field_id_ = branch_conf_kftr.GetFieldId("cov1"); // cov matrix 0 cov_field_id_ = branch_conf_kftr.GetFieldId("cov1"); // cov matrix 0
passcuts_field_id_ = branch_conf_kftr.GetFieldId("pass_cuts"); passcuts_field_id_ = branch_conf_kftr.GetFieldId("pass_cuts");
pdg_field_id_ = branch_conf_kftr.GetFieldId("mc_pdg");
nhits_field_id_ = branch_conf_kftr.GetFieldId("nhits"); nhits_field_id_ = branch_conf_kftr.GetFieldId("nhits");
nhits_mvd_field_id_ = branch_conf_kftr.GetFieldId("nhits_mvd"); nhits_mvd_field_id_ = branch_conf_kftr.GetFieldId("nhits_mvd");
vtx_chi2_field_id_ = branch_conf_kftr.GetFieldId("vtx_chi2"); vtx_chi2_field_id_ = branch_conf_kftr.GetFieldId("vtx_chi2");
...@@ -116,7 +129,6 @@ void ATKFParticleFinder::InitTopoReconstructor() ...@@ -116,7 +129,6 @@ void ATKFParticleFinder::InitTopoReconstructor()
for (unsigned int i_track = 0; i_track < kf_tracks_->GetNumberOfChannels(); i_track++) { for (unsigned int i_track = 0; i_track < kf_tracks_->GetNumberOfChannels(); i_track++) {
const AnalysisTree::Track& rec_track = kf_tracks_->GetChannel(i_track); const AnalysisTree::Track& rec_track = kf_tracks_->GetChannel(i_track);
if (rec_track.GetField<bool>(passcuts_field_id_) == 0) continue; if (rec_track.GetField<bool>(passcuts_field_id_) == 0) continue;
if (rec_track.GetField<int>(pdg_field_id_) == -2 && pid_mode_ == 1) continue;
n_good_tracks++; n_good_tracks++;
} }
...@@ -129,7 +141,6 @@ void ATKFParticleFinder::InitTopoReconstructor() ...@@ -129,7 +141,6 @@ void ATKFParticleFinder::InitTopoReconstructor()
const AnalysisTree::Track& rec_track = kf_tracks_->GetChannel(i_track); const AnalysisTree::Track& rec_track = kf_tracks_->GetChannel(i_track);
if (rec_track.GetField<bool>(passcuts_field_id_) == 0) continue; if (rec_track.GetField<bool>(passcuts_field_id_) == 0) continue;
if (rec_track.GetField<int>(pdg_field_id_) == -2 && pid_mode_ == 1) continue;
for (Int_t iP = 0; iP < 3; iP++) for (Int_t iP = 0; iP < 3; iP++)
track_vector1.SetParameter(rec_track.GetField<float>(par_field_id_ + iP), iP, j_track); track_vector1.SetParameter(rec_track.GetField<float>(par_field_id_ + iP), iP, j_track);
...@@ -142,8 +153,12 @@ void ATKFParticleFinder::InitTopoReconstructor() ...@@ -142,8 +153,12 @@ void ATKFParticleFinder::InitTopoReconstructor()
for (Int_t iF = 0; iF < 10; iF++) for (Int_t iF = 0; iF < 10; iF++)
track_vector1.SetFieldCoefficient(rec_track.GetField<float>(mf_field_id_ + iF), iF, j_track); track_vector1.SetFieldCoefficient(rec_track.GetField<float>(mf_field_id_ + iF), iF, j_track);
if (pid_mode_ == 0) track_vector1.SetPDG(-1, j_track); if (pid_mode_ == 0) track_vector1.SetPDG(-1, j_track);
else if (pid_mode_ == 1) else if (pid_mode_ == 1) {
track_vector1.SetPDG(rec_track.GetField<int>(pdg_field_id_), j_track); int pdg {-999};
const int sim_id = kf2sim_tracks_->GetMatch(rec_track.GetId());
if (sim_id > 0) pdg = sim_particles_->GetChannel(sim_id).GetPid();
track_vector1.SetPDG(pdg, j_track);
}
track_vector1.SetQ(rec_track.GetField<int>(q_field_id_), j_track); track_vector1.SetQ(rec_track.GetField<int>(q_field_id_), j_track);
if (rec_track.GetField<float>(vtx_chi2_field_id_) < 3.) track_vector1.SetPVIndex(0, j_track); if (rec_track.GetField<float>(vtx_chi2_field_id_) < 3.) track_vector1.SetPVIndex(0, j_track);
else else
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "CutsContainer.h" #include "CutsContainer.h"
class KFParticleTopoReconstructor; class KFParticleTopoReconstructor;
class Matching;
class ATKFParticleFinder { class ATKFParticleFinder {
public: public:
...@@ -38,6 +39,8 @@ private: ...@@ -38,6 +39,8 @@ private:
AnalysisTree::Chain* in_chain_ {nullptr}; AnalysisTree::Chain* in_chain_ {nullptr};
AnalysisTree::EventHeader* rec_event_header_ {nullptr}; AnalysisTree::EventHeader* rec_event_header_ {nullptr};
AnalysisTree::TrackDetector* kf_tracks_ {nullptr}; AnalysisTree::TrackDetector* kf_tracks_ {nullptr};
AnalysisTree::Particles* sim_particles_ {nullptr};
AnalysisTree::Matching* kf2sim_tracks_ {nullptr};
TFile* out_file_ {nullptr}; TFile* out_file_ {nullptr};
TTree* out_tree_ {nullptr}; TTree* out_tree_ {nullptr};
...@@ -49,7 +52,6 @@ private: ...@@ -49,7 +52,6 @@ private:
int mf_field_id_ {-999}; int mf_field_id_ {-999};
int cov_field_id_ {-999}; int cov_field_id_ {-999};
int passcuts_field_id_ {-999}; int passcuts_field_id_ {-999};
int pdg_field_id_ {-999};
int vtx_chi2_field_id_ {-999}; int vtx_chi2_field_id_ {-999};
int nhits_field_id_ {-999}; int nhits_field_id_ {-999};
int nhits_mvd_field_id_ {-999}; int nhits_mvd_field_id_ {-999};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment