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");
50 m_effSiSPSeededFinderPlots = std::make_unique<InDetPerfPlot_Efficiency>(this,
"TracksByAuthor/SiSPSeededFinder/Tracks/Efficiency", false, m_config.isITk);
51 m_effInDetExtensionProcessorPlots = std::make_unique<InDetPerfPlot_Efficiency>(this,
"TracksByAuthor/InDetExtensionProcessor/Tracks/Efficiency", false, m_config.isITk);
52 m_effTRTSeededTrackFinderPlots = std::make_unique<InDetPerfPlot_Efficiency>(this,
"TracksByAuthor/TRTSeededTrackFinder/Tracks/Efficiency", false, m_config.isITk);
53 m_effTRTStandalonePlots = std::make_unique<InDetPerfPlot_Efficiency>(this,
"TracksByAuthor/TRTStandalone/Tracks/Efficiency", false, m_config.isITk);
54 m_effSiSpacePointsSeedMaker_LargeD0Plots = std::make_unique<InDetPerfPlot_Efficiency>(this,
"TracksByAuthor/SiSpacePointsSeedMaker_LargeD0/Tracks/Efficiency", false, m_config.isITk);
58 m_fakeSiSPSeededFinderPlots = std::make_unique<InDetPerfPlot_FakeRate>(this,
"TracksByAuthor/SiSPSeededFinder/Tracks/FakeRate");
59 m_fakeInDetExtensionProcessorPlots = std::make_unique<InDetPerfPlot_FakeRate>(this,
"TracksByAuthor/InDetExtensionProcessor/Tracks/FakeRate");
60 m_fakeTRTSeededTrackFinderPlots = std::make_unique<InDetPerfPlot_FakeRate>(this,
"TracksByAuthor/TRTSeededTrackFinder/Tracks/FakeRate");
61 m_fakeTRTStandalonePlots = std::make_unique<InDetPerfPlot_FakeRate>(this,
"TracksByAuthor/TRTStandalone/Tracks/FakeRate");
62 m_fakeSiSpacePointsSeedMaker_LargeD0Plots = std::make_unique<InDetPerfPlot_FakeRate>(this,
"TracksByAuthor/SiSpacePointsSeedMaker_LargeD0/Tracks/FakeRate");
66 m_trkParaSiSPSeededFinderPlots = std::make_unique<InDetPerfPlot_TrackParameters>(this,
"TracksByAuthor/SiSPSeededFinder/Tracks/Parameters", m_config.hasHGTDReco);
67 m_trkParaInDetExtensionProcessorPlots = std::make_unique<InDetPerfPlot_TrackParameters>(this,
"TracksByAuthor/InDetExtensionProcessor/Tracks/Parameters", m_config.hasHGTDReco);
68 m_trkParaTRTSeededTrackFinderPlots = std::make_unique<InDetPerfPlot_TrackParameters>(this,
"TracksByAuthor/TRTSeededTrackFinder/Tracks/Parameters", m_config.hasHGTDReco);
69 m_trkParaTRTStandalonePlots = std::make_unique<InDetPerfPlot_TrackParameters>(this,
"TracksByAuthor/TRTStandalone/Tracks/Parameters", m_config.hasHGTDReco);
70 m_trkParaSiSpacePointsSeedMaker_LargeD0Plots= std::make_unique<InDetPerfPlot_TrackParameters>(this,
"TracksByAuthor/SiSpacePointsSeedMaker_LargeD0/Tracks/Parameters", m_config.hasHGTDReco);
74 m_resSiSPSeededFinderPlots = std::make_unique<InDetPerfPlot_Resolution>(this,
"TracksByAuthor/SiSPSeededFinder/Tracks/Resolution", false, m_config.hasHGTDReco);
75 m_resInDetExtensionProcessorPlots = std::make_unique<InDetPerfPlot_Resolution>(this,
"TracksByAuthor/InDetExtensionProcessor/Tracks/Resolution", false, m_config.hasHGTDReco);
76 m_resTRTSeededTrackFinderPlots = std::make_unique<InDetPerfPlot_Resolution>(this,
"TracksByAuthor/TRTSeededTrackFinder/Tracks/Resolution", false, m_config.hasHGTDReco);
77 m_resTRTStandalonePlots = std::make_unique<InDetPerfPlot_Resolution>(this,
"TracksByAuthor/TRTStandalone/Tracks/Resolution", false, m_config.hasHGTDReco);
78 m_resSiSpacePointsSeedMaker_LargeD0Plots = std::make_unique<InDetPerfPlot_Resolution>(this,
"TracksByAuthor/SiSpacePointsSeedMaker_LargeD0/Tracks/Resolution", false, m_config.hasHGTDReco);
82 m_hitsSiSPSeededFinderPlots = std::make_unique<InDetPerfPlot_Hits>(this,
"TracksByAuthor/SiSPSeededFinder/Tracks/HitsOnTracks", m_config.isITk);
83 m_hitsInDetExtensionProcessorPlots = std::make_unique<InDetPerfPlot_Hits>(this,
"TracksByAuthor/InDetExtensionProcessor/Tracks/HitsOnTracks", m_config.isITk);
84 m_hitsTRTSeededTrackFinderPlots = std::make_unique<InDetPerfPlot_Hits>(this,
"TracksByAuthor/TRTSeededTrackFinder/Tracks/HitsOnTracks", m_config.isITk);
85 m_hitsTRTStandalonePlots = std::make_unique<InDetPerfPlot_Hits>(this,
"TracksByAuthor/TRTStandalone/Tracks/HitsOnTracks", m_config.isITk);
86 m_hitsSiSpacePointsSeedMaker_LargeD0Plots = std::make_unique<InDetPerfPlot_Hits>(this,
"TracksByAuthor/SiSpacePointsSeedMaker_LargeD0/Tracks/HitsOnTracks", m_config.isITk);
111 const float prob = tpTruthProbKeyAcc(particle);
123 std::bitset<xAOD::TrackPatternRecoInfo::NumberOfTrackRecoInfo> patternInfo = particle.patternRecoInfo();
132 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 std::bitset<xAOD::TrackPatternRecoInfo::NumberOfTrackRecoInfo> patternInfo = track.patternRecoInfo();
302 bool isSiSpSeededFinder = patternInfo.test(0);
303 bool isInDetExtensionProcessor = patternInfo.test(3);
304 bool isTRTSeededTrackFinder = patternInfo.test(4);
305 bool isTRTStandalone = patternInfo.test(20);
306 bool isSiSpacePointsSeedMaker_LargeD0 = patternInfo.test(49);
309 if(isInDetExtensionProcessor and not (isTRTSeededTrackFinder or isSiSpacePointsSeedMaker_LargeD0))
m_fakeInDetExtensionProcessorPlots->fill(track, isFake, weight, mu);