13 #include <tracking/trackFindingVXD/variableExtractors/VariableExtractor.h>
14 #include <tracking/dataobjects/RecoTrack.h>
23 class EventInfoExtractor :
public VariableExtractor {
35 addVariable(
"N_diff_PXD_SVD_RecoTracks", variableSet);
48 int n_pxdRecoTracks = 0;
49 int n_svdRecoTracks = 0;
50 int n_cdcRecoTracks = 0;
51 float min_mom_diff_mag = std::numeric_limits<float>::max();
52 float min_mom_diff_Pt = std::numeric_limits<float>::max();
53 float min_pos_diff_Theta = std::numeric_limits<float>::max();
54 float min_pos_diff_Phi = std::numeric_limits<float>::max();
56 for (
const RecoTrack& recoTrack : recoTracks) {
57 if (recoTrack.hasPXDHits())
59 if (recoTrack.hasSVDHits())
61 if (recoTrack.hasCDCHits())
64 if (recoTrack.getArrayIndex() == thisRecoTrack.
getArrayIndex())
67 float mom_diff_mag = fabs(recoTrack.getMomentumSeed().Mag() - thisRecoTrack.
getMomentumSeed().Mag());
68 if (mom_diff_mag < min_mom_diff_mag) {
69 min_mom_diff_mag = mom_diff_mag;
71 float mom_diff_Pt = fabs(recoTrack.getMomentumSeed().Pt() - thisRecoTrack.
getMomentumSeed().Pt());
72 if (mom_diff_Pt < min_mom_diff_Pt) {
73 min_mom_diff_Pt = mom_diff_Pt;
75 float pos_diff_Theta = fabs(recoTrack.getPositionSeed().Theta() - thisRecoTrack.
getPositionSeed().Theta());
76 if (pos_diff_Theta < min_pos_diff_Theta) {
77 min_pos_diff_Theta = pos_diff_Theta;
79 float pos_diff_Phi = fabs(recoTrack.getPositionSeed().Phi() - thisRecoTrack.
getPositionSeed().Phi());
80 if (pos_diff_Phi < min_pos_diff_Phi) {
81 min_pos_diff_Phi = pos_diff_Phi;
85 m_variables.at(
"N_PXDRecoTracks") = n_pxdRecoTracks;
86 m_variables.at(
"N_SVDRecoTracks") = n_svdRecoTracks;
87 m_variables.at(
"N_CDCRecoTracks") = n_cdcRecoTracks;
88 m_variables.at(
"N_diff_PXD_SVD_RecoTracks") = n_svdRecoTracks - n_pxdRecoTracks;
89 m_variables.at(
"N_diff_SVD_CDC_RecoTracks") = n_cdcRecoTracks - n_svdRecoTracks;
90 m_variables.at(
"RTs_Min_Mom_diff_Mag") = min_mom_diff_mag;
91 m_variables.at(
"RTs_Min_Mom_diff_Pt") = min_mom_diff_Pt;
92 m_variables.at(
"RTs_Min_Pos_diff_Theta") = min_pos_diff_Theta;
93 m_variables.at(
"RTs_Min_Pos_diff_Phi") = min_pos_diff_Phi;