Skip to content

Commit

Permalink
Merge pull request #40681 from trackreco/prop-fail-and-nans
Browse files Browse the repository at this point in the history
[MkFit] Consolidate nan checks and filtering, expose propagation fail flag to steering code
  • Loading branch information
cmsbuild committed Feb 9, 2023
2 parents e81e5c3 + eef793e commit c45c991
Show file tree
Hide file tree
Showing 32 changed files with 1,179 additions and 329 deletions.
35 changes: 26 additions & 9 deletions RecoTracker/MkFitCMS/src/runFunctions.cc
Expand Up @@ -61,9 +61,19 @@ namespace mkfit {

builder.findTracksCloneEngine();

if (itconf.m_pre_bkfit_filter) {
builder.filter_comb_cands(itconf.m_pre_bkfit_filter);
}
// Pre backward-fit filtering.
filter_candidates_func pre_filter;
if (do_backward_fit && itconf.m_pre_bkfit_filter)
pre_filter = [&](const TrackCand &tc, const MkJob &jb) -> bool {
return itconf.m_pre_bkfit_filter(tc, jb) && StdSeq::qfilter_nan_n_silly<TrackCand>(tc, jb);
};
else if (itconf.m_pre_bkfit_filter)
pre_filter = itconf.m_pre_bkfit_filter;
else if (do_backward_fit)
pre_filter = StdSeq::qfilter_nan_n_silly<TrackCand>;
// pre_filter can be null if we are not doing backward fit as nan_n_silly will be run below.
if (pre_filter)
builder.filter_comb_cands(pre_filter, true);

job.switch_to_backward();

Expand All @@ -77,15 +87,22 @@ namespace mkfit {
if (itconf.m_backward_search) {
builder.beginBkwSearch();
builder.findTracksCloneEngine(SteeringParams::IT_BkwSearch);
builder.endBkwSearch();
}

if (itconf.m_post_bkfit_filter) {
builder.filter_comb_cands(itconf.m_post_bkfit_filter);
}
}

builder.filter_comb_cands(StdSeq::qfilter_nan_n_silly<TrackCand>);
// Post backward-fit filtering.
filter_candidates_func post_filter;
if (do_backward_fit && itconf.m_post_bkfit_filter)
post_filter = [&](const TrackCand &tc, const MkJob &jb) -> bool {
return itconf.m_post_bkfit_filter(tc, jb) && StdSeq::qfilter_nan_n_silly<TrackCand>(tc, jb);
};
else
post_filter = StdSeq::qfilter_nan_n_silly<TrackCand>;
// post_filter is always at least doing nan_n_silly filter.
builder.filter_comb_cands(post_filter, true);

if (do_backward_fit && itconf.m_backward_search)
builder.endBkwSearch();

builder.export_best_comb_cands(out_tracks, true);

Expand Down
16 changes: 11 additions & 5 deletions RecoTracker/MkFitCMS/standalone/Makefile
Expand Up @@ -7,11 +7,12 @@ CMS_DIR := ${SRCDIR}/RecoTracker/MkFitCMS
LIB_CMS := ../libMicCMS.so
MAIN := ../mkFit
WRMEMF := ../writeMemoryFile
DICTPCM := ../DictsDict_rdict.pcm
WMF_DICT_PCM := ../WriteMemFileDict_rdict.pcm
SHELL_DICT_PCM := ../ShellDict_rdict.pcm

TGTS := ${LIB_CMS} ${MAIN}
ifdef WITH_ROOT
TGTS += ${WRMEMF} ${DICTPCM}
TGTS += ${WRMEMF} ${WMF_DICT_PCM}
endif

.PHONY: all clean distclean
Expand All @@ -21,9 +22,14 @@ all: ${TGTS}
SRCS := $(wildcard ${CMS_DIR}/src/*.cc) $(wildcard ${SACMS}/*.cc)
ifdef WITH_ROOT
SRCS += ${SACMS}/tkNtuple/WriteMemoryFile.cc
DictsDict.cc ${DICTPCM}: ${SACMS}/tkNtuple/DictsLinkDef.h
rootcint -v3 -f $@ $<
mv DictsDict_rdict.pcm ${DICTPCM}
WriteMemFileDict.cc ${WMF_DICT_PCM}: ${SACMS}/tkNtuple/DictsLinkDef.h
rootcling -f WriteMemFileDict.cc $<
mv WriteMemFileDict_rdict.pcm ${WMF_DICT_PCM}

SRCS += ShellDict.cc
ShellDict.cc ${SHELL_DICT_PCM}: ${SACMS}/Shell.h ${SACMS}/ShellLinkDef.h
rootcling -f ShellDict.cc ${SACMS}/Shell.h ${SACMS}/ShellLinkDef.h
mv ShellDict_rdict.pcm ${SHELL_DICT_PCM}
endif
SRCB := $(notdir ${SRCS})
DEPS := $(SRCB:.cc=.d)
Expand Down
7 changes: 1 addition & 6 deletions RecoTracker/MkFitCMS/standalone/MkStandaloneSeqs.cc
Expand Up @@ -139,7 +139,7 @@ namespace mkfit {
const auto label = tkcand.label();
TrackExtra extra(label);

// track_print(tkcand, "XXX");
// track_print(event, tkcand, "quality_process -> track_print:");

// access temp seed trk and set matching seed hits
const auto &seed = event->seedTracks_[itrack];
Expand Down Expand Up @@ -188,11 +188,6 @@ namespace mkfit {
// printf("FOUND_LABEL %6d pT_mc= %8.2f eta_mc= %8.2f event= %d\n", label, pTmc, etamc, event->evtID());
}

#ifdef SELECT_SEED_LABEL
if (label == SELECT_SEED_LABEL)
track_print(tkcand, "MkBuilder::quality_process SELECT_SEED_LABEL:");
#endif

float pTcmssw = 0.f, etacmssw = 0.f, phicmssw = 0.f;
int nfoundcmssw = -1;
if (Config::dumpForPlots && Config::readCmsswTracks) {
Expand Down

0 comments on commit c45c991

Please sign in to comment.