// @(#)$Id: hsudummyrec.h,v 1.6 2009-07-15 11:38:42 halo Exp $
//*-- Author : Marcin Jaskula 02/11/2002
//*-- Modifed: Marcin Jaskula 11/07/2003
//             *Events support added
//*-- Modifed: Jacek Otwinowski 10/02/2007
//             reinit() function has been changed 

#ifndef HSUDummyRec_H
#define HSUDummyRec_H

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
// HSUDummyRec                                                                //
//                                                                            //
// Dummy reconstructor which calls user defined functions                     //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

#include "hreconstructor.h"
#include "haddef.h"

#include "TList.h"
#include "TFile.h"

// -----------------------------------------------------------------------------

class HCategory;
class HIterator;
class TFile;

// -----------------------------------------------------------------------------

class HSUDummyRec : public HReconstructor
{
public:
                        HSUDummyRec(Bool_t bVerbose = kTRUE);
                        HSUDummyRec(const Char_t *pOutFileName,
                                            Bool_t bVerbose = kTRUE);
                        HSUDummyRec(const Text_t name[],const Text_t title[],
                                    Bool_t bVerbose = kTRUE);
                        HSUDummyRec(const Char_t *pOutFileName,
                                    const Text_t name[],const Text_t title[],
                                    Bool_t bVerbose = kTRUE);
                       ~HSUDummyRec(void);

    // -------------------------------------------------------------------------

    void                setVerbose(Bool_t b = kTRUE)      { bVerbose = b;      }
    Bool_t              getVerbose(void) const            { return bVerbose;   }

    // -------------------------------------------------------------------------

    static HCategory*   getCategory(Cat_t cat, Bool_t bRaport = kTRUE);
    static HCategory*   getCategory(const Char_t* pName, Bool_t bRaport = kTRUE);

    HIterator*          getIterator(Cat_t cat, Bool_t bDelete = kTRUE);
    HIterator*          getIterator(const Char_t* pName, Bool_t bDelete = kTRUE);

    // -------------------------------------------------------------------------

    void                addObjectToWrite(TObject *pObj, Bool_t bDelete = kTRUE);

    Bool_t              removeObject(TObject *pObj);
    Bool_t              removeIterator(HIterator *pI);

    // -------------------------------------------------------------------------

    Int_t               writeObjects(TFile *pFile);
    Int_t               writeObjects(const Char_t *pFileName,
                                Bool_t bRecreate = kTRUE);

    // -------------------------------------------------------------------------

    TFile*              getOutFile(void) const          { return pOutFile;     }
    Bool_t              setOutFile(TFile *pFile, Bool_t bCloseOld = kFALSE);
    TFile*              openOutFile(const Char_t *pName = NULL,
                                                Bool_t bRecr = kTRUE);
    Bool_t              writeAndCloseOutFile(void);

    // -------------------------------------------------------------------------

    const TString&      getOutFileName(void) const      { return sOutFileName; }
    void                setOutFileName(const Char_t *pName)
                                                        { sOutFileName = pName;}

    // -------------------------------------------------------------------------

    virtual void        Print(Option_t* option) const   { print();             }
    virtual void        print(void) const;

    // -------------------------------------------------------------------------

    virtual Int_t       execute(void)                   { return 0;            }
    virtual Bool_t      init(void)                      { return kTRUE;        }
    virtual Bool_t      finalize(void)                  { return kTRUE;        }
    virtual Bool_t      reinit(void)                    { return kTRUE;        }

    // -------------------------------------------------------------------------

    Bool_t              getInitOk(void)                 { return bInitOk;      }
    void                setInitOk(Bool_t b = kTRUE)     { bInitOk = b;         }

    // -------------------------------------------------------------------------

    void                setEvents(Int_t i)              { iEvents = i;         }
    void                incEvents(void)                 { ++iEvents;           }
    Int_t               getEvents(void) const           { return iEvents;      }

    void                setWriteEvents(Bool_t b = kTRUE){ bWriteEvents = b;    }
    Bool_t              getWriteEvents(void) const      { return bWriteEvents; }

    // -------------------------------------------------------------------------

protected:

    TList               lToDelete;          // list of allocated objects
    TList               lToWrite;           // list of objects for writing

    Bool_t              bVerbose;           // report any warnings

    Bool_t              bInitOk;            // flag if init was ok

    TFile              *pOutFile;           // output file

    TString             sOutFileName;       // name of the output file

    Int_t               iEvents;            // number of events
    Bool_t              bWriteEvents;       // write number of entries

    // -------------------------------------------------------------------------

    void                setDefault(void);

    // -------------------------------------------------------------------------

    ClassDef(HSUDummyRec, 0)  // Dummy reconstructor
};

// -----------------------------------------------------------------------------

class HSUIteratorObject : public TObject
{
public:

                HSUIteratorObject(void)          : pIter(NULL)  {}
                HSUIteratorObject(HIterator *pI) : pIter(pI)    {}
               ~HSUIteratorObject(void);

    // -------------------------------------------------------------------------

    HIterator*  get(void) const             { return pIter; }
    void        set(HIterator *pI)          { pIter = pI;   }

public:
    HIterator *pIter;

    // -------------------------------------------------------------------------

    ClassDef(HSUIteratorObject, 0)  // Wrapper HIterator -> TObject
};

// -----------------------------------------------------------------------------

#endif //HSUDummyRec_H

Last change: Sat May 22 13:13:01 2010
Last generated: 2010-05-22 13:13

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.