CbmRoot
Loading...
Searching...
No Matches
CbmFsdHitsConverter.h
Go to the documentation of this file.
1/* Copyright (C) 2023 Physikalisches Institut, Eberhard Karls Universitaet Tuebingen, Tuebingen
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Lukas Chlad [committer] */
4
5#ifndef ANALYSIS_TREE_FSDHITSCONVERTER_H
6#define ANALYSIS_TREE_FSDHITSCONVERTER_H
7
8#include "AnalysisTree/Detector.hpp"
9#include "CbmConverterTask.h"
10
11class TClonesArray;
12class FairTrackParam;
14class CbmMCDataArray;
15class CbmDigiManager;
16class CbmFsdHit;
17
18namespace AnalysisTree
19{
20 class Matching;
21}
22
24 public:
25 explicit CbmFsdHitsConverter(std::string out_branch_name, std::string match_to = "")
26 : CbmConverterTask(std::move(out_branch_name), std::move(match_to)){};
27
29
30 void Init() final;
31 void ProcessData(CbmEvent* event) final;
32 void Finish() final{};
33
36 void SetMinChi2GtrackHit(Double_t chi2) { fsdgtrack_minChi2_ = chi2; };
37 void SetMaxChi2GtrackHit(Double_t chi2) { fsdgtrack_maxChi2_ = chi2; };
38
39 private:
40 FairTrackParam ExtrapolateGtrack(Double_t zpos, FairTrackParam params);
41 Double_t Chi2FsdhitGtrack(CbmFsdHit* hit, FairTrackParam inputParams);
42
43 const std::map<int, int>& GetMatchMap(const std::string& name) const
44 {
45 const auto& it = indexes_map_->find(name);
46 if (it == indexes_map_->end()) {
47 throw std::runtime_error(name + " is not found to match with FSD hits");
48 }
49 return it->second;
50 }
51 std::string mc_tracks_{"SimParticles"};
52
53 TClonesArray* cbm_global_tracks_{nullptr};
54 TClonesArray* cbm_sts_tracks_{nullptr};
55 TClonesArray* cbm_tof_hits_{nullptr};
56 TClonesArray* cbm_fsd_hits_{nullptr};
57 TClonesArray* cbm_fsd_hitmatch_{nullptr};
58 TClonesArray* cbm_mc_tracks_{nullptr};
59
61 //TClonesArray* cbm_fsd_digimatch_ {nullptr};
62 //TClonesArray* cbm_fsd_digis_ {nullptr};
63
65 //CbmMCDataArray* cbm_mc_tracks_new_ {nullptr};
67
68 AnalysisTree::HitDetector* fsd_hits_{nullptr};
69 AnalysisTree::Matching* vtx_tracks_2_fsd_{
70 nullptr}; // Matching of Reconstructed Global Tracks (extrapolated via CbmKFTrack to fixed Z) to FSD hits, the matching can be configured by cutting on chi2
71 AnalysisTree::Matching* fsd_hits_2_mc_tracks_{
72 nullptr}; // Matching of MC Tracks with highest weight (largest energy deposition) to FSD hits
73
74 int i_mass2_{AnalysisTree::UndefValueInt};
75 int i_qp_{AnalysisTree::UndefValueInt};
76 int i_dx_{AnalysisTree::UndefValueInt};
77 int i_t_{AnalysisTree::UndefValueInt};
78 int i_l_{AnalysisTree::UndefValueInt};
79 int i_edep_{AnalysisTree::UndefValueInt};
80 int i_chi2_{AnalysisTree::UndefValueInt};
81 int i_bestMatchedGTrack_{AnalysisTree::UndefValueInt};
82 int i_multMC_{AnalysisTree::UndefValueInt};
83 int i_topW_{AnalysisTree::UndefValueInt};
84 int i_dxHP_{AnalysisTree::UndefValueInt};
85 int i_dtHP_{AnalysisTree::UndefValueInt};
86
87 int i_xpoint_{AnalysisTree::UndefValueInt};
88 int i_pxpoint_{AnalysisTree::UndefValueInt};
89 int i_phipoint_{AnalysisTree::UndefValueInt};
90 int i_lengthpoint_{AnalysisTree::UndefValueInt};
91 int i_tpoint_{AnalysisTree::UndefValueInt};
92 int i_eloss_{AnalysisTree::UndefValueInt};
93 int i_dist_middle_x_{AnalysisTree::UndefValueInt};
94 int i_dist_middle_y_{AnalysisTree::UndefValueInt};
95
96
97 Double_t fsdgtrack_minChi2_{0.};
98 Double_t fsdgtrack_maxChi2_{0.};
99
100 ClassDef(CbmFsdHitsConverter, 1)
101};
102
103#endif // ANALYSIS_TREE_FSDHITSCONVERTER_H
std::map< std::string, MapType > * indexes_map_
from other tasks
CbmDigiManager.
Class characterising one event by a collection of links (indices) to data objects,...
Definition CbmEvent.h:34
void ProcessData(CbmEvent *event) final
CbmMCDataArray * cbm_fsd_points_new_
TClonesArray * cbm_global_tracks_
TClonesArray * cbm_mc_tracks_
TClonesArray * cbm_sts_tracks_
CbmDigiManager * fDigiMan
TClonesArray * cbm_fsd_hitmatch_
AnalysisTree::Matching * vtx_tracks_2_fsd_
void SetMinChi2GtrackHit(Double_t chi2)
TClonesArray * cbm_tof_hits_
TClonesArray * cbm_fsd_hits_
AnalysisTree::Matching * fsd_hits_2_mc_tracks_
CbmFsdHitsConverter(std::string out_branch_name, std::string match_to="")
const std::map< int, int > & GetMatchMap(const std::string &name) const
Double_t Chi2FsdhitGtrack(CbmFsdHit *hit, FairTrackParam inputParams)
FairTrackParam ExtrapolateGtrack(Double_t zpos, FairTrackParam params)
AnalysisTree::HitDetector * fsd_hits_
void SetMaxChi2GtrackHit(Double_t chi2)
CbmMCDataManager * cbm_mc_manager_
Access to a MC data branch for time-based analysis.
Task class creating and managing CbmMCDataArray objects.
Hash for CbmL1LinkKey.