/**
 * \class BeamMonCuts
 *
 * \ingroup BeamDataUtil
 *
 * \brief A DbiTableRow for accessing BEAMMONCUTS
 *
 *
 *
 * \author (last to touch it) $Author: mdier $
 *
 * \version $Revision: 1.2 $
 *
 * \date $Date: 2006/11/22 20:28:23 $
 *
 * Contact: mdier@bnl.gov
 *
 * Created on: Thu Oct 26 17:40:13 2006
 *
 * $Id: BeamMonCuts.h,v 1.2 2006/11/22 20:28:23 mdier Exp $
 *
 */
#ifndef BEAMMONCUTS_H
#define BEAMMONCUTS_H


#include <string>
using std::string;
#include "DatabaseInterface/DbiTableRow.h"

class Registry;

class BeamMonCuts : public DbiTableRow
{

public:

    BeamMonCuts(const string& cutValues="");
    BeamMonCuts(const Registry* reg);
    ~BeamMonCuts();
    
    /// 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;

    /// return private member
    const string& GetCutValues() const { return fCutValues; }

    /// fill a registry with the cut values  
    void FillRegistry(Registry* reg) const;
    
    /// State changing member functions
    void SetCutValues(const string& cutValues) { fCutValues = cutValues;}
    void SetCutValues(const Registry* reg);
    
private:
    
    string fCutValues;  /// string format of the Registry that holds
                        /// the cut values for beam mon cuts 

    ClassDef(BeamMonCuts,0)
};                              // end of class BeamMonCuts

#endif  // BEAMMONCUTS_H


