26 m_trackParameters = std::make_unique<InDetPerfPlot_TrackParameters>(this,
"Tracks/Selected/Parameters", m_config.hasHGTDReco);
27 m_unmatchedBiasPlots = std::make_unique<InDetPerfPlot_Resolution>(this,
"Tracks/Selected/Bias", true, m_config.hasHGTDReco);
29 if (
m_config.doNTracks)
m_nTracks = std::make_unique<InDetPerfPlot_nTracks>(
this,
"Tracks/Tracks");
32 if (
m_config.doFakePlots)
m_fakePlots= std::make_unique<InDetPerfPlot_FakeRate>(
this,
"Tracks/FakeRate");
42 (
this,
"Vertices/AllPrimaryVertices");
45 (
this,
"Vertices/AllPrimaryVertices",
m_config.isITk,
49 (
this,
"Vertices/HardScatteringVertex",
m_config.isITk,
51 if (
m_config.doHardScatterVertexTruthMatchingPlots)
53 std::make_unique<InDetPerfPlot_VertexTruthMatching>
64 m_effSiSPSeededFinderPlots = std::make_unique<InDetPerfPlot_Efficiency>(this,
"TracksByAuthor/SiSPSeededFinder/Tracks/Efficiency", false, m_config.isITk);
65 m_effInDetExtensionProcessorPlots = std::make_unique<InDetPerfPlot_Efficiency>(this,
"TracksByAuthor/InDetExtensionProcessor/Tracks/Efficiency", false, m_config.isITk);
66 m_effTRTSeededTrackFinderPlots = std::make_unique<InDetPerfPlot_Efficiency>(this,
"TracksByAuthor/TRTSeededTrackFinder/Tracks/Efficiency", false, m_config.isITk);
67 m_effTRTStandalonePlots = std::make_unique<InDetPerfPlot_Efficiency>(this,
"TracksByAuthor/TRTStandalone/Tracks/Efficiency", false, m_config.isITk);
68 m_effSiSpacePointsSeedMaker_LargeD0Plots = std::make_unique<InDetPerfPlot_Efficiency>(this,
"TracksByAuthor/SiSpacePointsSeedMaker_LargeD0/Tracks/Efficiency", false, m_config.isITk);
72 m_fakeSiSPSeededFinderPlots = std::make_unique<InDetPerfPlot_FakeRate>(this,
"TracksByAuthor/SiSPSeededFinder/Tracks/FakeRate");
73 m_fakeInDetExtensionProcessorPlots = std::make_unique<InDetPerfPlot_FakeRate>(this,
"TracksByAuthor/InDetExtensionProcessor/Tracks/FakeRate");
74 m_fakeTRTSeededTrackFinderPlots = std::make_unique<InDetPerfPlot_FakeRate>(this,
"TracksByAuthor/TRTSeededTrackFinder/Tracks/FakeRate");
75 m_fakeTRTStandalonePlots = std::make_unique<InDetPerfPlot_FakeRate>(this,
"TracksByAuthor/TRTStandalone/Tracks/FakeRate");
76 m_fakeSiSpacePointsSeedMaker_LargeD0Plots = std::make_unique<InDetPerfPlot_FakeRate>(this,
"TracksByAuthor/SiSpacePointsSeedMaker_LargeD0/Tracks/FakeRate");
80 m_trkParaSiSPSeededFinderPlots = std::make_unique<InDetPerfPlot_TrackParameters>(this,
"TracksByAuthor/SiSPSeededFinder/Tracks/Parameters", m_config.hasHGTDReco);
81 m_trkParaInDetExtensionProcessorPlots = std::make_unique<InDetPerfPlot_TrackParameters>(this,
"TracksByAuthor/InDetExtensionProcessor/Tracks/Parameters", m_config.hasHGTDReco);
82 m_trkParaTRTSeededTrackFinderPlots = std::make_unique<InDetPerfPlot_TrackParameters>(this,
"TracksByAuthor/TRTSeededTrackFinder/Tracks/Parameters", m_config.hasHGTDReco);
83 m_trkParaTRTStandalonePlots = std::make_unique<InDetPerfPlot_TrackParameters>(this,
"TracksByAuthor/TRTStandalone/Tracks/Parameters", m_config.hasHGTDReco);
84 m_trkParaSiSpacePointsSeedMaker_LargeD0Plots= std::make_unique<InDetPerfPlot_TrackParameters>(this,
"TracksByAuthor/SiSpacePointsSeedMaker_LargeD0/Tracks/Parameters", m_config.hasHGTDReco);
88 m_resSiSPSeededFinderPlots = std::make_unique<InDetPerfPlot_Resolution>(this,
"TracksByAuthor/SiSPSeededFinder/Tracks/Resolution", false, m_config.hasHGTDReco);
89 m_resInDetExtensionProcessorPlots = std::make_unique<InDetPerfPlot_Resolution>(this,
"TracksByAuthor/InDetExtensionProcessor/Tracks/Resolution", false, m_config.hasHGTDReco);
90 m_resTRTSeededTrackFinderPlots = std::make_unique<InDetPerfPlot_Resolution>(this,
"TracksByAuthor/TRTSeededTrackFinder/Tracks/Resolution", false, m_config.hasHGTDReco);
91 m_resTRTStandalonePlots = std::make_unique<InDetPerfPlot_Resolution>(this,
"TracksByAuthor/TRTStandalone/Tracks/Resolution", false, m_config.hasHGTDReco);
92 m_resSiSpacePointsSeedMaker_LargeD0Plots = std::make_unique<InDetPerfPlot_Resolution>(this,
"TracksByAuthor/SiSpacePointsSeedMaker_LargeD0/Tracks/Resolution", false, m_config.hasHGTDReco);
96 m_hitsSiSPSeededFinderPlots = std::make_unique<InDetPerfPlot_Hits>(this,
"TracksByAuthor/SiSPSeededFinder/Tracks/HitsOnTracks", m_config.isITk);
97 m_hitsInDetExtensionProcessorPlots = std::make_unique<InDetPerfPlot_Hits>(this,
"TracksByAuthor/InDetExtensionProcessor/Tracks/HitsOnTracks", m_config.isITk);
98 m_hitsTRTSeededTrackFinderPlots = std::make_unique<InDetPerfPlot_Hits>(this,
"TracksByAuthor/TRTSeededTrackFinder/Tracks/HitsOnTracks", m_config.isITk);
99 m_hitsTRTStandalonePlots = std::make_unique<InDetPerfPlot_Hits>(this,
"TracksByAuthor/TRTStandalone/Tracks/HitsOnTracks", m_config.isITk);
100 m_hitsSiSpacePointsSeedMaker_LargeD0Plots = std::make_unique<InDetPerfPlot_Hits>(this,
"TracksByAuthor/SiSpacePointsSeedMaker_LargeD0/Tracks/HitsOnTracks", m_config.isITk);
125 const float prob = tpTruthProbKeyAcc(particle);
137 std::bitset<xAOD::TrackPatternRecoInfo::NumberOfTrackRecoInfo> patternInfo = particle.patternRecoInfo();
146 if(isInDetExtensionProcessor and not (isTRTSeededTrackFinder or isSiSpacePointsSeedMaker_LargeD0))
m_resInDetExtensionProcessorPlots->fill(particle, truthParticle, weight);
176 if(
m_config.doTrackParametersPerAuthor){
177 std::bitset<xAOD::TrackPatternRecoInfo::NumberOfTrackRecoInfo> patternInfo = particle.patternRecoInfo();
179 bool isSiSpSeededFinder = patternInfo.test(0);
180 bool isInDetExtensionProcessor = patternInfo.test(3);
181 bool isTRTSeededTrackFinder = patternInfo.test(4);
182 bool isTRTStandalone = patternInfo.test(20);
183 bool isSiSpacePointsSeedMaker_LargeD0 = patternInfo.test(49);
202 if(
m_config.doHitsRecoTracksPlotsPerAuthor){
203 std::bitset<xAOD::TrackPatternRecoInfo::NumberOfTrackRecoInfo> patternInfo = particle.patternRecoInfo();
205 bool isSiSpSeededFinder = patternInfo.test(0);
206 bool isInDetExtensionProcessor = patternInfo.test(3);
207 bool isTRTSeededTrackFinder = patternInfo.test(4);
208 bool isTRTStandalone = patternInfo.test(20);
209 bool isSiSpacePointsSeedMaker_LargeD0 = patternInfo.test(49);
212 else if(isInDetExtensionProcessor and not (isTRTSeededTrackFinder or isSiSpacePointsSeedMaker_LargeD0))
m_hitsInDetExtensionProcessorPlots->fill(particle, mu, weight);
247 const bool isGood,
const unsigned int truthMu,
const float actualMu,
float weight) {
250 if(
m_config.doEfficienciesPerAuthor){
252 bool isGoodSiSPSeededFinder =
false;
253 bool isGoodInDetExtensionProcessor =
false;
254 bool isGoodTRTSeededTrackFinder =
false;
255 bool isGoodTRTStandalone =
false;
256 bool isGoodSiSpacePointsSeedMaker_LargeD0 =
false;
259 std::bitset<xAOD::TrackPatternRecoInfo::NumberOfTrackRecoInfo> patternInfo = track->patternRecoInfo();
261 bool isSiSpSeededFinder = patternInfo.test(0);
262 bool isInDetExtensionProcessor = patternInfo.test(3);
263 bool isTRTSeededTrackFinder = patternInfo.test(4);
264 bool isTRTStandalone = patternInfo.test(20);
265 bool isSiSpacePointsSeedMaker_LargeD0 = patternInfo.test(49);
267 isGoodSiSPSeededFinder = isSiSpSeededFinder and not isInDetExtensionProcessor;
268 isGoodInDetExtensionProcessor = isInDetExtensionProcessor and
269 not (isTRTSeededTrackFinder or isSiSpacePointsSeedMaker_LargeD0);
270 isGoodTRTSeededTrackFinder = isTRTSeededTrackFinder and not isTRTStandalone;
271 isGoodTRTStandalone = isTRTStandalone;
272 isGoodSiSpacePointsSeedMaker_LargeD0 = isSiSpacePointsSeedMaker_LargeD0;
277 truthMu, actualMu, weight);
279 truthMu, actualMu, weight);
281 truthMu, actualMu, weight);
284 truthMu, actualMu, weight);
314 std::bitset<xAOD::TrackPatternRecoInfo::NumberOfTrackRecoInfo> patternInfo = track.patternRecoInfo();
316 bool isSiSpSeededFinder = patternInfo.test(0);
317 bool isInDetExtensionProcessor = patternInfo.test(3);
318 bool isTRTSeededTrackFinder = patternInfo.test(4);
319 bool isTRTStandalone = patternInfo.test(20);
320 bool isSiSpacePointsSeedMaker_LargeD0 = patternInfo.test(49);
323 if(isInDetExtensionProcessor and not (isTRTSeededTrackFinder or isSiSpacePointsSeedMaker_LargeD0))
m_fakeInDetExtensionProcessorPlots->fill(track, isFake, weight, mu);