// -*- mode: c++ -*- // // $Id: BrRunInfo.h,v 1.4 2002/03/21 23:42:10 cholm Exp $ // $Author: cholm $ // $Date: 2002/03/21 23:42:10 $ // $Copyright: 2001 BRAHMS Collaboration #ifndef BRAT_BrRunInfo #define BRAT_BrRunInfo #ifndef ROOT_TNamed #include "TNamed.h" #endif #ifndef ROOT_TObjArray #include "TObjArray.h" #endif #ifndef BRAT_BrRunsDb #include "BrRunsDb.h" #endif #ifndef BRAT_BrDbRun #include "BrDbRun.h" #endif #ifndef BRAT_BrDbFile #include "BrDbFile.h" #endif #ifndef BRAT_BrDbShiftReport #include "BrDbShiftReport.h" #endif #ifndef BRAT_BrDbMagnet #include "BrDbMagnet.h" #endif class BrRunInfo : public TObject { private: BrRunsDb* fRunDb; //! Database BrDbRun* fRun; // The current run TObjArray* fSequences; // The sequnces TIter* fSeqIter; //! Iterator over sequences BrDbFile* fCurrentSeq; //! Current sequence // BrDbMagnet* fD1; // BrDbMagnet* fD2; // BrDbMagnet* fD3; // BrDbMagnet* fD4; // BrDbMagnet* fD5; // BrDbShiftReport* fShiftReport; const Char_t *FormatDate(const Int_t time) const; Bool_t fInitialized; public: BrRunInfo(); virtual ~BrRunInfo(); virtual void Init(); virtual void SetDatabase(BrRunsDb* db); virtual void Update(Int_t runNo); virtual void Commit() { } virtual void Use(const Char_t*) { } virtual void UseForWrite(const Char_t*,Int_t) { } virtual void SetComment() {} virtual Bool_t NextSequence(); virtual void Print(Option_t* option="B") const; virtual Int_t GetRunNo() const; virtual const Char_t* GetRunType() const; virtual Int_t GetEvents() const; virtual Int_t GetErrors() const; virtual Int_t GetDebug() const; virtual Int_t GetSpool() const; virtual Int_t GetHPSS() const; virtual const Char_t* GetPartitions() const; virtual const Char_t* GetStartComment() const; virtual const Char_t* GetEndState() const; virtual const Char_t* GetStartTime() const; virtual Int_t GetUnixStartTime() const; virtual const Char_t* GetEndTime() const; virtual Int_t GetUnixEndTime() const; virtual const Char_t* GetSupervisor() const; virtual Float_t GetMRSAngle() const; virtual Float_t GetFFSAngle() const; virtual Float_t GetBFSAngle() const; virtual const Char_t* GetD1Pol() const; virtual Int_t GetD1Set() const; virtual const Char_t* GetD2Pol() const; virtual Int_t GetD2Set() const; virtual const Char_t* GetD3Pol() const; virtual Int_t GetD3Set() const; virtual const Char_t* GetD4Pol() const; virtual Int_t GetD4Set() const; virtual const Char_t* GetD5Pol() const; virtual Int_t GetD5Set() const; virtual Int_t GetTrigger1() const; virtual Int_t GetTrigger2() const; virtual Int_t GetTrigger3() const; virtual Int_t GetTrigger4() const; virtual Int_t GetTrigger5() const; virtual Int_t GetTrigger6() const; virtual Int_t GetTrigger7() const; virtual Int_t GetTrigger8() const; virtual Int_t GetScale1() const; virtual Int_t GetScale2() const; virtual Int_t GetScale3() const; virtual Int_t GetScale4() const; virtual Int_t GetScale5() const; virtual Int_t GetScale6() const; virtual Int_t GetScale7() const; virtual Int_t GetScale8() const; virtual Int_t GetMaxEvents() const; virtual Int_t GetErrorsFrontEnd() const; virtual Int_t GetErrorsSync() const; virtual Int_t GetErrorsUnpack() const; virtual const Char_t* GetTriggerSummary() const; virtual const Char_t* GetComments() const; virtual const Char_t* GetSpoolFile() const; virtual Int_t GetSequenceRunNo() const; virtual Int_t GetSeqNo() const; virtual Int_t GetUnixFileStartTime() const; virtual const Char_t* GetFileStartTime() const; virtual Int_t GetUnixFileEndTime() const; virtual const Char_t* GetFileEndTime() const; virtual Int_t GetSizeBytes() const; virtual Int_t GetFirstEventNo() const; virtual Int_t GetLastEventNo() const; virtual Int_t GetEventCount() const; virtual Int_t GetUnixHPSSStartTime() const; virtual const Char_t* GetHPSSStartTime() const; virtual Int_t GetUnixHPSSEndTime() const; virtual const Char_t* GetHPSSEndTime() const; virtual const Char_t* GetHPSSFile() const; virtual const Char_t* GetSequenceTriggerSummary() const; virtual TObjArray* GetSequences() const { return fSequences; } friend ostream& operator<<(ostream& os,BrRunInfo &run); friend ostream& operator<<(ostream& os,BrRunInfo *run); ClassDef(BrRunInfo, 1) // Full run information } ; //____________________________________________________________________ inline Int_t BrRunInfo::GetRunNo() const { return(fRun ? fRun->GetRunNo() : -1); } //____________________________________________________________________ inline const Char_t* BrRunInfo::GetRunType() const { return(fRun ? fRun->GetRunType() : 0); } //____________________________________________________________________ inline Int_t BrRunInfo::GetEvents() const { return(fRun ? fRun->GetEvents() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetErrors() const { return(fRun ? fRun->GetErrors() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetDebug() const { return(fRun ? fRun->GetDebug() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetSpool() const { return(fRun ? fRun->GetSpool() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetHPSS() const { return(fRun ? fRun->GetHPSS() : -1); } //____________________________________________________________________ inline const Char_t* BrRunInfo::GetPartitions() const { return(fRun ? fRun->GetPartitions() : 0); } //____________________________________________________________________ inline const Char_t* BrRunInfo::GetStartComment() const { return(fRun ? fRun->GetStartComment() : 0); } //____________________________________________________________________ inline const Char_t* BrRunInfo::GetEndState() const { return(fRun ? fRun->GetEndState() : 0); } //____________________________________________________________________ inline Int_t BrRunInfo::GetUnixStartTime() const { return (fRun ? fRun->GetStartTime() : -1); } //____________________________________________________________________ inline const Char_t* BrRunInfo::GetStartTime() const { return (fRun ? FormatDate(fRun->GetStartTime()) : "-1"); } //____________________________________________________________________ inline Int_t BrRunInfo::GetUnixEndTime() const { return (fRun ? fRun->GetEndTime() : -1); } //____________________________________________________________________ inline const Char_t* BrRunInfo::GetEndTime() const { return (fRun ? FormatDate(fRun->GetEndTime()) : "-1"); } //____________________________________________________________________ inline const Char_t* BrRunInfo::GetSupervisor() const { return (fRun ? fRun->GetSupervisor() : 0); } //____________________________________________________________________ inline Float_t BrRunInfo::GetMRSAngle() const { return (fRun ? fRun->GetMRSAngle() : 9999); } //____________________________________________________________________ inline Float_t BrRunInfo::GetFFSAngle() const { return (fRun ? fRun->GetFFSAngle() : 9999); } //____________________________________________________________________ inline Float_t BrRunInfo::GetBFSAngle() const { return (fRun ? fRun->GetBFSAngle() : 9999); } //____________________________________________________________________ inline const Char_t* BrRunInfo::GetD1Pol() const { return (fRun ? fRun->GetD1Pol() : 0); } //____________________________________________________________________ inline Int_t BrRunInfo::GetD1Set() const { return (fRun ? fRun->GetD1Set() : 0); } //____________________________________________________________________ inline const Char_t* BrRunInfo::GetD2Pol() const { return (fRun ? fRun->GetD2Pol() : 0); } //____________________________________________________________________ inline Int_t BrRunInfo::GetD2Set() const { return (fRun ? fRun->GetD2Set() : 0); } //____________________________________________________________________ inline const Char_t* BrRunInfo::GetD3Pol() const { return (fRun ? fRun->GetD3Pol() : 0); } //____________________________________________________________________ inline Int_t BrRunInfo::GetD3Set() const { return (fRun ? fRun->GetD3Set() : 0); } //____________________________________________________________________ inline const Char_t* BrRunInfo::GetD4Pol() const { return (fRun ? fRun->GetD4Pol() : 0); } //____________________________________________________________________ inline Int_t BrRunInfo::GetD4Set() const { return (fRun ? fRun->GetD4Set() : 0); } //____________________________________________________________________ inline const Char_t* BrRunInfo::GetD5Pol() const { return (fRun ? fRun->GetD5Pol() : 0); } //____________________________________________________________________ inline Int_t BrRunInfo::GetD5Set() const { return (fRun ? fRun->GetD5Set() : 0); } //____________________________________________________________________ inline Int_t BrRunInfo::GetTrigger1() const { return (fRun ? fRun->GetTrigger1() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetTrigger2() const { return (fRun ? fRun->GetTrigger2() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetTrigger3() const { return (fRun ? fRun->GetTrigger3() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetTrigger4() const { return (fRun ? fRun->GetTrigger4() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetTrigger5() const { return (fRun ? fRun->GetTrigger5() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetTrigger6() const { return (fRun ? fRun->GetTrigger6() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetTrigger7() const { return (fRun ? fRun->GetTrigger7() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetTrigger8() const { return (fRun ? fRun->GetTrigger8() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetScale1() const { return (fRun ? fRun->GetScale1() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetScale2() const { return (fRun ? fRun->GetScale2() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetScale3() const { return (fRun ? fRun->GetScale3() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetScale4() const { return (fRun ? fRun->GetScale4() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetScale5() const { return (fRun ? fRun->GetScale5() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetScale6() const { return (fRun ? fRun->GetScale6() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetScale7() const { return (fRun ? fRun->GetScale7() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetScale8() const { return (fRun ? fRun->GetScale8() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetMaxEvents() const { return (fRun ? fRun->GetMaxEvents() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetErrorsFrontEnd() const { return (fRun ? fRun->GetErrorsFrontEnd() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetErrorsSync() const { return (fRun ? fRun->GetErrorsSync() : -1); } //____________________________________________________________________ inline Int_t BrRunInfo::GetErrorsUnpack() const { return (fRun ? fRun->GetErrorsUnpack() : -1); } //____________________________________________________________________ inline const Char_t* BrRunInfo::GetTriggerSummary() const { return (fRun ? fRun->GetTriggerSummary() : 0); } //____________________________________________________________________ inline const Char_t* BrRunInfo::GetComments() const { return (fRun ? fRun->GetComments() : 0); } //___________________________________________________________________ inline const Char_t* BrRunInfo::GetSpoolFile() const { return (fCurrentSeq ? fCurrentSeq->GetSpoolFile() : 0); } //___________________________________________________________________ inline Int_t BrRunInfo::GetSequenceRunNo() const { return (fCurrentSeq ? fCurrentSeq->GetRunNo() : -1); } //___________________________________________________________________ inline Int_t BrRunInfo::GetSeqNo() const { return (fCurrentSeq ? fCurrentSeq->GetSeqNo() : -1); } //___________________________________________________________________ inline Int_t BrRunInfo::GetUnixFileStartTime() const { return (fCurrentSeq ? fCurrentSeq->GetFileStartTime() : -1); } //___________________________________________________________________ inline const Char_t* BrRunInfo::GetFileStartTime() const { return (fCurrentSeq ? FormatDate(fCurrentSeq->GetFileStartTime()) : "-1"); } //___________________________________________________________________ inline Int_t BrRunInfo::GetUnixFileEndTime() const { return (fCurrentSeq ? fCurrentSeq->GetFileEndTime() : -1); } //___________________________________________________________________ inline const Char_t* BrRunInfo::GetFileEndTime() const { return (fCurrentSeq ? FormatDate(fCurrentSeq->GetFileEndTime()) : "-1"); } //___________________________________________________________________ inline Int_t BrRunInfo::GetSizeBytes() const { return (fCurrentSeq ? fCurrentSeq->GetSizeBytes() : -1); } //___________________________________________________________________ inline Int_t BrRunInfo::GetFirstEventNo() const { return (fCurrentSeq ? fCurrentSeq->GetFirstEventNo() : -1); } //___________________________________________________________________ inline Int_t BrRunInfo::GetLastEventNo() const { return (fCurrentSeq ? fCurrentSeq->GetLastEventNo() : -1); } //___________________________________________________________________ inline Int_t BrRunInfo::GetEventCount() const { return (fCurrentSeq ? fCurrentSeq->GetEventCount() : -1); } //___________________________________________________________________ inline Int_t BrRunInfo::GetUnixHPSSStartTime() const { return (fCurrentSeq ? fCurrentSeq->GetHPSSStartTime() : -1); } //___________________________________________________________________ inline const Char_t* BrRunInfo::GetHPSSStartTime() const { return (fCurrentSeq ? FormatDate(fCurrentSeq->GetHPSSStartTime()) : "-1"); } //___________________________________________________________________ inline Int_t BrRunInfo::GetUnixHPSSEndTime() const { return (fCurrentSeq ? fCurrentSeq->GetHPSSEndTime() : -1); } //___________________________________________________________________ inline const Char_t* BrRunInfo::GetHPSSEndTime() const { return (fCurrentSeq ? FormatDate(fCurrentSeq->GetHPSSEndTime()) : "-1"); } //___________________________________________________________________ inline const Char_t* BrRunInfo::GetHPSSFile() const { return (fCurrentSeq ? fCurrentSeq->GetHPSSFile() : 0); } //___________________________________________________________________ inline const Char_t* BrRunInfo::GetSequenceTriggerSummary() const { return (fCurrentSeq ? fCurrentSeq->GetTriggerSummary() : 0); } #endif // // $Log: BrRunInfo.h,v $ // Revision 1.4 2002/03/21 23:42:10 cholm // Added code in Update, so that as soon as the connection to the // DB server isn't needed anymore from this Update step, we // disconnect our clients. This is done, so we may keep as many free // slots on the server as possible. MySQL, in it's current setup has a // limit of 1000 simultaneous connections, and so disconnecting from the // server may allow more jobs to run. This `Disconnect ASAP' policy is // conditional on the preprocessor flag BRAT_USE_DISCONNECT, defined in // `db/abc/BrDb.h'. // // Revision 1.3 2001/09/12 15:10:07 cholm // Default arg to Print. // // Revision 1.2 2001/06/22 02:56:52 hagel // Improvements in GeometryDB // // Revision 1.1.1.1 2001/06/21 14:55:17 hagel // Initial revision of brat2 // // Revision 1.4 2001/03/01 23:22:49 cholm // Added support for ~/.brahmsdbrc file // // Revision 1.3 2001/02/16 21:15:49 hagel // Make GetTime() methods return encoded time, not UNIX timecd ../../db/inc! // // Revision 1.2 2001/01/24 23:59:26 hagel // Changes to make work with BRAT v2 (add os<