#ifndef HTRIGGERHISTBOOKER_H
#define HTRIGGERHISTBOOKER_H

#include "hparcond.h"

class TList;
class TString;

class HTriggerHistFiller;
class HTriggerDetector;
class HParamList;
class HRuntimeDb;

/** Trigger Histogram Booker.
 * The container keeps the list of histograms (pool)
 * and the list of activehistograms and the HTriggerHistFiller,
 * which is responsible of booking, creating and filling
 * of the histograms. All actions on the histograms
 * have to through HTriggerHistBooker and HTriggerHistFiller.
*/

class HTriggerHistBooker : public HParCond {

protected:
    HTriggerDetector* fTrigger; //!
    static TList* triggerHistpool;    //!< list of pool histograms
    static TList* triggerActiveHists; //!< list of active histograms
    static HTriggerHistBooker* fTriggerHistBooker;  //!< pointer to self
    static HTriggerHistFiller* triggerfiller;       //!< pointer to internal HTriggerHistFiller
public:
    HTriggerHistBooker(const Char_t* name   ="TriggerHistBooker",
		       const Char_t* title  ="parameters for Trigger hists",
		       const Char_t* context="TriggerHistBookerProduction");
    ~HTriggerHistBooker();
    /// get pointer to container
    static HTriggerHistBooker* getExObject();
    /// gt pointer to container, if
    /// it does not exist, it will be created
    static HTriggerHistBooker* getObject();
    /// set parameter Io to Go4Io
    void   setGo4ParIo(HRuntimeDb*);
    /// init container using rtdb
    Bool_t init(HParIo*, Int_t*);
    /// init container standalone (no rtdb)
    Bool_t initStandAlone();
    /// write container
    Int_t  write(HParIo*);
    /// get list of active histograms
    TList* getListOfActiveHists(){return triggerActiveHists;}
    /// get list of pool histograms
    TList* getListOfHists()      {return triggerHistpool;}
    /// reset histograms of active list
    void   resetActiveList(Int_t level,Int_t count);
    /// put parameter to list of HParCond
    void   putParams(HParamList*);
    /// get parameter from list of HParCond
    Bool_t getParams(HParamList*);
    /// reset the container
    void   clear();
    /// print parametr to the screen
    void   printParam(void);
    /// print status of the container to the screen
    void   printStatus(void);
    /// get pointer to internal HTriggerHistFiller
    HTriggerHistFiller* getTriggerFiller(){return triggerfiller;}
    /// write histograms to .root file
    Bool_t writeHists( const TString &option );

    ClassDef(HTriggerHistBooker,1) // Container for the Trigger Hists
};

#endif  /*!HTRIGGERHISTBOOKER_H*/


Last change: Sat May 22 13:17:12 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.