// Author : Gero Flucke // Date : in 2002 // last update: $Date: 2004/08/05 11:37:04 $ // by : $Author: flucke $ #ifndef __GFDSTARUNPERIODS_H #define __GFDSTARUNPERIODS_H // ROOT includes #include #include "TArrayD.h" #include "TArrayI.h" class GFDstarRunPeriods : public TObject{ public: explicit GFDstarRunPeriods(Int_t trigger, const char* period = NULL); virtual ~GFDstarRunPeriods(); Bool_t SetTrigger(Int_t trigger, const char* period = NULL); Int_t GetNumPeriods() const {return fRunsDataLumi.GetSize();} Int_t GetFirstRun(Int_t period) const; Int_t GetLastRun(Int_t period) const; Double_t GetLumi(Int_t period) const; Double_t GetPrescale(Int_t period) const; // Double_t GetRunPrescale(Int_t period) const; Int_t GetPeriod(Int_t run) const; TArrayI GetRunRanges() const {return fRuns;} TArrayD GetRunDataLumi() const {return fRunsDataLumi;} Double_t GetTotalLumi() const {return fRunsDataLumi.GetSum();} // miss-use of this class: static const Double_t fgStartDmSignal; static const Double_t fgEndDmSignal; static const Double_t fgStartDmBackgr; static const Double_t fgEndDmBackgr; protected: inline Bool_t CheckPeriod(const char *method, Int_t period) const; Bool_t OutOfBounds(const char *method, Int_t period) const; TArrayI fRuns; TArrayD fRunsDataLumi; // [i] is lumi for fRuns[i] => fRuns[i+1] // in nb-1 TArrayD fPrescales; // [i] is mean prescale trigger for fRuns[i] => fRuns[i+1] ClassDef(GFDstarRunPeriods,0) // run periods of D* analysis }; Bool_t GFDstarRunPeriods::CheckPeriod(const char* method, Int_t period) const { // runs is 1 longer than number of periods (it contains borders!) if(period >=0 && period < fRuns.GetSize()) return kTRUE; return this->OutOfBounds(method, period); } #endif // __GFDSTARUNPERIODS_H