26 if (
m_config.doNTracks)
m_nTracks = std::make_unique<InDetPerfPlot_nTracks>(
this,
"Tracks/Tracks");
29 if (
m_config.doFakePlots)
m_fakePlots= std::make_unique<InDetPerfPlot_FakeRate>(
this,
"Tracks/FakeRate");
42 if (
m_config.doResolutionPlotSecd)
m_resolutionPlotSecd = std::make_unique<InDetPerfPlot_Resolution>(
this,
"Tracks/Matched/Resolutions/Secondary");
49 m_effSiSPSeededFinderPlots = std::make_unique<InDetPerfPlot_Efficiency>(this,
"TracksByAuthor/SiSPSeededFinder/Tracks/Efficiency", false, m_config.isITk);
50 m_effInDetExtensionProcessorPlots = std::make_unique<InDetPerfPlot_Efficiency>(this,
"TracksByAuthor/InDetExtensionProcessor/Tracks/Efficiency", false, m_config.isITk);
51 m_effTRTSeededTrackFinderPlots = std::make_unique<InDetPerfPlot_Efficiency>(this,
"TracksByAuthor/TRTSeededTrackFinder/Tracks/Efficiency", false, m_config.isITk);
52 m_effTRTStandalonePlots = std::make_unique<InDetPerfPlot_Efficiency>(this,
"TracksByAuthor/TRTStandalone/Tracks/Efficiency", false, m_config.isITk);
53 m_effSiSpacePointsSeedMaker_LargeD0Plots = std::make_unique<InDetPerfPlot_Efficiency>(this,
"TracksByAuthor/SiSpacePointsSeedMaker_LargeD0/Tracks/Efficiency", false, m_config.isITk);
57 m_fakeSiSPSeededFinderPlots = std::make_unique<InDetPerfPlot_FakeRate>(this,
"TracksByAuthor/SiSPSeededFinder/Tracks/FakeRate");
58 m_fakeInDetExtensionProcessorPlots = std::make_unique<InDetPerfPlot_FakeRate>(this,
"TracksByAuthor/InDetExtensionProcessor/Tracks/FakeRate");
59 m_fakeTRTSeededTrackFinderPlots = std::make_unique<InDetPerfPlot_FakeRate>(this,
"TracksByAuthor/TRTSeededTrackFinder/Tracks/FakeRate");
60 m_fakeTRTStandalonePlots = std::make_unique<InDetPerfPlot_FakeRate>(this,
"TracksByAuthor/TRTStandalone/Tracks/FakeRate");
61 m_fakeSiSpacePointsSeedMaker_LargeD0Plots = std::make_unique<InDetPerfPlot_FakeRate>(this,
"TracksByAuthor/SiSpacePointsSeedMaker_LargeD0/Tracks/FakeRate");
65 m_trkParaSiSPSeededFinderPlots = std::make_unique<InDetPerfPlot_TrackParameters>(this,
"TracksByAuthor/SiSPSeededFinder/Tracks/Parameters", m_config.isITk);
66 m_trkParaInDetExtensionProcessorPlots = std::make_unique<InDetPerfPlot_TrackParameters>(this,
"TracksByAuthor/InDetExtensionProcessor/Tracks/Parameters", m_config.isITk);
67 m_trkParaTRTSeededTrackFinderPlots = std::make_unique<InDetPerfPlot_TrackParameters>(this,
"TracksByAuthor/TRTSeededTrackFinder/Tracks/Parameters", m_config.isITk);
68 m_trkParaTRTStandalonePlots = std::make_unique<InDetPerfPlot_TrackParameters>(this,
"TracksByAuthor/TRTStandalone/Tracks/Parameters", m_config.isITk);
69 m_trkParaSiSpacePointsSeedMaker_LargeD0Plots= std::make_unique<InDetPerfPlot_TrackParameters>(this,
"TracksByAuthor/SiSpacePointsSeedMaker_LargeD0/Tracks/Parameters", m_config.isITk);
73 m_resSiSPSeededFinderPlots = std::make_unique<InDetPerfPlot_Resolution>(this,
"TracksByAuthor/SiSPSeededFinder/Tracks/Resolution");
74 m_resInDetExtensionProcessorPlots = std::make_unique<InDetPerfPlot_Resolution>(this,
"TracksByAuthor/InDetExtensionProcessor/Tracks/Resolution");
75 m_resTRTSeededTrackFinderPlots = std::make_unique<InDetPerfPlot_Resolution>(this,
"TracksByAuthor/TRTSeededTrackFinder/Tracks/Resolution");
76 m_resTRTStandalonePlots = std::make_unique<InDetPerfPlot_Resolution>(this,
"TracksByAuthor/TRTStandalone/Tracks/Resolution");
77 m_resSiSpacePointsSeedMaker_LargeD0Plots = std::make_unique<InDetPerfPlot_Resolution>(this,
"TracksByAuthor/SiSpacePointsSeedMaker_LargeD0/Tracks/Resolution");
81 m_hitsSiSPSeededFinderPlots = std::make_unique<InDetPerfPlot_Hits>(this,
"TracksByAuthor/SiSPSeededFinder/Tracks/HitsOnTracks", m_config.isITk);
82 m_hitsInDetExtensionProcessorPlots = std::make_unique<InDetPerfPlot_Hits>(this,
"TracksByAuthor/InDetExtensionProcessor/Tracks/HitsOnTracks", m_config.isITk);
83 m_hitsTRTSeededTrackFinderPlots = std::make_unique<InDetPerfPlot_Hits>(this,
"TracksByAuthor/TRTSeededTrackFinder/Tracks/HitsOnTracks", m_config.isITk);
84 m_hitsTRTStandalonePlots = std::make_unique<InDetPerfPlot_Hits>(this,
"TracksByAuthor/TRTStandalone/Tracks/HitsOnTracks", m_config.isITk);
85 m_hitsSiSpacePointsSeedMaker_LargeD0Plots = std::make_unique<InDetPerfPlot_Hits>(this,
"TracksByAuthor/SiSpacePointsSeedMaker_LargeD0/Tracks/HitsOnTracks", m_config.isITk);
112 const float prob = tpTruthProbKeyAcc(particle);
124 std::bitset<xAOD::TrackPatternRecoInfo::NumberOfTrackRecoInfo> patternInfo = particle.patternRecoInfo();
133 if(isInDetExtensionProcessor and not (isTRTSeededTrackFinder or isSiSpacePointsSeedMaker_LargeD0))
m_resInDetExtensionProcessorPlots->fill(particle, truthParticle, weight);
162 if(
m_config.doTrackParametersPerAuthor){
163 std::bitset<xAOD::TrackPatternRecoInfo::NumberOfTrackRecoInfo> patternInfo = particle.patternRecoInfo();
165 bool isSiSpSeededFinder = patternInfo.test(0);
166 bool isInDetExtensionProcessor = patternInfo.test(3);
167 bool isTRTSeededTrackFinder = patternInfo.test(4);
168 bool isTRTStandalone = patternInfo.test(20);
169 bool isSiSpacePointsSeedMaker_LargeD0 = patternInfo.test(49);
188 if(
m_config.doHitsRecoTracksPlotsPerAuthor){
189 std::bitset<xAOD::TrackPatternRecoInfo::NumberOfTrackRecoInfo> patternInfo = particle.patternRecoInfo();
191 bool isSiSpSeededFinder = patternInfo.test(0);
192 bool isInDetExtensionProcessor = patternInfo.test(3);
193 bool isTRTSeededTrackFinder = patternInfo.test(4);
194 bool isTRTStandalone = patternInfo.test(20);
195 bool isSiSpacePointsSeedMaker_LargeD0 = patternInfo.test(49);
198 else if(isInDetExtensionProcessor and not (isTRTSeededTrackFinder or isSiSpacePointsSeedMaker_LargeD0))
m_hitsInDetExtensionProcessorPlots->fill(particle, mu, weight);
233 const bool isGood,
const unsigned int truthMu,
const float actualMu,
float weight) {
236 if(
m_config.doEfficienciesPerAuthor){
238 bool isGoodSiSPSeededFinder =
false;
239 bool isGoodInDetExtensionProcessor =
false;
240 bool isGoodTRTSeededTrackFinder =
false;
241 bool isGoodTRTStandalone =
false;
242 bool isGoodSiSpacePointsSeedMaker_LargeD0 =
false;
245 std::bitset<xAOD::TrackPatternRecoInfo::NumberOfTrackRecoInfo> patternInfo = track->patternRecoInfo();
247 bool isSiSpSeededFinder = patternInfo.test(0);
248 bool isInDetExtensionProcessor = patternInfo.test(3);
249 bool isTRTSeededTrackFinder = patternInfo.test(4);
250 bool isTRTStandalone = patternInfo.test(20);
251 bool isSiSpacePointsSeedMaker_LargeD0 = patternInfo.test(49);
253 isGoodSiSPSeededFinder = isSiSpSeededFinder and not isInDetExtensionProcessor;
254 isGoodInDetExtensionProcessor = isInDetExtensionProcessor and
255 not (isTRTSeededTrackFinder or isSiSpacePointsSeedMaker_LargeD0);
256 isGoodTRTSeededTrackFinder = isTRTSeededTrackFinder and not isTRTStandalone;
257 isGoodTRTStandalone = isTRTStandalone;
258 isGoodSiSpacePointsSeedMaker_LargeD0 = isSiSpacePointsSeedMaker_LargeD0;
263 truthMu, actualMu, weight);
265 truthMu, actualMu, weight);
267 truthMu, actualMu, weight);
270 truthMu, actualMu, weight);
300 if(isAssociatedTruth) {
304 std::bitset<xAOD::TrackPatternRecoInfo::NumberOfTrackRecoInfo> patternInfo = track.patternRecoInfo();
306 bool isSiSpSeededFinder = patternInfo.test(0);
307 bool isInDetExtensionProcessor = patternInfo.test(3);
308 bool isTRTSeededTrackFinder = patternInfo.test(4);
309 bool isTRTStandalone = patternInfo.test(20);
310 bool isSiSpacePointsSeedMaker_LargeD0 = patternInfo.test(49);
313 if(isInDetExtensionProcessor and not (isTRTSeededTrackFinder or isSiSpacePointsSeedMaker_LargeD0))
m_fakeInDetExtensionProcessorPlots->fill(track, isFake, weight, mu);