32 static constexpr int NO_TARGET{-1};
37 TimeSplitter(
const DateAndTime &start,
const DateAndTime &stop,
const int value = DEFAULT_TARGET);
42 const std::map<DateAndTime, int> &getSplittersMap()
const;
43 std::string getWorkspaceIndexName(
const int workspaceIndex,
const int numericalShift = 0)
const;
45 int valueAtTime(
const DateAndTime &time)
const;
46 void addROI(
const DateAndTime &start,
const DateAndTime &stop,
const int value);
49 std::set<int> outputWorkspaceIndices()
const;
54 std::size_t numRawValues()
const;
55 const std::map<std::string, int> &getNameTargetMap()
const;
56 const std::map<int, std::string> &getTargetNameMap()
const;
59 void splitEventList(
const EventList &events, std::map<int, EventList *> &partials,
const bool pulseTof =
false,
60 const bool tofCorrect =
false,
const double factor = 1.0,
const double shift = 0.0)
const;
62 std::vector<std::pair<int, std::pair<size_t, size_t>>>
63 calculate_target_indices(
const std::vector<DateAndTime> ×)
const;
65 const Kernel::TimeROI combinedTimeROI(
const int64_t start_offset = 0)
const;
68 std::string debugPrint()
const;
71 static constexpr int DEFAULT_TARGET{0};
72 void clearAndReplace(
const DateAndTime &start,
const DateAndTime &stop,
const int value);
74 template <
typename EventType>
75 void splitEventVec(
const std::vector<EventType> &events, std::map<int, EventList *> &partials,
const bool pulseTof,
76 const bool tofCorrect,
const double factor,
const double shift)
const;
77 template <
typename EventType>
78 void splitEventVec(
const std::function<
const DateAndTime(
const EventType &)> &timeCalc,
79 const std::vector<EventType> &events, std::map<int, EventList *> &partials)
const;
82 void resetCachedPartialTimeROIs()
const;
83 void resetCachedSplittingIntervals()
const;
85 void rebuildCachedPartialTimeROIs()
const;
86 void rebuildCachedSplittingIntervals(
const bool includeNoTarget =
true)
const;
97 mutable bool m_validCachedPartialTimeROIs{
false};
98 mutable bool m_validCachedSplittingIntervals_All{
false};
99 mutable bool m_validCachedSplittingIntervals_WithValidTargets{
false};