v2.10-0 (21000JUN2005)

Go4DynamicList
Class TGo4DynamicEntry

Direct Known Subclasses:
TGo4DynamicList, TGo4HistogramEntry, TGo4TreeHistogramEntry

class TGo4DynamicEntry
derived from TNamed

ABC for all entries that can be kept in a dynamic list.
The Dynamic list itself is a dynamic entry, too; thus
the analysis can handle a dynamic list containing
dynamic sub-lists of histograms.

Author:
J. Adamczewski
Since: 1/2001
interface

Field Summary
 protected Bool_tfbPointerInitDone
          True if pointers to external objects have already been
initialized.
 protected Bool_tfbProcessEntry
          True if object shall be processed by main event loop automatically.
 const static const Text_t[]fgcNOCONDITION
          Text to indicate that no condition is used
 const static const Text_t[]fgcNODATA
          Text to indicate that no condition is used
 const static const Text_t[]fgcNOEVENT
          Text to indicate that no condition is used
 const static const UInt_tfguMAXCONDIMENSION
          maximum dimension for condition variable array
 private Bool_t* [2]fxConDataBool
          Array of pointers to the data that is tested against condition.
 private Char_t* [2]fxConDataChar
          Array of pointers to the data that is tested against condition.
 private Double_t* [2]fxConDataDouble
          Array of pointers to the data that is tested against condition.
 private Float_t* [2]fxConDataFloat
          Array of pointers to the data that is tested against condition.
 private Int_t* [2]fxConDataInt
          Array of pointers to the data that is tested against condition.
 private Long_t* [2]fxConDataLong
          Array of pointers to the data that is tested against condition.
 private Short_t* [2]fxConDataShort
          Array of pointers to the data that is tested against condition.
 private UChar_t* [2]fxConDataUChar
          Array of pointers to the data that is tested against condition.
 private UInt_t* [2]fxConDataUInt
          Array of pointers to the data that is tested against condition.
 private ULong_t* [2]fxConDataULong
          Array of pointers to the data that is tested against condition.
 private UShort_t* [2]fxConDataUShort
          Array of pointers to the data that is tested against condition.
 private TGo4Condition*fxCondition
          Condition to be checked on processing this entry.
 private TStringfxConditionName
          Name of the condition to be applied for this entry.
 private TGo4EventElement* [2]fxConEvent
          Array of pointers to the event structure that
contains the data for the condition test.
 private TString[2]fxConEventName
          Array of names of the events which contain
the data members to be tested with the x,y
coordinates of the condition.
 private TString[2]fxConVarName
          Name of the eventstructure datamembers that shall be
tested with the condition.

Fields inherited from class TNamed
fName, fTitle

Constructor Summary
TGo4DynamicEntry()
          default ctor for streamer.
TGo4DynamicEntry(const Text_t* name)
           

Destructor Summary
 synchronized ~TGo4DynamicEntry()
           

Method Summary
 voidCleanupCondition(TGo4Condition* con)
          If condition con matches the internal condition, the
reference to internal condition will be reset to 0.
 voidCleanupEvent(TGo4EventElement* ev)
          If event ev matches one internal event, the
reference to event will be reset to 0.
 voidCleanupHistogram(TH1* his)
          If histogram his matches the internal histogram, the
reference to internal histogram will be reset to 0.
 TGo4DynamicEntryStatus*CreateStatus()
          Create a status object containing information such as the object names.
 voidEnableProcessing(Bool_t on)
          Switch the autoprocessing state of this entry.
 protected TDataMember*FindDataMember(TClass* eventclass, const Text_t* memname, Long_t* totaloffset)
          Find out address totaloffset of datamember memname relative to "this" pointer
of eventclass object.
 voidInitPointers()
          Initialize the pointers to external objects.
 protected Int_tMembersize(const Text_t* name)
          find out size of type "name" on runtime for all supported types
 Int_tProcess()
          Process the dynamic entry.
 voidReset()
          Resets this entry to an initial status.
 voidSetConditionName(const Text_t* name)
          Set name of the external condition to be referenced.
 voidSetConEventName(UInt_t ix, const Text_t* name)
          Set Name of the eventstructure object that is to be
tested by the condition for axis number ix. ix is 0 for x-axis,
1 for y-axis, etc.
 voidSetConVarName(UInt_t ix, const Text_t* name)
          Set Name of the data value (eventclass member) that is to be
tested by condition for axis number ix. ix is 0 for x-axis,
1 for y-axis, etc.
 voidSetStatus(TGo4DynamicEntryStatus* state)
          Set this dynamic entry to the values of status object state.
 Bool_tTestCondition()
          Test if condition for this entry is true.
 protected voidUpdateStatus(TGo4DynamicEntryStatus* state)
          Update the status object containing information such as the object names.

Methods inherited from class TNamed
operator=, Clear, Clone, Compare, Copy, FillBuffer, GetName, GetTitle, Hash, IsSortable, SetName, SetNameTitle, SetTitle, ls, Print, Sizeof, Class, Class_Name, Class_Version, Dictionary, IsA, ShowMembers, Streamer, StreamerNVirtual, DeclFileName, ImplFileLine, ImplFileName, DeclFileLine

Field Detail

fbPointerInitDone

protected Bool_t fbPointerInitDone
True if pointers to external objects have already been
initialized. Flag is set by InitPointers() and reset by Reset().

fbProcessEntry

protected Bool_t fbProcessEntry
True if object shall be processed by main event loop automatically.
For example, histogram autofill from event index values.

fgcNOCONDITION

public const static const Text_t[] fgcNOCONDITION
Text to indicate that no condition is used

fgcNODATA

public const static const Text_t[] fgcNODATA
Text to indicate that no condition is used

fgcNOEVENT

public const static const Text_t[] fgcNOEVENT
Text to indicate that no condition is used

fguMAXCONDIMENSION

public const static const UInt_t fguMAXCONDIMENSION
maximum dimension for condition variable array

fxConDataBool

private Bool_t* [2] fxConDataBool
Array of pointers to the data that is tested against condition.
Used if data is Bool_t

fxConDataChar

private Char_t* [2] fxConDataChar
Array of pointers to the data that is tested against condition.
Used if data is Char_t

fxConDataDouble

private Double_t* [2] fxConDataDouble
Array of pointers to the data that is tested against condition.
Used if data is Double_t

fxConDataFloat

private Float_t* [2] fxConDataFloat
Array of pointers to the data that is tested against condition.
Used if data is Float_t

fxConDataInt

private Int_t* [2] fxConDataInt
Array of pointers to the data that is tested against condition.
Used if data is Int_t

fxConDataLong

private Long_t* [2] fxConDataLong
Array of pointers to the data that is tested against condition.
Used if data is Long_t

fxConDataShort

private Short_t* [2] fxConDataShort
Array of pointers to the data that is tested against condition.
Used if data is Short_t

fxConDataUChar

private UChar_t* [2] fxConDataUChar
Array of pointers to the data that is tested against condition.
Used if data is UChar_t

fxConDataUInt

private UInt_t* [2] fxConDataUInt
Array of pointers to the data that is tested against condition.
Used if data is UInt_t

fxConDataULong

private ULong_t* [2] fxConDataULong
Array of pointers to the data that is tested against condition.
Used if data is Long_t

fxConDataUShort

private UShort_t* [2] fxConDataUShort
Array of pointers to the data that is tested against condition.
Used if data is UShort_t

fxCondition

private TGo4Condition* fxCondition
Condition to be checked on processing this entry.

fxConditionName

private TString fxConditionName
Name of the condition to be applied for this entry.

fxConEvent

private TGo4EventElement* [2] fxConEvent
Array of pointers to the event structure that
contains the data for the condition test.

fxConEventName

private TString[2] fxConEventName
Array of names of the events which contain
the data members to be tested with the x,y
coordinates of the condition.

fxConVarName

private TString[2] fxConVarName
Name of the eventstructure datamembers that shall be
tested with the condition.
Constructor Detail

TGo4DynamicEntry

public TGo4DynamicEntry()
default ctor for streamer.

TGo4DynamicEntry

public TGo4DynamicEntry(const Text_t* name)
Method Detail

~TGo4DynamicEntry

public synchronized ~TGo4DynamicEntry()
Method Detail

CleanupCondition

public void CleanupCondition(TGo4Condition* con)
If condition con matches the internal condition, the
reference to internal condition will be reset to 0.
This is used when external condition is deleted
to avoid dead pointers.

CleanupEvent

public void CleanupEvent(TGo4EventElement* ev)
If event ev matches one internal event, the
reference to event will be reset to 0.
This is used when external event is deleted
to avoid dead pointers. May be overloaded if subclasses
also keep pointers to event structures.

CleanupHistogram

public void CleanupHistogram(TH1* his)
If histogram his matches the internal histogram, the
reference to internal histogram will be reset to 0.
This is used when external histogram is deleted
to avoid dead pointers. Dummy implementation here!

CreateStatus

public TGo4DynamicEntryStatus* CreateStatus()
Create a status object containing information such as the object names.
Can be sent to the Display to show the existing objects and their relations.
Memento mechanism is _not_ provided here, since we would not change
the object names afterwards.

EnableProcessing

public void EnableProcessing(Bool_t on)
Switch the autoprocessing state of this entry.

FindDataMember

protected TDataMember* FindDataMember(TClass* eventclass, const Text_t* memname, Long_t* totaloffset)
Find out address totaloffset of datamember memname relative to "this" pointer
of eventclass object. Datamember object is returned.
This method is able to treat inherited members. Later on, also aggregates?

InitPointers

public void InitPointers()
Initialize the pointers to external objects. The external objects
(e.g. condition, histogram, data) will be searched by name
in the Go4 folders.

Membersize

protected Int_t Membersize(const Text_t* name)
find out size of type "name" on runtime for all supported types

Process

public Int_t Process()
Process the dynamic entry.

Reset

public void Reset()
Resets this entry to an initial status.

SetConditionName

public void SetConditionName(const Text_t* name)
Set name of the external condition to be referenced.

SetConEventName

public void SetConEventName(UInt_t ix, const Text_t* name)
Set Name of the eventstructure object that is to be
tested by the condition for axis number ix. ix is 0 for x-axis,
1 for y-axis, etc.

SetConVarName

public void SetConVarName(UInt_t ix, const Text_t* name)
Set Name of the data value (eventclass member) that is to be
tested by condition for axis number ix. ix is 0 for x-axis,
1 for y-axis, etc.

SetStatus

public void SetStatus(TGo4DynamicEntryStatus* state)
Set this dynamic entry to the values of status object state.

TestCondition

public Bool_t TestCondition()
Test if condition for this entry is true.

UpdateStatus

protected void UpdateStatus(TGo4DynamicEntryStatus* state)
Update the status object containing information such as the object names.
Can be sent to the Display to show the existing objects and their relations.
Memento mechanism is _not_ provided here, since we would not change
the object names afterwards.

Association Links

to Class TGo4Condition

Condition to be checked on processing this entry.

to Class TGo4EventElement

Array of pointers to the event structure that
contains the data for the condition test.

J.Adamczewski, M.Al-Turany, D.Bertini, H.G.Essel, S.Linev

30-06-2005