26 m_trackParameters = std::make_unique<InDetPerfPlot_TrackParameters>(this,
"Tracks/Selected/Parameters", m_config.isITk);
27 m_unmatchedBiasPlots = std::make_unique<InDetPerfPlot_Resolution>(this,
"Tracks/Selected/Bias", true);
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");
45 if (
m_config.doResolutionPlotSecd)
m_resolutionPlotSecd = std::make_unique<InDetPerfPlot_Resolution>(
this,
"Tracks/Matched/Resolutions/Secondary");
52 m_effSiSPSeededFinderPlots = std::make_unique<InDetPerfPlot_Efficiency>(this,
"TracksByAuthor/SiSPSeededFinder/Tracks/Efficiency", false, m_config.isITk);
53 m_effInDetExtensionProcessorPlots = std::make_unique<InDetPerfPlot_Efficiency>(this,
"TracksByAuthor/InDetExtensionProcessor/Tracks/Efficiency", false, m_config.isITk);
54 m_effTRTSeededTrackFinderPlots = std::make_unique<InDetPerfPlot_Efficiency>(this,
"TracksByAuthor/TRTSeededTrackFinder/Tracks/Efficiency", false, m_config.isITk);
55 m_effTRTStandalonePlots = std::make_unique<InDetPerfPlot_Efficiency>(this,
"TracksByAuthor/TRTStandalone/Tracks/Efficiency", false, m_config.isITk);
56 m_effSiSpacePointsSeedMaker_LargeD0Plots = std::make_unique<InDetPerfPlot_Efficiency>(this,
"TracksByAuthor/SiSpacePointsSeedMaker_LargeD0/Tracks/Efficiency", false, m_config.isITk);
60 m_fakeSiSPSeededFinderPlots = std::make_unique<InDetPerfPlot_FakeRate>(this,
"TracksByAuthor/SiSPSeededFinder/Tracks/FakeRate");
61 m_fakeInDetExtensionProcessorPlots = std::make_unique<InDetPerfPlot_FakeRate>(this,
"TracksByAuthor/InDetExtensionProcessor/Tracks/FakeRate");
62 m_fakeTRTSeededTrackFinderPlots = std::make_unique<InDetPerfPlot_FakeRate>(this,
"TracksByAuthor/TRTSeededTrackFinder/Tracks/FakeRate");
63 m_fakeTRTStandalonePlots = std::make_unique<InDetPerfPlot_FakeRate>(this,
"TracksByAuthor/TRTStandalone/Tracks/FakeRate");
64 m_fakeSiSpacePointsSeedMaker_LargeD0Plots = std::make_unique<InDetPerfPlot_FakeRate>(this,
"TracksByAuthor/SiSpacePointsSeedMaker_LargeD0/Tracks/FakeRate");
68 m_trkParaSiSPSeededFinderPlots = std::make_unique<InDetPerfPlot_TrackParameters>(this,
"TracksByAuthor/SiSPSeededFinder/Tracks/Parameters", m_config.isITk);
69 m_trkParaInDetExtensionProcessorPlots = std::make_unique<InDetPerfPlot_TrackParameters>(this,
"TracksByAuthor/InDetExtensionProcessor/Tracks/Parameters", m_config.isITk);
70 m_trkParaTRTSeededTrackFinderPlots = std::make_unique<InDetPerfPlot_TrackParameters>(this,
"TracksByAuthor/TRTSeededTrackFinder/Tracks/Parameters", m_config.isITk);
71 m_trkParaTRTStandalonePlots = std::make_unique<InDetPerfPlot_TrackParameters>(this,
"TracksByAuthor/TRTStandalone/Tracks/Parameters", m_config.isITk);
72 m_trkParaSiSpacePointsSeedMaker_LargeD0Plots= std::make_unique<InDetPerfPlot_TrackParameters>(this,
"TracksByAuthor/SiSpacePointsSeedMaker_LargeD0/Tracks/Parameters", m_config.isITk);
76 m_resSiSPSeededFinderPlots = std::make_unique<InDetPerfPlot_Resolution>(this,
"TracksByAuthor/SiSPSeededFinder/Tracks/Resolution");
77 m_resInDetExtensionProcessorPlots = std::make_unique<InDetPerfPlot_Resolution>(this,
"TracksByAuthor/InDetExtensionProcessor/Tracks/Resolution");
78 m_resTRTSeededTrackFinderPlots = std::make_unique<InDetPerfPlot_Resolution>(this,
"TracksByAuthor/TRTSeededTrackFinder/Tracks/Resolution");
79 m_resTRTStandalonePlots = std::make_unique<InDetPerfPlot_Resolution>(this,
"TracksByAuthor/TRTStandalone/Tracks/Resolution");
80 m_resSiSpacePointsSeedMaker_LargeD0Plots = std::make_unique<InDetPerfPlot_Resolution>(this,
"TracksByAuthor/SiSpacePointsSeedMaker_LargeD0/Tracks/Resolution");
84 m_hitsSiSPSeededFinderPlots = std::make_unique<InDetPerfPlot_Hits>(this,
"TracksByAuthor/SiSPSeededFinder/Tracks/HitsOnTracks", m_config.isITk);
85 m_hitsInDetExtensionProcessorPlots = std::make_unique<InDetPerfPlot_Hits>(this,
"TracksByAuthor/InDetExtensionProcessor/Tracks/HitsOnTracks", m_config.isITk);
86 m_hitsTRTSeededTrackFinderPlots = std::make_unique<InDetPerfPlot_Hits>(this,
"TracksByAuthor/TRTSeededTrackFinder/Tracks/HitsOnTracks", m_config.isITk);
87 m_hitsTRTStandalonePlots = std::make_unique<InDetPerfPlot_Hits>(this,
"TracksByAuthor/TRTStandalone/Tracks/HitsOnTracks", m_config.isITk);
88 m_hitsSiSpacePointsSeedMaker_LargeD0Plots = std::make_unique<InDetPerfPlot_Hits>(this,
"TracksByAuthor/SiSpacePointsSeedMaker_LargeD0/Tracks/HitsOnTracks", m_config.isITk);
115 const float prob = tpTruthProbKeyAcc(particle);
127 std::bitset<xAOD::TrackPatternRecoInfo::NumberOfTrackRecoInfo> patternInfo = particle.patternRecoInfo();
136 if(isInDetExtensionProcessor and not (isTRTSeededTrackFinder or isSiSpacePointsSeedMaker_LargeD0))
m_resInDetExtensionProcessorPlots->fill(particle, truthParticle, weight);
166 if(
m_config.doTrackParametersPerAuthor){
167 std::bitset<xAOD::TrackPatternRecoInfo::NumberOfTrackRecoInfo> patternInfo = particle.patternRecoInfo();
169 bool isSiSpSeededFinder = patternInfo.test(0);
170 bool isInDetExtensionProcessor = patternInfo.test(3);
171 bool isTRTSeededTrackFinder = patternInfo.test(4);
172 bool isTRTStandalone = patternInfo.test(20);
173 bool isSiSpacePointsSeedMaker_LargeD0 = patternInfo.test(49);
192 if(
m_config.doHitsRecoTracksPlotsPerAuthor){
193 std::bitset<xAOD::TrackPatternRecoInfo::NumberOfTrackRecoInfo> patternInfo = particle.patternRecoInfo();
195 bool isSiSpSeededFinder = patternInfo.test(0);
196 bool isInDetExtensionProcessor = patternInfo.test(3);
197 bool isTRTSeededTrackFinder = patternInfo.test(4);
198 bool isTRTStandalone = patternInfo.test(20);
199 bool isSiSpacePointsSeedMaker_LargeD0 = patternInfo.test(49);
202 else if(isInDetExtensionProcessor and not (isTRTSeededTrackFinder or isSiSpacePointsSeedMaker_LargeD0))
m_hitsInDetExtensionProcessorPlots->fill(particle, mu, weight);
237 const bool isGood,
const unsigned int truthMu,
const float actualMu,
float weight) {
240 if(
m_config.doEfficienciesPerAuthor){
242 bool isGoodSiSPSeededFinder =
false;
243 bool isGoodInDetExtensionProcessor =
false;
244 bool isGoodTRTSeededTrackFinder =
false;
245 bool isGoodTRTStandalone =
false;
246 bool isGoodSiSpacePointsSeedMaker_LargeD0 =
false;
249 std::bitset<xAOD::TrackPatternRecoInfo::NumberOfTrackRecoInfo> patternInfo = track->patternRecoInfo();
251 bool isSiSpSeededFinder = patternInfo.test(0);
252 bool isInDetExtensionProcessor = patternInfo.test(3);
253 bool isTRTSeededTrackFinder = patternInfo.test(4);
254 bool isTRTStandalone = patternInfo.test(20);
255 bool isSiSpacePointsSeedMaker_LargeD0 = patternInfo.test(49);
257 isGoodSiSPSeededFinder = isSiSpSeededFinder and not isInDetExtensionProcessor;
258 isGoodInDetExtensionProcessor = isInDetExtensionProcessor and
259 not (isTRTSeededTrackFinder or isSiSpacePointsSeedMaker_LargeD0);
260 isGoodTRTSeededTrackFinder = isTRTSeededTrackFinder and not isTRTStandalone;
261 isGoodTRTStandalone = isTRTStandalone;
262 isGoodSiSpacePointsSeedMaker_LargeD0 = isSiSpacePointsSeedMaker_LargeD0;
267 truthMu, actualMu, weight);
269 truthMu, actualMu, weight);
271 truthMu, actualMu, weight);
274 truthMu, actualMu, weight);
304 if(isAssociatedTruth) {
308 std::bitset<xAOD::TrackPatternRecoInfo::NumberOfTrackRecoInfo> patternInfo = track.patternRecoInfo();
310 bool isSiSpSeededFinder = patternInfo.test(0);
311 bool isInDetExtensionProcessor = patternInfo.test(3);
312 bool isTRTSeededTrackFinder = patternInfo.test(4);
313 bool isTRTStandalone = patternInfo.test(20);
314 bool isSiSpacePointsSeedMaker_LargeD0 = patternInfo.test(49);
317 if(isInDetExtensionProcessor and not (isTRTSeededTrackFinder or isSiSpacePointsSeedMaker_LargeD0))
m_fakeInDetExtensionProcessorPlots->fill(track, isFake, weight, mu);