Skip to content
Snippets Groups Projects

Kfpf info

Merged Oleksii Lubynets requested to merge kfpf_info into analysis_tree
3 files
+ 33
10
Compare changes
  • Side-by-side
  • Inline
Files
3
@@ -29,13 +29,17 @@ void CbmStsTracksConverter::Exec() {
@@ -29,13 +29,17 @@ void CbmStsTracksConverter::Exec() {
}
}
//TODO misleading name, move field filling somewhere else?
//TODO misleading name, move field filling somewhere else?
float CbmStsTracksConverter::ExtrapolateToVertex(CbmStsTrack* sts_track, AnalysisTree::Track* track){
float CbmStsTracksConverter::ExtrapolateToVertex(CbmStsTrack* sts_track, AnalysisTree::Track* track, int pdg){
vector<CbmStsTrack> tracks = {*sts_track};
vector<CbmStsTrack> tracks = {*sts_track};
CbmL1PFFitter fitter;
CbmL1PFFitter fitter;
vector<float> chi2_to_vtx;
vector<float> chi2_to_vtx;
vector<L1FieldRegion> field;
vector<L1FieldRegion> field;
CbmKFVertex kfVertex = CbmKFVertex(*cbm_prim_vertex_);
CbmKFVertex kfVertex = CbmKFVertex(*cbm_prim_vertex_);
 
if(is_reproduce_cbmkfpf_) {
 
std::vector<int> pdgVector = {pdg};
 
fitter.Fit(tracks, pdgVector);
 
}
fitter.GetChiToVertex(tracks, field, chi2_to_vtx, kfVertex, 3.);
fitter.GetChiToVertex(tracks, field, chi2_to_vtx, kfVertex, 3.);
*sts_track = tracks[0];
*sts_track = tracks[0];
@@ -80,8 +84,10 @@ void CbmStsTracksConverter::ReadVertexTracks() {
@@ -80,8 +84,10 @@ void CbmStsTracksConverter::ReadVertexTracks() {
auto* track = vtx_tracks_->AddChannel();
auto* track = vtx_tracks_->AddChannel();
track->Init(out_config_->GetBranchConfig(vtx_tracks_->GetId() ) );
track->Init(out_config_->GetBranchConfig(vtx_tracks_->GetId() ) );
 
 
int pdg = GetMcPid(sts_track, (CbmTrackMatchNew*)cbm_sts_match_->At(i_track), track);
float chi2_vertex = ExtrapolateToVertex(sts_track, track);
float chi2_vertex = ExtrapolateToVertex(sts_track, track, pdg);
const FairTrackParam *trackParamFirst = sts_track->GetParamFirst();
const FairTrackParam *trackParamFirst = sts_track->GetParamFirst();
TVector3 momRec;
TVector3 momRec;
trackParamFirst->Momentum(momRec);
trackParamFirst->Momentum(momRec);
@@ -97,7 +103,7 @@ void CbmStsTracksConverter::ReadVertexTracks() {
@@ -97,7 +103,7 @@ void CbmStsTracksConverter::ReadVertexTracks() {
track->SetField(float(trackParamFirst->GetZ()-cbm_prim_vertex_->GetZ()), idcax+2);
track->SetField(float(trackParamFirst->GetZ()-cbm_prim_vertex_->GetZ()), idcax+2);
track->SetField(int(sts_track->GetNofMvdHits()), inhits_mvd);
track->SetField(int(sts_track->GetNofMvdHits()), inhits_mvd);
track->SetField(float(chi2_vertex), ivtx_chi2);
track->SetField(float(chi2_vertex), ivtx_chi2);
out_indexes_map_.insert(std::make_pair(i_track, track->GetId()));
out_indexes_map_.insert(std::make_pair(i_track, track->GetId()));
if(is_write_kfinfo_){
if(is_write_kfinfo_){
@@ -125,7 +131,11 @@ void CbmStsTracksConverter::WriteKFInfo(AnalysisTree::Track* track, const CbmSts
@@ -125,7 +131,11 @@ void CbmStsTracksConverter::WriteKFInfo(AnalysisTree::Track* track, const CbmSts
track -> SetField( IsGoodCovMatrix(sts_track), ipasscuts_);
track -> SetField( IsGoodCovMatrix(sts_track), ipasscuts_);
}
}
bool CbmStsTracksConverter::IsGoodCovMatrix(const CbmStsTrack* sts_track) {
bool CbmStsTracksConverter::IsGoodCovMatrix(const CbmStsTrack* sts_track) const {
 
 
if(!is_reproduce_cbmkfpf_)
 
return true;
 
assert(sts_track);
assert(sts_track);
const FairTrackParam *trackParamFirst = sts_track->GetParamFirst();
const FairTrackParam *trackParamFirst = sts_track->GetParamFirst();
@@ -158,8 +168,10 @@ bool CbmStsTracksConverter::IsGoodCovMatrix(const CbmStsTrack* sts_track) {
@@ -158,8 +168,10 @@ bool CbmStsTracksConverter::IsGoodCovMatrix(const CbmStsTrack* sts_track) {
return ok;
return ok;
}
}
void CbmStsTracksConverter::GetMcPid(const CbmStsTrack* sts_track, const CbmTrackMatchNew* match, AnalysisTree::Track* track) const {
int CbmStsTracksConverter::GetMcPid(const CbmStsTrack* sts_track, const CbmTrackMatchNew* match, AnalysisTree::Track* track) const {
 
if(!is_write_kfinfo_)
 
return -2;
//-----------PID as in MZ's CbmKFPF----------------------------------------------------------
//-----------PID as in MZ's CbmKFPF----------------------------------------------------------
Int_t nMCTracks = cbm_mc_tracks_ -> GetEntriesFast();
Int_t nMCTracks = cbm_mc_tracks_ -> GetEntriesFast();
@@ -205,6 +217,8 @@ void CbmStsTracksConverter::GetMcPid(const CbmStsTrack* sts_track, const CbmTrac
@@ -205,6 +217,8 @@ void CbmStsTracksConverter::GetMcPid(const CbmStsTrack* sts_track, const CbmTrac
}
}
}
}
track->SetField( pdgCode, imc_pdg_);
track->SetField( pdgCode, imc_pdg_);
 
 
return pdgCode;
}
}
void CbmStsTracksConverter::InitInput() {
void CbmStsTracksConverter::InitInput() {
Loading