/**
 * \class BeamMonFileSummary
 *
 * \ingroup BeamDataUtil
 *
 * \brief A DbiTableRow for accessing BEAMMONFILESUMMARY table
 *
 * 
 *
 * \author (last to touch it) $Author: minoscvs $
 *
 * \version $Revision: 1.3 $
 *
 * \date $Date: 2005/04/29 20:17:56 $
 *
 * Contact: bv@bnl.gov
 *
 * Created on: Wed Apr 13 18:17:14 2005
 *
 * $Id: BeamMonFileSummary.h,v 1.3 2005/04/29 20:17:56 minoscvs Exp $
 *
 */


#ifndef BEAMMONFILESUMMARY_H
#define BEAMMONFILESUMMARY_H

#include <DatabaseInterface/DbiTableRow.h>
#include <Validity/VldTimeStamp.h>

#include <string>

class DbiTableRow;
class DbiValidityRec;
class DbiResultSet;
class DbiOutRowStream;

class TFile;

class BeamMonFileSummary : public DbiTableRow
{
public:
    BeamMonFileSummary();

    /// DbiTableRow API
    virtual DbiTableRow* CreateTableRow() const;
    /// DbiTableRow API
    void Fill(DbiResultSet& rs, const DbiValidityRec* vrec);
    /// DbiTableRow API
    virtual void Store(DbiOutRowStream& ors, const DbiValidityRec* vrec) const;

    // Routines to load data.  Typically used for BeamMonDbuModule

    /// Set file related values.  File should be accessible.
    void SetFileInfo(const TFile& file);

    /// Set the TCLK trigger info.  Should be called once per file
    void SetTclkTrigger(int event, int delay);

    /// Set spill info.  This should be called once for every spill in the file
    void AddSpill(const VldTimeStamp& vts, double protons_in_spill);

public:

    VldTimeStamp	fFirstSpillTime; // Time first spill in file
    VldTimeStamp	fLastSpillTime;	// Time of last spill in file
    int			fSpillCount; // Number of spills in file
    float		fProtonCount; // Number of protons through TORTGT
    int                 fTclkTriggerEvent; // The TCLK trigger event number
    int                 fTclkTriggerDelay; // The TCLK trigger delay
    std::string		fFileName; // Name of file
    int			fFileSize; // Size of file
    int			fRootVersion; // version of ROOT used to produce file
    VldTimeStamp	fModTime; // time file was last modified.
    
    ClassDef(BeamMonFileSummary,0)
};

#endif  // BEAMMONFILESUMMARY_H

