class Hades: public TObject

Function Members (Methods)

public:
Hades()
Hades(const Hades&)
virtual~Hades()
voidTObject::AbstractMethod(const char* method) const
voidactivateTree(TTree* tree)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidBrowse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
voidcloseOutput()
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
voiddefineTaskSets()
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
Int_teventLoop(Int_t nEvents = kMaxInt, Int_t firstEvent = 0, Double_t timeQuota = 1.e+20)MENU
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
Bool_tfinalizeTasks()
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
HEvent*&getCurrentEvent()
HDataSource*getDataSource() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Int_tgetEmbeddingMode()
Int_tgetEmbeddingRealTrackId()
Int_tgetEventCounter()
Bool_tgetForceNoSkip()
HldFileOutput*getHldOutput() const
virtual const char*TObject::GetIconName() const
HMessageMgr*getMsg()
virtual const char*TObject::GetName() const
Int_tgetNumberOfRequestedEvents()
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
TFile*getOutputFile()
HRuntimeDb*getRuntimeDb()
HDataSource*getSecondDataSource() const
HSpectrometer*getSetup()
Int_tgetSplitLevel()
HTaskSet*getTask()
HTask*getTask(const Char_t* taskName)
HTaskSet*getTaskSet(Int_t nEvtId)
HTaskSet*getTaskSet(const Char_t* evtTypeName)
virtual const char*TObject::GetTitle() const
HTree*getTree()
Int_tgetTreeBufferSize()
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
Bool_tinit()
Bool_tinitTasks()
virtual voidTObject::Inspect() constMENU
static Hades*instance()
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
Bool_tisCalibration()
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tIsFolder() const
Bool_tTObject::IsOnHeap() const
Bool_tisReal()
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidmakeCounter(Int_t counter = 1000)
Bool_tmakeTree()
Int_tmapId(Int_t id)
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
Hades&operator=(const Hades&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
voidprintDefinedTaskSets()
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
Bool_treinitTasks()
voidTObject::ResetBit(UInt_t f)
voidresetEventCounter()
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
Int_tsetAlgorithmLayout(Text_t* fileName)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
Int_tsetConfig(Text_t* fileName)
voidsetDataSource(HDataSource* dataS)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidsetEmbeddingMode(Int_t mode)
voidsetEnableCloseInput(Bool_t flag = kTRUE)
voidsetEvent(HEvent* ev)
Int_tsetEventLayout(Text_t* fileName)
voidsetForceNoSkip(Bool_t noskip = kTRUE)
Bool_tsetHldOutput(Text_t*, Text_t* fileSuffix = "f_", Option_t* option = "NEW")
static voidTObject::SetObjectStat(Bool_t stat)
Bool_tsetOutputFile(Text_t* name, Option_t* opt, Text_t* title, Int_t comp)
voidsetOutputSizeLimit(Size_t l)
voidsetQuietMode(UChar_t mode = 1)
voidsetSecondDataSource(HDataSource* dataS)
voidsetSplitLevel(Int_t splitLevel)
voidsetTreeBufferSize(Int_t size)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
Int_tgetCurrentRunId(HDataSource* source)
voidinitTaskSetsIDs(Int_t version)
voidTObject::MakeZombie()
voidrecreateOutput()

Data Members

public:
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
static Int_tEventCounter! Event counter, can be retrieved via gHades->getEventCounter()
static Int_tdoEmbedding! embedding mode flag 0=No embedding,
Bool_tenableCloseInput! Enable closing oracle input
Int_tevIdMap[16]! look-up table for event id mapping
Int_tfCounterCounter display for event loop
HEvent*fCurrentEventEvent under reconstruction
Int_tfCycleNumberNumber of current output file
HDataSource*fDataSource! Data source where data are taken from
Bool_tfFirstEventLoop
HldFileOutput*fHldOutput! Hld file output
TFile*fOutputFile! File used to store the output tree
TStringfOutputFileName
Size_tfOutputSizeLimit
HDataSource*fSecondDataSource! 2nd data source where data are taken from
Int_tfSplitLevelIndicates the split level (0,1,2)
HTaskSet*fTaskTask for each event.
TObjArray*fTaskListList of Task for each type of events.
TStopwatchfTimer! Timer for event loop stoping by time quota
HTree*fTreeOutput tree
static Bool_tforceNoSkip! kTRUE = don't skip events in unpackers when trigger tag mismatch is detected
HMessageMgr*msgHandler! Message handler with three different outputs
ErrorHandlerFunc_toldHdlr! Original ROOT error handler
UChar_tquiet1 - quiet mode, 2 - silence mode
Int_treqEvents! number of requested events from eventloop
HRuntimeDb*rtdb! Runtime database of reconstruction parameters.
HSpectrometer*setup! Spectrometer s setup.
Int_ttreeBufferSize! size of the buffer of a branch (default 8000)

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

Hades(const Hades& )
Default constructor for Hades. It sets the global pointer gHades.
This constructor also creates one HDebug object if none exists.
~Hades(void)
Closes the reconstruction program. If there are unsaved data, it saves them
When using Hades within a macro don't forget to call the destructor,
or data won't be saved.
void defineTaskSets()
Int_t mapId(Int_t id)
Int_t setAlgorithmLayout(Text_t* fileName)
This method is used to build the reconstructor's graph. For that purpose
the macro in the file "fileName" is executed.

Returns 0 if successfull.
Int_t setEventLayout(Text_t* fileName)
This method is intended to build the event's structure. For that purpose
the macro in the file "fileName" is executed.

Returns 0 if succesfull.
Int_t setConfig(Text_t* fileName)
 This method is used to interpret a "configuration macro". Within this
 macro all the information to run the analisys is given. This is an
 alternative way of initialization without using setEventLayout(),
 setAlgorithmLayout()...

 For more information on initialization see the initialization section in
 the HYDRA manual.

 Within this macro the user is responsible of calling the Hades::init()
 function before the call to Hades::makeTree();
Bool_t init(void)
 This function initializes Hades. This includes initialization of the
 reconstructors, the data source and the detectors.
Bool_t isCalibration()
Bool_t isReal()
 The event with the sequence number == 0 is a very special event
 which needs special treatment (does not contain any data, it is
 header only, should be skipped from the analysis!!!). It is only
 in the real data and has ID == 2 and Version == 0 (between jan04
 and may06) which points to a calibration event...
Bool_t initTasks()
Bool_t reinitTasks()
Bool_t finalizeTasks()
HTaskSet* getTask()
HTask* getTask(const Char_t* taskName)
HTaskSet* getTaskSet(Int_t nEvtId)
HTaskSet* getTaskSet(const Char_t *evtTypeName)
HEvent *& getCurrentEvent(void)
Returns a pointer to the event in reconstruction
void setEvent(HEvent* ev)
 This function sets the event layout to that given by "ev". The user first
 builds the event layout by creating an HEvent object and then call this
 function; which sets the data member fCurrentEvent.

 This function is typically called from the macro invoked in
 setEventLayout()
void setDataSource(HDataSource* dataS)
 Method used to establish the data source where data are taken from. For
 that purpose an object of a class derived from HDataSource is created and
 the setDataSource() method is called to pass a pointer to this object

  This function should be called typically from the macro invoked with
  setConfig()
void setSecondDataSource(HDataSource* dataS)
 Set second data source (needed e.g. for event merging).
 Must be a Root source!
Bool_t setHldOutput(Text_t* , Text_t* fileSuffix = "f_", Option_t* option = "NEW")
 Creates an HLD file output
void setSplitLevel(Int_t splitLevel)
Method used to control the shape of the output Root tree for the events..
Three split levels are supported:

  splitLevel=0 ---> An only branch is created for the event, which is
                    stored as a whole (i.e. the whole HEvent is stored as
                    one piece).

  splitLevel=1 ---> The partial events are stored as a whole, meanwhile the
                    top of the event class (tracks, header ...) is stored
			creating one TBranch per data member

  splitLevel=2 ---> One branch per data member is created (with little
			exceptions, see Root automatic split rules). However
			the categories (see HCategory) still can decide how the
			split is done (by creating their own branches). This
                    is the default value set by the Hades constructor

Int_t getSplitLevel(void)
Returns the current splitLevel (see setSplitLevel() )
Bool_t setOutputFile(Text_t* name, Option_t* opt, Text_t* title, Int_t comp)
Sets the output file, giving its name, compresion level...
For more information on the parameters see the constructor of TFile

  This method allocates the file indicated taking care of saving the
current file if any. If the file does not exist or the user wants it to be
overwritten, then opt="RECREATE"; if the file already exists and is to be
updated then opt="UPDATE"...

HTree * getTree(void)
Returns a pointer to the current output Root tree of events
void activateTree(TTree* tree)
 Sets the right branch address and branch status (=1) for all the branches
 in tree which correspond to the branches which would eventually be
 generated for the output Root tree of events if the function makeTree() is
 called.

 This mechanism allows to only read those branches in "tree" which are
 neccesary to fill an event as defined in setEventLayout()
Bool_t makeTree(void)
 Creates an output tree from the information in the event structure
 and according to the splitLevel (see setSplitLevel() )
Int_t getCurrentRunId(HDataSource* source)
Int_t eventLoop(Int_t nEvents = kMaxInt, Int_t firstEvent = 0, Double_t timeQuota = 1.e+20)
  Executes the event loop;

  For each new event:
  First, the current event is cleared.
  Second, a new event is read from the data source (see HDataSource)
  Third, the reconstruction of this event is launched (see HReconstructor)
  Fourth, if a tree was created (see makeTree() ) then it is filled.

  This function returns the number of events processed. A negative value
  corresponds to an error

  timeQuota - time limit for tasks in minutes.
  timeQuota <= 0. - no limit
  Event loop end condition: evN==nEvents or runing tasks time > timeQuota
Bool_t IsFolder(void)
 Returns true. This tells the Root browser to show Hades as a folder
 holding other objects
void Browse(TBrowser* b)
 Used to browse the reconstructor's tree, a particular event or the
 reconstructor's histograms...

 This function is called by Root when browsing gHades with the Root browser

void closeOutput(void)
void recreateOutput(void)
void Streamer(TBuffer& b)
void printDefinedTaskSets()
void initTaskSetsIDs(Int_t version)
 Mapping of event ids into HTaskSet numbers for DAQ type old (version=0),
 i.e prior to Sep03, and new (version=1).

 This table will go in due time into an rtdb container.  (R.H.)

Int_t EventCounter; //! Event counter, can be retrieved via gHades-> getEventCounter()
Hades(const Hades& )
Hades* instance(void)
{ return (gHades) ? gHades : new Hades; }
void makeCounter(Int_t counter = 1000)
 switches + counters etc
{fCounter = counter;}
void setQuietMode(UChar_t mode = 1)
{ quiet = mode; }
Int_t getNumberOfRequestedEvents(void)
{ return reqEvents; }
void resetEventCounter()
{ EventCounter = 0; }
Int_t getEmbeddingMode()
{ return doEmbedding; }
void setEmbeddingMode(Int_t mode)
{ doEmbedding = mode; }
Int_t getEmbeddingRealTrackId()
{ return -500; }
Bool_t getForceNoSkip()
{ return forceNoSkip; }
void setForceNoSkip(Bool_t noskip = kTRUE)
 setup rtdb + detector
{ forceNoSkip = noskip; }
HRuntimeDb* getRuntimeDb(void)
{ return rtdb; }
HSpectrometer* getSetup(void)
{ return setup; }
HMessageMgr* getMsg(void)
 setup event
{ return msgHandler; }
HDataSource* getDataSource(void)
{return fDataSource; }
void setEnableCloseInput(Bool_t flag = kTRUE)
{ enableCloseInput = flag; }
HDataSource* getSecondDataSource(void)
 setup tasks
{ return fSecondDataSource; }
void setOutputSizeLimit(Size_t l)
{ fOutputSizeLimit = l; }
Int_t getTreeBufferSize()
{ return treeBufferSize; }
void setTreeBufferSize(Int_t size)
{ treeBufferSize = size; }
TFile* getOutputFile()
 setup hld file output
{ return fOutputFile; }
HldFileOutput* getHldOutput(void)
 setup tree + browser
{ return fHldOutput; }

Last change: Sat May 22 13:17:53 2010
Last generated: 2010-05-22 13:17

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.