10 #include <tracking/eventTimeExtraction/findlets/FullGridDriftLengthTrackTimeExtractor.h>
11 #include <tracking/eventTimeExtraction/findlets/BaseEventTimeExtractor.icc.h>
12 #include <tracking/eventTimeExtraction/findlets/GridEventTimeExtractor.icc.h>
13 #include <tracking/eventTimeExtraction/findlets/IterativeEventTimeExtractor.icc.h>
14 #include <tracking/trackFindingCDC/utilities/StringManipulation.h>
15 #include <tracking/dataobjects/RecoTrack.h>
17 #include <framework/core/ModuleParamList.templateDetails.h>
20 using namespace TrackFindingCDC;
26 addProcessingSignalListener(&m_finalExtractor);
27 addProcessingSignalListener(&m_gridExtractor);
33 m_gridExtractor.exposeParameters(moduleParamList, prefixed(
"Grid", prefix));
34 m_finalExtractor.exposeParameters(moduleParamList, prefixed(
"Refiner", prefix));
36 moduleParamList->
getParameter<
unsigned int>(
"GridIterations").setDefaultValue(1);
37 moduleParamList->
getParameter<
bool>(
"RefinerUseLastEventT0").setDefaultValue(
true);
43 const auto& temporaryT0Extractions = m_eventT0->getTemporaryEventT0s(Const::CDC);
44 B2ASSERT(
"There should only be a single or none extraction at this stage!", temporaryT0Extractions.size() <= 1);
46 if (temporaryT0Extractions.empty()) {
47 m_gridExtractor.apply(recoTracks);
49 if (not m_gridExtractor.wasSuccessful()) {
50 m_wasSuccessful =
false;
55 m_eventT0->setEventT0(temporaryT0Extractions[0]);
58 m_finalExtractor.apply(recoTracks);
59 m_wasSuccessful = m_finalExtractor.wasSuccessful();
61 if (not wasSuccessful()) {
62 B2DEBUG(50,
"Resetting the event t0 as the final extraction was not successful.");