11 #include <tracking/ckf/svd/findlets/CKFToSVDFindlet.h>
13 #include <tracking/ckf/general/findlets/SpacePointTagger.icc.h>
14 #include <tracking/ckf/general/findlets/StateCreatorWithReversal.icc.h>
15 #include <tracking/ckf/general/findlets/StateCreator.icc.h>
16 #include <tracking/ckf/general/findlets/CKFRelationCreator.icc.h>
17 #include <tracking/ckf/general/findlets/TreeSearcher.icc.h>
18 #include <tracking/ckf/general/findlets/OverlapResolver.icc.h>
19 #include <tracking/ckf/general/findlets/StateRejecter.icc.h>
20 #include <tracking/ckf/general/findlets/ResultStorer.icc.h>
22 #include <tracking/trackFindingCDC/filters/base/ChooseableFilter.icc.h>
23 #include <tracking/ckf/svd/filters/relations/LayerSVDRelationFilter.icc.h>
25 #include <framework/core/ModuleParamList.h>
28 using namespace TrackFindingCDC;
34 addProcessingSignalListener(&m_dataHandler);
35 addProcessingSignalListener(&m_hitsLoader);
36 addProcessingSignalListener(&m_stateCreatorFromTracks);
37 addProcessingSignalListener(&m_stateCreatorFromHits);
38 addProcessingSignalListener(&m_relationCreator);
39 addProcessingSignalListener(&m_treeSearchFindlet);
40 addProcessingSignalListener(&m_overlapResolver);
41 addProcessingSignalListener(&m_spacePointTagger);
42 addProcessingSignalListener(&m_resultStorer);
47 Super::exposeParameters(moduleParamList, prefix);
49 m_dataHandler.exposeParameters(moduleParamList, prefix);
50 m_hitsLoader.exposeParameters(moduleParamList, prefix);
51 m_stateCreatorFromTracks.exposeParameters(moduleParamList, prefix);
52 m_stateCreatorFromHits.exposeParameters(moduleParamList, prefix);
53 m_relationCreator.exposeParameters(moduleParamList, prefix);
54 m_treeSearchFindlet.exposeParameters(moduleParamList, prefix);
55 m_overlapResolver.exposeParameters(moduleParamList, prefix);
56 m_spacePointTagger.exposeParameters(moduleParamList, prefix);
57 m_resultStorer.exposeParameters(moduleParamList, prefix);
59 moduleParamList->
addParameter(
"minimalHitRequirement", m_param_minimalHitRequirement,
60 "Minimal Hit requirement for the results (counted in space points)",
61 m_param_minimalHitRequirement);
63 moduleParamList->
getParameter<std::string>(
"firstHighFilter").setDefaultValue(
"mva_with_direction_check");
64 moduleParamList->
getParameter<std::string>(
"advanceHighFilter").setDefaultValue(
"advance");
65 moduleParamList->
getParameter<std::string>(
"secondHighFilter").setDefaultValue(
"mva");
66 moduleParamList->
getParameter<std::string>(
"updateHighFilter").setDefaultValue(
"fit");
67 moduleParamList->
getParameter<std::string>(
"thirdHighFilter").setDefaultValue(
"mva");
69 moduleParamList->
getParameter<std::string>(
"filter").setDefaultValue(
"mva");
71 moduleParamList->
getParameter<std::string>(
"hitFilter").setDefaultValue(
"sensor");
72 moduleParamList->
getParameter<std::string>(
"seedFilter").setDefaultValue(
"all");
73 moduleParamList->
getParameter<std::string>(
"preSeedFilter").setDefaultValue(
"loose");
74 moduleParamList->
getParameter<std::string>(
"preHitFilter").setDefaultValue(
"loose");
76 moduleParamList->
getParameter<std::string>(
"hitsSpacePointsStoreArrayName").setDefaultValue(
"SVDSpacePoints");
78 moduleParamList->
getParameter<
bool>(
"useAssignedHits").setDefaultValue(
false);
85 m_cdcRecoTrackVector.clear();
86 m_spacePointVector.clear();
93 m_filteredResults.clear();
98 m_dataHandler.apply(m_cdcRecoTrackVector);
99 m_hitsLoader.apply(m_spacePointVector);
101 B2DEBUG(50,
"Now have " << m_spacePointVector.size() <<
" hits.");
103 if (m_spacePointVector.empty() or m_cdcRecoTrackVector.empty()) {
107 m_stateCreatorFromTracks.apply(m_cdcRecoTrackVector, m_seedStates);
108 m_stateCreatorFromHits.apply(m_spacePointVector, m_states);
109 m_relationCreator.apply(m_seedStates, m_states, m_relations);
111 B2DEBUG(50,
"Created " << m_relations.size() <<
" relations.");
112 m_treeSearchFindlet.apply(m_seedStates, m_states, m_relations, m_results);
114 B2DEBUG(50,
"Having found " << m_results.size() <<
" results before overlap check");
117 return result.getHits().size() < m_param_minimalHitRequirement;
119 TrackFindingCDC::erase_remove_if(m_results, hasLowHitNumber);
121 m_overlapResolver.apply(m_results, m_filteredResults);
123 B2DEBUG(50,
"Having found " << m_filteredResults.size() <<
" results");
125 m_resultStorer.apply(m_filteredResults);
126 m_spacePointTagger.apply(m_filteredResults, m_spacePointVector);