20#include "TGo4AnalysisStepStatus.h"
23#include "TGo4EventStoreParameter.h"
24#include "TGo4EventSourceParameter.h"
25#include "TGo4EventProcessorParameter.h"
27#include "TGo4EventCalibration.h"
28#include "TGo4FileSourceParameter.h"
29#include "TGo4FileStoreParameter.h"
31#include "TGo4EventElement.h"
32#include "TGo4EventFactory.h"
33#include "TGo4EventStore.h"
36:TNamed(name,
"This is a Go4 analysis step"),
46 GO4TRACE((15,
"TGo4AnalysisStep::TGo4AnalysisStep(const char *, TGo4EventFactory *)",__LINE__, __FILE__));
57:TNamed(
"Default Analysis Step",
"This is a Go4 analysis step"),
66 GO4TRACE((15,
"TGo4AnalysisStep::TGo4AnalysisStep()",__LINE__, __FILE__));
74 GO4TRACE((15,
"TGo4AnalysisStep::~TGo4AnalysisStep()",__LINE__, __FILE__));
86 GO4TRACE((15,
"TGo4AnalysisStep::InitEventClasses()",__LINE__, __FILE__));
99 GO4TRACE((12,
"TGo4AnalysisStep::Process()",__LINE__, __FILE__));
117 input =
fxOwner->GetOutputEvent();
144 GO4TRACE((14,
"TGo4AnalysisStep::Close()",__LINE__, __FILE__));
154 GO4TRACE((14,
"TGo4AnalysisStep::CloseEventStore()",__LINE__, __FILE__));
168 GO4TRACE((14,
"TGo4AnalysisStep::CloseEventSource()",__LINE__, __FILE__));
179 GO4TRACE((14,
"TGo4AnalysisStep::CloseEventProcessor()",__LINE__, __FILE__));
189 GO4TRACE((14,
"TGo4AnalysisStep::DeleteInputEvent()",__LINE__, __FILE__));
199 GO4TRACE((14,
"TGo4AnalysisStep::DeleteOutputEvent()",__LINE__, __FILE__));
209 GO4TRACE((14,
"TGo4AnalysisStep::StoreCalibration()",__LINE__, __FILE__));
248 GO4TRACE((14,
"TGo4AnalysisStep::IsMatchingPrevious(TGo4AnalysisStep *)",__LINE__, __FILE__));
253 if (!prevevent)
return kTRUE;
255 return !strcmp(prevevent->ClassName(),
fxInputEvent->ClassName()) &&
271 GO4TRACE((12,
"TGo4AnalysisStep::NewEventSource(Int_t)",__LINE__, __FILE__));
272 const char *sourcename =
"";
273 if (kind) sourcename = kind->GetName();
280 if(kind && kind->InheritsFrom(
"TGo4TreeSourceParameter")) {
281 SetStatusMessage(
"Did not init TGo4TreeSource, please use TGo4FileSource instead !");
286 const char *evstorename=
fxPrevious->GetEventStoreName();
287 if(evstorename && !strcmp(evstorename, sourcename) &&
fxPrevious->IsStoreEnabled()) {
289 GetName(), sourcename);
324 GO4TRACE((12,
"TGo4AnalysisStep::NewEventStore(Int_t)",__LINE__, __FILE__));
330 if(kind && kind->InheritsFrom(
"TGo4TreeStoreParameter"))
332 SetStatusMessage(
"! Did not init TGo4TreeStore, please use TGo4FileStore instead !");
360 GO4TRACE((12,
"TGo4AnalysisStep::NewEventProcessor(Int_t)",__LINE__, __FILE__));
382 GO4TRACE((11,
"TGo4AnalysisStep::CreateStatus()",__LINE__, __FILE__));
407 GO4TRACE((12,
"TGo4AnalysisStep::NewInputEvent()",__LINE__, __FILE__));
423 GO4TRACE((12,
"TGo4AnalysisStep::NewOutputEvent()",__LINE__, __FILE__));
440 GO4TRACE((11,
"TGo4AnalysisStep::SetStatus(TGo4AnalysisStepStatus*)",__LINE__, __FILE__));
Status object of one analysis step.
void SetErrorStopEnabled(Bool_t on=kTRUE)
Enables or disables the stop-on-error mode.
void SetProcessStatus(Int_t val)
Sets status value of processor, user defined.
void SetSourceEnabled(Bool_t on=kTRUE)
Enables or disables the event source.
void SetErrorStopped(Bool_t on)
Enables or disables the stop-on-error mode.
TGo4EventSourceParameter * GetSourcePar() const
Returns the event source parameter which was put into this status object.
Bool_t IsProcessEnabled() const
TGo4EventProcessorParameter * GetProcessorPar() const
Returns the event processor parameter which was put into this status object.
Bool_t IsSourceEnabled() const
Bool_t IsErrorStopEnabled() const
True if analysis step shall stop on error.
void SetStorePar(TGo4EventStoreParameter *kind)
Sets the event store parameter which is used on intitialization of this step.
Bool_t IsStoreEnabled() const
void SetProcessorPar(TGo4EventProcessorParameter *kind)
Sets the event processor parameter which is used on intitialization of this step.
TGo4EventStoreParameter * GetStorePar() const
Returns the event store parameter which was put into this status object.
void SetStoreEnabled(Bool_t on=kTRUE)
Enables or disables the event store.
void SetProcessEnabled(Bool_t on=kTRUE)
Enables or disables the event processing.
void SetSourcePar(TGo4EventSourceParameter *kind)
Sets the event source parameter which is used on intitialization of this step.
void SetErrorStopEnabled(Bool_t on)
Enables or disables the stop-on-error mode.
TGo4EventFactory * fxEventFactory
The abstract factory implementation which provides the event classes.
void NewInputEvent()
create input event object
Bool_t fbErrorStopEnabled
Operation mode switch.
void SetStatusMessage(const char *txt)
Set Status message of last Process() call.
TGo4AnalysisStep * fxPrevious
Points to the previous analysis step.
Int_t Store(TGo4Parameter *cali)
Saves a parameter correlated with the current event into the storage.
void SetProcessEnabled(Bool_t on=kTRUE)
Enables or disables the event processing.
void SetStoreEnabled(Bool_t on=kTRUE)
Enables or disables the event store.
void Close()
Closes the analysis step.
TGo4EventProcessorParameter * fxProcessorType
Parameter object of next event processor to be activated.
TGo4EventProcessor * fxEventProcessor
The processing class which works on the input event and fills the output event.
TGo4EventSource * fxEventSource
The source of the input events.
void StoreCalibration()
Store the current calibration object of the event processor into the event store instance.
virtual void InitEventClasses()
Initialization of the event class plugins which are delivered from the user defined event factory.
virtual ~TGo4AnalysisStep()
Bool_t fbSourceImplemented
Flag for the previous analysis step.
void DeleteOutputEvent()
Delete input event object.
Bool_t fbProcessEnabled
Enables processing of the input event.
void NewEventProcessor(TGo4EventProcessorParameter *kind)
For lazy initialization of event processor.
void NewEventSource(TGo4EventSourceParameter *kind)
For lazy initialization of event source.
TGo4EventStoreParameter * fxStoreType
Parameter object of next event storage to be activated.
void CloseEventStore()
Unregister and close eventstore, if existing.
TGo4EventStore * fxEventStore
The storage instance for the unpacked events (detector) structures.
void DeleteInputEvent()
Delete input event object.
TGo4AnalysisStepStatus * CreateStatus()
Create a copy of the analysis step internal state.
void SetEventProcessor(TGo4EventProcessorParameter *kind)
Sets the event processor parameter which is used on initialization of this step.
TGo4EventElement * fxOutputEvent
The unpacked event (detector) structure that has been filled by the analysis step .
void CloseEventProcessor()
Unregister and close eventprocessor, if existing.
Bool_t IsProcessEnabled() const
void Process()
The main analysis action which is invoked by the external go4 analysis.
Bool_t IsEventStoreParam() const
Return kTRUE, if event store parameter specified.
void CloseEventSource()
Unregister and close eventsource, if existing.
Int_t fiProcessStatus
Contains current analysis step status value.
void NewOutputEvent()
create input event object
void SetEventSource(TGo4EventSourceParameter *kind)
Sets the event source parameter which is used on initialization of this step.
TGo4EventSourceParameter * fxSourceType
Parameter object of next event source to be activated.
const char * GetEventStoreName() const
Access to name of currently active event store.
void SetStatus(TGo4AnalysisStepStatus *state)
Set all analysis step parameters to that of given status object.
const char * GetEventSourceName() const
Access to name of currently active event source.
Bool_t fbSourceEnabled
Enables event source.If true, the event source is used to get the input event; otherwise we use the o...
TGo4Analysis * fxOwner
Points back to the analysis which keeps this step.
Bool_t IsEventSourceParam() const
Return kTRUE, if event source parameter specified.
void NewEventStore(TGo4EventStoreParameter *kind)
For lazy initialization of event store.
Bool_t fbErrorStopped
True if the analysis step has been stopped after input error.
Bool_t fbStoreEnabled
Enables event store.
Bool_t IsMatchingPrevious() const
Check if an analysis step is matching as a previous step to this step.
void SetSourceEnabled(Bool_t on=kTRUE)
Enables or disables the event source.
TGo4EventElement * fxInputEvent
points to the last input event delivered from the event source 1 aggregation
void SetEventStore(TGo4EventStoreParameter *kind)
Sets the event store parameter which is used on initialization of this step.
TGo4AnalysisStep()
default ctor for streamer.
Bool_t fbStoreImplemented
Flag for the subsequent analysis step.
static TGo4Analysis * Instance()
return analysis instance
void Message(Int_t prio, const char *text,...)
Display a user message.
Data object for calibration of the input event.
The abstract base class for the data elements of which the unpacked events (or detector structure dat...
Abstract factory for the event related classes.
Basic type for all classes containing information to parametrize the event processor.
Basic type for all classes containing information to parameterize the event source.
Basic type for all classes containing information to parametrize the event store.
Central class of Go4Fit package.
Base class for all parameter aggregations, e.g.