Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

BeamMonFileSummary.cxx

Go to the documentation of this file.
00001 #include "BeamMonFileSummary.h"
00002 
00003 #include <DatabaseInterface/DbiResultSet.h>
00004 #include <DatabaseInterface/DbiOutRowStream.h>
00005 
00006 #include <Validity/VldRange.h>
00007 
00008 #include <TSystem.h>
00009 #include <TSeqCollection.h>
00010 #include <TIterator.h>
00011 #include <TFile.h>
00012 
00013 
00014 #include <vector>
00015 
00016 using namespace std;
00017 
00018 #include <MessageService/MsgService.h>
00019 CVSID("$Id: BeamMonFileSummary.cxx,v 1.5 2006/01/30 20:04:09 rhatcher Exp $");
00020 
00021 #include <DatabaseInterface/DbiResultPtr.tpl>
00022 template class  DbiResultPtr<BeamMonFileSummary>;
00023 
00024 BeamMonFileSummary::BeamMonFileSummary()
00025     : fFirstSpillTime()
00026     , fLastSpillTime()
00027     , fSpillCount(0)
00028     , fProtonCount(0)
00029     , fFileName("")
00030     , fFileSize(0)
00031     , fRootVersion(0)
00032     , fModTime()
00033 {
00034 }
00035 
00036 void BeamMonFileSummary::Fill(DbiResultSet& rs, const DbiValidityRec* /*vrec*/)
00037 {
00038     // nominally:
00039     // rs >> fField1 >> fField2;
00040 
00041     int ns=0;
00042 
00043     rs >> fFirstSpillTime;
00044     rs >> ns;
00045     fFirstSpillTime.Add(VldTimeStamp(0,ns));
00046 
00047     rs >> fLastSpillTime;
00048     rs >> ns;
00049     fLastSpillTime.Add(VldTimeStamp(0,ns));
00050 
00051     rs >> fSpillCount
00052        >> fProtonCount
00053        >> fTclkTriggerEvent
00054        >> fTclkTriggerDelay
00055        >> fFileName
00056        >> fFileSize
00057        >> fRootVersion
00058        >> fModTime;
00059 
00060 }
00061 DbiTableRow* BeamMonFileSummary::CreateTableRow() const 
00062 { 
00063     return new BeamMonFileSummary; 
00064 }
00065 
00066 void BeamMonFileSummary::SetTclkTrigger(int event, int delay)
00067 {
00068     fTclkTriggerEvent = event;
00069     fTclkTriggerDelay = delay;
00070 }
00071 
00072 void BeamMonFileSummary::AddSpill(const VldTimeStamp& vts, double proton_count)
00073 {
00074     if (!fSpillCount) {
00075         fFirstSpillTime = vts;
00076     }
00077     ++fSpillCount;
00078 
00079     fLastSpillTime = vts;
00080     fProtonCount += proton_count;
00081 }
00082 
00083 void BeamMonFileSummary::SetFileInfo(const TFile& file)
00084 {
00085     fFileName = gSystem->BaseName(file.GetName());
00086 
00087     fFileSize = file.GetSize();
00088     fRootVersion = file.GetVersion();
00089 
00090     FileStat_t file_stat;
00091     gSystem->GetPathInfo(file.GetName(),file_stat);
00092     fModTime = VldTimeStamp(file_stat.fMtime,0);
00093 }
00094 
00095 void BeamMonFileSummary::Store(DbiOutRowStream& ors,
00096                                const DbiValidityRec* /*vrec*/) const
00097 {
00098     ors << fFirstSpillTime;
00099     ors << (fFirstSpillTime.GetNanoSec())
00100         << fLastSpillTime
00101         << (fLastSpillTime.GetNanoSec())
00102         << fSpillCount
00103         << fProtonCount
00104         << fTclkTriggerEvent
00105         << fTclkTriggerDelay
00106         << fFileName
00107         << fFileSize
00108         << fRootVersion
00109         << fModTime;
00110 }
00111 
00112 ClassImp(BeamMonFileSummary)
00113     

Generated on Mon Feb 15 11:06:24 2010 for loon by  doxygen 1.3.9.1