// -*- mode: c++ -*- #ifndef BRAT_BrSequenceManager #define BRAT_BrSequenceManager // // $Id: BrSequenceManager // Root Classes // #ifndef ROOT_TObject #include "TObject.h" #endif #ifndef ROOT_TString #include "TString.h" #endif #ifndef ROOT_TFile #include "TFile.h" #endif #ifndef ROOT_TDirectory #include "TDirectory.h" #endif class BrSequenceManager : public TObject { public: typedef enum datatype { raw, root }; static BrSequenceManager* Instance(); BrSequenceManager(); virtual ~BrSequenceManager(); void SetDataDirectory(const Char_t* directory); const Char_t* GetDataDirectory(void) const {return fDataDir->Data();} void SetSequenceNumber(Int_t seqNo) {fSequenceNumber=seqNo;} // if you set the sequence number to n and caal the GetNextSequence // method, you will get sequence number n+1! void SetStartSequenceNumber(Int_t start){fStartSequence=start; fSequenceNumber = start-1 ;} void SetStopSequenceNumber(Int_t stop){fStopSequence=stop;} const Char_t* GetNextSequenceFile(void); const Char_t* GetCurrentSequenceFile(void); Int_t GetCurrentSequenceNumber(void) const {return fSequenceNumber;} Int_t GetStartSequenceNumber(void) const {return fStartSequence;} Int_t GetStopSequenceNumber(void) const {return fStopSequence;} void SetRunNumber(Int_t runNo) {fRunNumber = runNo;} Int_t GetRunNumber(void) const {return fRunNumber;} void SetDataType(const Char_t* type); Bool_t IsDataTypeRaw(void); Bool_t IsDataTypeRoot(void); Bool_t IsSequence(Int_t seqNo); //DOES NOT WORK!!! returns kTRUE private: static BrSequenceManager* fgInstance; // Singleton class Int_t fDebugLevel; // Debug Flag Int_t fRunNumber; // RunNumber Int_t fSequenceNumber; // Current SequenceNumber Int_t fStartSequence; // The start sequence Int_t fStopSequence; // The stop sequence TString* fDataDir; // Data directory datatype fDataType; // raw or root public: ClassDef(BrSequenceManager, 0) // BRAHMS Sequence Manager }; #endif