Belle II Software development
HitBasedT0Extractor Class Referencefinalabstract

Findlet to extract the T0 time of an event only using CDC Hits. More...

#include <HitBasedT0Extractor.h>

Inheritance diagram for HitBasedT0Extractor:
BaseEventTimeExtractor< TrackFindingCDC::CDCWireHit & > Findlet< AIOTypes... > CompositeProcessingSignalListener ProcessingSignalListener

Public Types

using IOTypes = std::tuple< AIOTypes... >
 Types that should be served to apply on invokation.
 
using IOVectors = std::tuple< std::vector< AIOTypes >... >
 Vector types that should be served to apply on invokation.
 

Public Member Functions

 HitBasedT0Extractor ()=default
 Constructor registering the subordinary findlets to the processing signal distribution machinery.
 
virtual ~HitBasedT0Extractor ()=default
 Make destructor of interface virtual.
 
std::string getDescription () override final
 Short description of the findlet.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) override final
 Expose the parameters to a module.
 
void apply (std::vector< TrackFindingCDC::CDCWireHit > &inputWireHits) override final
 Collects all Wire Hits and executes the t0 fit.
 
void initialize () override final
 Initialize the event meta data.
 
bool wasSuccessful () const
 Returns true if the last run t0 extraction was successful.
 
virtual void beginEvent () override
 Create the event t0 store obj ptr.
 
virtual void apply (ToVector< AIOTypes > &... ioVectors)=0
 Main function executing the algorithm.
 
void beginRun () override
 Receive and dispatch signal for the beginning of a new run.
 
void endRun () override
 Receive and dispatch signal for the end of the run.
 
void terminate () override
 Receive and dispatch Signal for termination of the event processing.
 

Protected Types

using ToVector = typename ToVectorImpl< T >::Type
 Short hand for ToRangeImpl.
 

Protected Member Functions

void resetEventT0 () const
 Reset the t0 value to cached value if it exists or clear it otherwise.
 
void addProcessingSignalListener (ProcessingSignalListener *psl)
 Register a processing signal listener to be notified.
 
int getNProcessingSignalListener ()
 Get the number of currently registered listeners.
 

Protected Attributes

StoreObjPtr< EventT0m_eventT0
 Pointer to the storage of the eventwise T0 estimation in the data store.
 
bool m_wasSuccessful
 Variable to show that the execution was successful.
 

Private Types

using Super = BaseEventTimeExtractor< TrackFindingCDC::CDCWireHit & >
 Type of the base class.
 

Private Attributes

unsigned int m_param_minHitCount = 20
 minimum number of hits
 
float m_param_searchWindow = 70.0f
 the window (+-m_param_searchWindow) in ns where to search for the best t0
 
float m_param_fitWindow = 100.0f
 the space (+-m_param_fitWindow) in ns used to fit the t0
 
int m_param_binCountTimeHistogram = 50
 number of bins in the timing histogram
 
bool m_param_rejectByBackgroundFlag = false
 don't use hits for the fit which have been flagged as background
 
bool m_param_rejectIfNotTakenFlag = true
 don't use hits for the fit which have not been assigned to any track
 
bool m_param_storeAllFits = false
 store an image of the histogram and fit result, for debug purpose only
 
float m_param_rejectIfChiSquareLargerThan = std::numeric_limits<float>::max()
 largest allowable chi2 value
 
float m_param_rejectIfUncertaintyLargerThan = 12.0f
 largest allowable uncertainty value
 
float m_param_refitWindow = 50.0f
 the width of the window in ns (+- m_param_refitWindow) used to refit the final t0 value
 
StoreObjPtr< EventMetaDatam_eventMetaData
 access to event nr for debugging purposes
 
bool m_param_overwriteExistingEstimation
 Parameter if it is fine to overwrite the current EventT0.
 
std::optional< EventT0::EventT0Componentm_eventT0Before
 Storage for the event t0 before this module ran.
 
std::vector< ProcessingSignalListener * > m_subordinaryProcessingSignalListeners
 References to subordinary signal processing listener contained in this findlet.
 
bool m_initialized = false
 Flag to keep track whether initialization happend before.
 
bool m_terminated = false
 Flag to keep track whether termination happend before.
 
std::string m_initializedAs
 Name of the type during initialisation.
 

Detailed Description

Findlet to extract the T0 time of an event only using CDC Hits.

Definition at line 27 of file HitBasedT0Extractor.h.

Member Typedef Documentation

◆ IOTypes

using IOTypes = std::tuple<AIOTypes...>
inherited

Types that should be served to apply on invokation.

Definition at line 30 of file Findlet.h.

◆ IOVectors

using IOVectors = std::tuple< std::vector<AIOTypes>... >
inherited

Vector types that should be served to apply on invokation.

Definition at line 53 of file Findlet.h.

◆ Super

Type of the base class.

Definition at line 31 of file HitBasedT0Extractor.h.

◆ ToVector

using ToVector = typename ToVectorImpl<T>::Type
protectedinherited

Short hand for ToRangeImpl.

Definition at line 49 of file Findlet.h.

Member Function Documentation

◆ addProcessingSignalListener()

void addProcessingSignalListener ( ProcessingSignalListener psl)
protectedinherited

Register a processing signal listener to be notified.

Definition at line 55 of file CompositeProcessingSignalListener.cc.

56{
58}
std::vector< ProcessingSignalListener * > m_subordinaryProcessingSignalListeners
References to subordinary signal processing listener contained in this findlet.

◆ apply()

void apply ( std::vector< TrackFindingCDC::CDCWireHit > &  inputWireHits)
finaloverride

Collects all Wire Hits and executes the t0 fit.

Definition at line 98 of file HitBasedT0Extractor.cc.

99{
100 const auto timeHistogramName = "HitBasedT0Extractor_time_hist";
101 const std::string debugImageName = "HitBasedT0Extractor_debug_" + boost::lexical_cast<std::string>
102 (m_eventMetaData->getEvent()) + ".png";
103
104 auto timingHistgram = TH1D(timeHistogramName, timeHistogramName,
107
108 // Enable batch mode - we do not want to show the canvas etc.
109 auto batchGuard = ScopeGuard::guardBatchMode();
110
111 TCanvas canvas(debugImageName.c_str(), debugImageName.c_str(), 800, 600);
112
113 if (inputWireHits.size() == 0) {
114 B2WARNING("No input CDC hits available for the CDC hit based t0 extraction.");
115 return;
116 }
117
118 for (auto const& wireHit : inputWireHits) {
119
121 && wireHit.getAutomatonCell().hasBackgroundFlag())
122 continue;
123
125 && !wireHit.getAutomatonCell().hasTakenFlag())
126 continue;
127
128 // the taken flag is also set for background hits. Therefore we must
129 // also hits to be also classified as background to not get flooded
130 // with background hits
132 && wireHit.getAutomatonCell().hasTakenFlag()
133 && wireHit.getAutomatonCell().hasBackgroundFlag())
134 continue;
135
136 // Attention: at this stage we use the drift time that was set when the WireHits were created.
137 // We will just *assume* that it was zero at this time!
138 timingHistgram.Fill(wireHit.getDriftTime());
139 }
140
141 if (timingHistgram.GetEntries() < m_param_minHitCount) {
142 B2DEBUG(25, "Only " << timingHistgram.GetEntries() << " hits satisfied the requirements for t0 extraction, " << m_param_minHitCount
143 << " are required.");
144 return;
145 }
146
147 // add an overall offset of 1 to not have to care about empty bins in
148 // the cumulated plot
149 timingHistgram.SetBinContent(1, timingHistgram.GetBinContent(1) + 1);
150
151 B2DEBUG(25,
152 "Filled histogram with " << timingHistgram.GetEntries() << " Entries");
153
154 std::unique_ptr<TH1> cumTimingHistogram(timingHistgram.GetCumulative());
155 // detach histogram from any directory so we can delete it ourselves
156 cumTimingHistogram->SetDirectory(0);
157
158 // set the error for each bin taking into account that the bin content is the
159 // cumulated content of previous bins
160 double errPrevBin = 0.0f;
161 double errThisBin = 0.0f;
162 for (int i = 0; i < cumTimingHistogram->GetNbinsX(); i++) {
163 if (i > 0) {
164 const double prevEntries = cumTimingHistogram->GetBinContent(i - 1);
165 const double addedEntries = cumTimingHistogram->GetBinContent(i) - prevEntries;
166 if (addedEntries > 0.0) {
167 // combine the error of the previous bin with the new entries of this bin
168 const double errNewEntries = 1.0 / std::sqrt(addedEntries);
169 errThisBin = errPrevBin + errNewEntries;
170 }
171
172 } else {
173 if (cumTimingHistogram->GetBinContent(i) > 0) {
174 errThisBin = 1.0 / std::sqrt(cumTimingHistogram->GetBinContent(i));
175 }
176 }
177
178 cumTimingHistogram->SetBinError(i, errThisBin);
179 errPrevBin = errThisBin;
180 }
181
183 cumTimingHistogram->Draw();
184 }
185
186 auto rangeBkg = std::make_pair(-m_param_fitWindow, -m_param_searchWindow);
187 auto rangeSig = std::make_pair(m_param_searchWindow, m_param_fitWindow);
188 // fit the background and signal side of the time distribution
189 TF1 fitfuncBkg = TF1("HitBasedT0Extractor_fit_bkg", "[0]*x + [1]",
190 rangeBkg.first, rangeBkg.second);
191 TF1 fitfuncSig = TF1("HitBasedT0Extractor_fit_sig", "[0]*x + [1]",
192 rangeSig.first, rangeSig.second);
193
194 auto fitresBkg = cumTimingHistogram->Fit(&fitfuncBkg, "LQS", "",
195 rangeBkg.first, rangeBkg.second);
196 auto fitresSig = cumTimingHistogram->Fit(&fitfuncSig, "LQS", "",
197 rangeSig.first, rangeSig.second);
198
200 fitfuncBkg.Draw("SAME");
201 fitfuncSig.Draw("SAME");
202 }
203
204 TF1 fitfuncSegmented = TF1("HitBasedT0Extractor_fit_seg",
205 "[1]*(x+TMath::Abs(x+[3])) + [2]*(x-TMath::Abs(x+[3])) + [0]",
207
208 if (fitresSig->IsValid() && fitresBkg->IsValid()) {
209 double t0_estimate = (fitresBkg->Parameter(1) - fitresSig->Parameter(1))
210 / (fitresSig->Parameter(0) - fitresBkg->Parameter(0));
211
212 // apply segmented fit
213 std::array<double, 4> fit_params = { 0, // = overall background offset
214 fitresSig->Parameter(0), // signal hits slope
215 fitresBkg->Parameter(0), // background hits slope
216 0.0 // breaking point shift
217 };
218
219 // use t0 estimate if it is something useful
220 if (std::abs(t0_estimate) < m_param_searchWindow) {
221 fit_params[3] = t0_estimate;
222 }
223
224 fitfuncSegmented.SetParameters(fit_params.data());
225
226 auto fitresFull = cumTimingHistogram->Fit(&fitfuncSegmented, "QS", "", -m_param_fitWindow, m_param_fitWindow);
228 fitfuncSegmented.Draw("SAME");
229 }
230
231 // refit with a fixed window around the extracted t0 to remove a possible bias
232 // because we fitted a large part of the signal side in the first iteration
233 const double fitted_t0_first = -fitresFull->Parameter(3);
234 bool refitSuccess = false;
235 if (std::abs(fitted_t0_first) < m_param_searchWindow) {
236 fitresFull = cumTimingHistogram->Fit(&fitfuncSegmented, "QS", "",
237 fitted_t0_first - m_param_refitWindow, fitted_t0_first + m_param_refitWindow);
238 refitSuccess = true;
239 } else {
240 B2DEBUG(25, "First t0 estimate not in proper range" << fitted_t0_first);
241 }
242
244 fitfuncSegmented.Draw("SAME");
245 }
246
247 // actually store this result ?
248 if (refitSuccess && fitresFull->IsValid()) {
249 const double fitted_t0 = -fitresFull->Parameter(3);
250 const double fitted_t0_error = fitresFull->Error(3);
251
252 const double norm_chi2 = fitresFull->Chi2() / double(fitresFull->Ndf());
253
254 B2DEBUG(25, "T0 fit with t0 " << fitted_t0 << " +- " << fitted_t0_error << " and normalized chi2 " << norm_chi2 << " and " <<
255 timingHistgram.GetEntries() << " hits");
256
257 // check if all the criteria required for a "good fit" have been met
258 if (norm_chi2 > m_param_rejectIfChiSquareLargerThan) {
259 B2DEBUG(25,
260 "T0 fit has too large Chi2 " << fitresFull->Chi2());
261 } else if (std::abs(fitted_t0_error) > m_param_rejectIfUncertaintyLargerThan) {
262 B2DEBUG(25,
263 "T0 fit has too large error " << fitted_t0_error);
264 } else {
265
266 // Since drift times are corrected for EventT0 (in RealisticTDCCountTranslator), if any other T0 modules were executed before, add the EventT0 offset back.
267 // This leads to "absolute" event T0 determination which should be consistent with other T0 modules.
268 double lastEventT0 = m_eventT0->hasEventT0() ? m_eventT0->getEventT0() : 0;
269 EventT0::EventT0Component eventT0Component(fitted_t0 + lastEventT0, fitted_t0_error, Const::CDC, "hit based", norm_chi2);
270 m_eventT0->addTemporaryEventT0(eventT0Component);
271 m_eventT0->setEventT0(eventT0Component);
272 m_wasSuccessful = true;
273 B2DEBUG(25,
274 "Successful t0 extraction with CDC hits: " << fitted_t0 << " +- " << fitted_t0_error);
275 }
276 } else {
277 B2DEBUG(25,
278 "Cannot fit t0 from CDC hits only. Won't set EventT0 for now.");
279 }
280 } else {
281 B2DEBUG(25,
282 "Cannot extract background or signal segment because fit failed. Won't set EventT0 for now.");
283 }
284
286 canvas.Draw();
287 canvas.SaveAs(debugImageName.c_str());
288 }
289}
StoreObjPtr< EventT0 > m_eventT0
Pointer to the storage of the eventwise T0 estimation in the data store.
bool m_wasSuccessful
Variable to show that the execution was successful.
float m_param_rejectIfChiSquareLargerThan
largest allowable chi2 value
int m_param_binCountTimeHistogram
number of bins in the timing histogram
bool m_param_rejectByBackgroundFlag
don't use hits for the fit which have been flagged as background
StoreObjPtr< EventMetaData > m_eventMetaData
access to event nr for debugging purposes
float m_param_searchWindow
the window (+-m_param_searchWindow) in ns where to search for the best t0
bool m_param_storeAllFits
store an image of the histogram and fit result, for debug purpose only
bool m_param_rejectIfNotTakenFlag
don't use hits for the fit which have not been assigned to any track
float m_param_rejectIfUncertaintyLargerThan
largest allowable uncertainty value
float m_param_fitWindow
the space (+-m_param_fitWindow) in ns used to fit the t0
unsigned int m_param_minHitCount
minimum number of hits
float m_param_refitWindow
the width of the window in ns (+- m_param_refitWindow) used to refit the final t0 value
static ScopeGuard guardBatchMode(bool batchMode=true)
Create a ScopeGuard to turn ROOT into batch mode and restore the initial batch mode status after the ...
Definition: ScopeGuard.h:352
Structure for storing the extracted event t0s together with its detector and its uncertainty.
Definition: EventT0.h:33

◆ beginEvent()

void beginEvent
overridevirtualinherited

Create the event t0 store obj ptr.

Reimplemented from CompositeProcessingSignalListener.

Definition at line 39 of file BaseEventTimeExtractor.icc.h.

46 {
47 Super::beginEvent();
48
49 m_wasSuccessful = false;
50
51 if (not m_eventT0.isValid()) {
52 m_eventT0.create();
53 }
54
55 m_eventT0Before = m_eventT0->getEventT0Component();
56 }
std::optional< EventT0::EventT0Component > m_eventT0Before
Storage for the event t0 before this module ran.

◆ beginRun()

void beginRun ( )
overridevirtualinherited

Receive and dispatch signal for the beginning of a new run.

Reimplemented from ProcessingSignalListener.

Reimplemented in LayerRelationFilter< AFilter >, FourHitFilter, QualityIndicatorFilter, ThreeHitFilter, TwoHitVirtualIPFilter, TwoHitVirtualIPQIFilter, RecoTrackStorer, ROIFinder, SpacePointLoaderAndPreparer, and TrackCandidateResultRefiner.

Definition at line 23 of file CompositeProcessingSignalListener.cc.

24{
27 psl->beginRun();
28 }
29}
Interface for an algorithm part that needs to receive the module processing signals.
virtual void beginRun()
Receive signal for the beginning of a new run.

◆ endRun()

void endRun ( )
overridevirtualinherited

Receive and dispatch signal for the end of the run.

Reimplemented from ProcessingSignalListener.

Definition at line 39 of file CompositeProcessingSignalListener.cc.

40{
42 psl->endRun();
43 }
45}
virtual void endRun()
Receive signal for the end of the run.

◆ exposeParameters()

void exposeParameters ( ModuleParamList moduleParamList,
const std::string &  prefix 
)
finaloverridevirtual

Expose the parameters to a module.

Reimplemented from BaseEventTimeExtractor< TrackFindingCDC::CDCWireHit & >.

Definition at line 41 of file HitBasedT0Extractor.cc.

43{
44 moduleParamList->addParameter(prefixed(prefix, "searchWindow"),
46 "Size of the time distance (in ns) to search for t0 in both direction from the current best t0",
48
49 moduleParamList->addParameter(prefixed(prefix, "fitWindow"),
51 "Size of the time distance (in ns) to used for fitting",
53
54 moduleParamList->addParameter(prefixed(prefix, "refitWindow"),
56 "Size of the time distance (in ns) to used for re-fitting",
58
59 moduleParamList->addParameter(prefixed(prefix, "binCountTimeHistogram"),
61 "Number of bins in the timing histogram used for fitting",
63
64 moduleParamList->addParameter(prefixed(prefix, "rejectByBackgroundFlag"),
66 "Don't consider hits if they have the background flag set",
68
69 moduleParamList->addParameter(prefixed(prefix, "rejectIfNotTakenFlag"),
71 "Don't consider hits which have not been assigned during track finding. The CDC track finding has "
72 "to be run before for this flag to be useful.",
74
75 moduleParamList->addParameter(prefixed(prefix, "rejectIfChiSquareLargerThan"),
77 "consider the t0 fit failed which have larger chi2 than this number",
79
80 moduleParamList->addParameter(prefixed(prefix, "rejectIfUncertaintyLargerThan"),
82 "consider the t0 fit if the uncertainty on t0 is larger than this value",
84
85 moduleParamList->addParameter(prefixed(prefix, "storeAllFits"),
87 "store images for all fits",
89
90 moduleParamList->addParameter(prefixed(prefix, "minHitCount"),
92 "Minimum amount of hits which is required to try the extraction",
94
95 Super::exposeParameters(moduleParamList, prefix);
96}
void addParameter(const std::string &name, T &paramVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module list.
virtual void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose our parameters to the super module.

◆ getDescription()

std::string getDescription ( )
finaloverridevirtual

Short description of the findlet.

Reimplemented from Findlet< AIOTypes... >.

Definition at line 30 of file HitBasedT0Extractor.cc.

31{
32 return "Extracts the T0 time of an event only using CDC Hits";
33}

◆ getNProcessingSignalListener()

int getNProcessingSignalListener ( )
protectedinherited

Get the number of currently registered listeners.

Definition at line 60 of file CompositeProcessingSignalListener.cc.

61{
63}

◆ initialize()

void initialize ( )
finaloverridevirtual

Initialize the event meta data.

Reimplemented from BaseEventTimeExtractor< TrackFindingCDC::CDCWireHit & >.

Definition at line 35 of file HitBasedT0Extractor.cc.

36{
37 m_eventMetaData.isRequired();
39}
virtual void initialize() override
Initialize the event t0 store obj ptr.

◆ resetEventT0()

void resetEventT0
protectedinherited

Reset the t0 value to cached value if it exists or clear it otherwise.

Definition at line 43 of file BaseEventTimeExtractor.icc.h.

60 {
61 if (m_eventT0Before) {
62 m_eventT0->setEventT0(*m_eventT0Before);
63 } else {
64 m_eventT0->clearEventT0();
65 }
66 }

◆ terminate()

void terminate ( )
overridevirtualinherited

Receive and dispatch Signal for termination of the event processing.

Reimplemented from ProcessingSignalListener.

Reimplemented in StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::HyperHough >, StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::QuadraticLegendre >, and StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::Z0TanLambdaLegendre >.

Definition at line 47 of file CompositeProcessingSignalListener.cc.

48{
50 psl->terminate();
51 }
53}
virtual void terminate()
Receive Signal for termination of the event processing.

◆ wasSuccessful()

bool wasSuccessful
inherited

Returns true if the last run t0 extraction was successful.

Definition at line 30 of file BaseEventTimeExtractor.icc.h.

22 {
23 return m_wasSuccessful;
24 }

Member Data Documentation

◆ m_eventMetaData

StoreObjPtr<EventMetaData> m_eventMetaData
private

access to event nr for debugging purposes

Definition at line 75 of file HitBasedT0Extractor.h.

◆ m_eventT0

StoreObjPtr<EventT0> m_eventT0
protectedinherited

Pointer to the storage of the eventwise T0 estimation in the data store.

Definition at line 46 of file BaseEventTimeExtractor.dcl.h.

◆ m_eventT0Before

std::optional<EventT0::EventT0Component> m_eventT0Before
privateinherited

Storage for the event t0 before this module ran.

Definition at line 56 of file BaseEventTimeExtractor.dcl.h.

◆ m_initialized

bool m_initialized = false
privateinherited

Flag to keep track whether initialization happend before.

Definition at line 52 of file ProcessingSignalListener.h.

◆ m_initializedAs

std::string m_initializedAs
privateinherited

Name of the type during initialisation.

Definition at line 58 of file ProcessingSignalListener.h.

◆ m_param_binCountTimeHistogram

int m_param_binCountTimeHistogram = 50
private

number of bins in the timing histogram

Definition at line 60 of file HitBasedT0Extractor.h.

◆ m_param_fitWindow

float m_param_fitWindow = 100.0f
private

the space (+-m_param_fitWindow) in ns used to fit the t0

Definition at line 58 of file HitBasedT0Extractor.h.

◆ m_param_minHitCount

unsigned int m_param_minHitCount = 20
private

minimum number of hits

Definition at line 54 of file HitBasedT0Extractor.h.

◆ m_param_overwriteExistingEstimation

bool m_param_overwriteExistingEstimation
privateinherited

Parameter if it is fine to overwrite the current EventT0.

Definition at line 53 of file BaseEventTimeExtractor.dcl.h.

◆ m_param_refitWindow

float m_param_refitWindow = 50.0f
private

the width of the window in ns (+- m_param_refitWindow) used to refit the final t0 value

Definition at line 73 of file HitBasedT0Extractor.h.

◆ m_param_rejectByBackgroundFlag

bool m_param_rejectByBackgroundFlag = false
private

don't use hits for the fit which have been flagged as background

Definition at line 62 of file HitBasedT0Extractor.h.

◆ m_param_rejectIfChiSquareLargerThan

float m_param_rejectIfChiSquareLargerThan = std::numeric_limits<float>::max()
private

largest allowable chi2 value

Definition at line 69 of file HitBasedT0Extractor.h.

◆ m_param_rejectIfNotTakenFlag

bool m_param_rejectIfNotTakenFlag = true
private

don't use hits for the fit which have not been assigned to any track

Definition at line 64 of file HitBasedT0Extractor.h.

◆ m_param_rejectIfUncertaintyLargerThan

float m_param_rejectIfUncertaintyLargerThan = 12.0f
private

largest allowable uncertainty value

Definition at line 71 of file HitBasedT0Extractor.h.

◆ m_param_searchWindow

float m_param_searchWindow = 70.0f
private

the window (+-m_param_searchWindow) in ns where to search for the best t0

Definition at line 56 of file HitBasedT0Extractor.h.

◆ m_param_storeAllFits

bool m_param_storeAllFits = false
private

store an image of the histogram and fit result, for debug purpose only

Definition at line 66 of file HitBasedT0Extractor.h.

◆ m_subordinaryProcessingSignalListeners

std::vector<ProcessingSignalListener*> m_subordinaryProcessingSignalListeners
privateinherited

References to subordinary signal processing listener contained in this findlet.

Definition at line 52 of file CompositeProcessingSignalListener.h.

◆ m_terminated

bool m_terminated = false
privateinherited

Flag to keep track whether termination happend before.

Definition at line 55 of file ProcessingSignalListener.h.

◆ m_wasSuccessful

bool m_wasSuccessful
protectedinherited

Variable to show that the execution was successful.

Definition at line 49 of file BaseEventTimeExtractor.dcl.h.


The documentation for this class was generated from the following files: