v2.10-0 (21000JUN2005)

Go4DynamicList
Class TGo4DynamicList


class TGo4DynamicList
derived from TGo4DynamicEntry

Aggregate which is responsible for the dynamically created analysis objects like histograms. Dynamic list may contain other
dynamic lists, which are processed iteratively.

Author:
J. Adamczewski
Since: 1/2001

Field Summary
 private TObjArray*fxList
          array to keep the list dynamic list entries
 private TIterator*fxListIterator
           
 private TMutex*fxListMutex
          mutex protecting the dynamic list
 private TFolder*fxTempFolder
          temporary folder for status creation

Fields inherited from interface Go4DynamicList.TGo4DynamicEntry
fbPointerInitDone, fbProcessEntry, fgcNOCONDITION, fgcNODATA, fgcNOEVENT, fguMAXCONDIMENSION

Fields inherited from class TNamed
fName, fTitle

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

Destructor Summary
 virtual synchronized ~TGo4DynamicList()
           

Method Summary
 Bool_tAddEntry(TGo4DynamicEntry* en)
          An external dynamic entry object is added to the list.
 virtual voidCleanupCondition(TGo4Condition* con)
          Remove reference to condition con from all dynamic list entries.
 virtual voidCleanupEvent(TGo4EventElement* ev)
          If event ev matches one internal event, the
reference to event will be reset to 0.
 virtual voidCleanupHistogram(TH1* his)
          Remove reference to histogram his from all dynamic list entries.
 virtual voidClear(Option_t* option)
          Removes all entries and deletes them.
 TGo4DynamicEntryStatus*CreateEntryStatus(const Text_t* name)
          Creates an entry status object for entry of name and returns it.
 TGo4DynamicEntryStatus*CreateStatus()
          Create a status object containing information such as the object names.
 voidDeleteEntry(const Text_t* name)
          The list entry of name is removed from list; all heap objects are deleted
 TGo4DynamicEntry*GetEntry(const Text_t* name)
          Returns the list entry instance of the name
 TNamed*GetObject(const Text_t* name)
          Get the object which is kept in the list entry by name.
 const Bool_tIsEmpty()
          Check if there are any entries in the list
 TGo4DynamicEntry*NextEntry()
          Delivers next entry in list. 0 if no more entry
 virtual Int_tProcess()
          Iterates all entries of the list and processes the objects, depending on coordinate values and analysis condition.
 virtual voidReset()
          Resets this entry to an initial status.
 voidResetIterator()
          Resets internal list iterator.
 virtual Bool_tSetEntryStatus(const Text_t* name, TGo4DynamicEntryStatus* state)
          Set dynamic entry of name to the given entry status.
 virtual voidSetStatus(TGo4DynamicEntryStatus* state)
          Set this dynamic entry to the values of status object state.
 private voidUpdateStatus(TGo4DynamicEntryStatus* state)
          Create a status object containing information such as the object names.

Methods inherited from interface Go4DynamicList.TGo4DynamicEntry
EnableProcessing, FindDataMember, InitPointers, Membersize, SetConditionName, SetConEventName, SetConVarName, TestCondition

Methods inherited from class TNamed
operator=, 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

fxList

private TObjArray* fxList
array to keep the list dynamic list entries

fxListIterator

private TIterator* fxListIterator

fxListMutex

private TMutex* fxListMutex
mutex protecting the dynamic list

fxTempFolder

private TFolder* fxTempFolder
temporary folder for status creation
Constructor Detail

TGo4DynamicList

public TGo4DynamicList()
default ctor for streamer.

TGo4DynamicList

public TGo4DynamicList(const Text_t* name)
Method Detail

~TGo4DynamicList

public virtual synchronized ~TGo4DynamicList()
Method Detail

AddEntry

public Bool_t AddEntry(TGo4DynamicEntry* en)
An external dynamic entry object is added to the list. Responsibility for
the entry is passed to the list, i.e. it should not be deleted from outside.

CleanupCondition

public virtual void CleanupCondition(TGo4Condition* con)
Remove reference to condition con from all dynamic list entries.

CleanupEvent

public virtual 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 virtual void CleanupHistogram(TH1* his)
Remove reference to histogram his from all dynamic list entries.

Clear

public virtual void Clear(Option_t* option)
Removes all entries and deletes them.

CreateEntryStatus

public TGo4DynamicEntryStatus* CreateEntryStatus(const Text_t* name)
Creates an entry status object for entry of name and returns it.

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.

DeleteEntry

public void DeleteEntry(const Text_t* name)
The list entry of name is removed from list; all heap objects are deleted

GetEntry

public TGo4DynamicEntry* GetEntry(const Text_t* name)
Returns the list entry instance of the name

GetObject

public TNamed* GetObject(const Text_t* name)
Get the object which is kept in the list entry by name. Returns
0 if no such name.

IsEmpty

public const Bool_t IsEmpty()
Check if there are any entries in the list

NextEntry

public TGo4DynamicEntry* NextEntry()
Delivers next entry in list. 0 if no more entry

Process

public virtual Int_t Process()
Iterates all entries of the list and processes the objects, depending on coordinate values and analysis condition.

Reset

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

ResetIterator

public void ResetIterator()
Resets internal list iterator.

SetEntryStatus

public virtual Bool_t SetEntryStatus(const Text_t* name, TGo4DynamicEntryStatus* state)
Set dynamic entry of name to the given entry status.

SetStatus

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

UpdateStatus

private void UpdateStatus(TGo4DynamicEntryStatus* state)
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.

Association Links

to Class TObjArray

array to keep the list dynamic list entries

to Class TMutex

mutex protecting the dynamic list

to Class TIterator

to Class TFolder

temporary folder for status creation

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

30-06-2005