Changeset 8969 for trunk/MagicSoft/Mars/mjobs/MSequence.h
- Timestamp:
- 06/17/08 18:09:42 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/mjobs/MSequence.h
r8780 r8969 4 4 #ifndef ROOT_TArrayI 5 5 #include <TArrayI.h> 6 #endif7 8 #ifndef ROOT_TExMap9 #include <TExMap.h>10 6 #endif 11 7 … … 48 44 49 45 TArrayI fRuns; 46 TArrayI fRunsSub; 47 50 48 TArrayI fCalRuns; 49 TArrayI fCalRunsSub; 50 51 51 TArrayI fPedRuns; 52 TArrayI fPedRunsSub; 53 52 54 TArrayI fDatRuns; 55 TArrayI fDatRunsSub; 53 56 54 57 TArrayI fExclRuns; 58 TArrayI fExclRunsSub; 55 59 56 60 Bool_t fMonteCarlo; 57 61 58 //TExMap fFileNames; 62 // Helper for interpretation 63 void AddEntry(Int_t run, Int_t file, TArrayI &data, TArrayI &sub) const; 64 void EvalEntry(const TEnv *env, const TString &prefix, const TString &num, TArrayI &data, TArrayI &sub) const; 59 65 60 void Split(TString &runs, TArrayI &data) const;61 //void GetFileNames(TEnv &env, const TArrayI &arr);66 void Split(TString &runs, TArrayI &data, TArrayI &sub, const TEnv *env=0, const TString prefix="") const; 67 void Split(const TEnv &env, const TString &prefix, const char *name, TArrayI &data, TArrayI &sub) const; 62 68 63 69 LightCondition_t ReadLightCondition(TEnv &env, const char *prefix) const; 64 70 65 const char *GetFileName(UInt_t num); 71 // Helper for file setup 72 TString GetPathName(TString d, FileType_t type) const; 73 TString GetFileName(UInt_t num, const TArrayI &arr, const TArrayI &sub, FileType_t type) const; 74 UInt_t SetupRuns(MDirIter &iter, const TArrayI &arr, const TArrayI &file, FileType_t type, const char *path=0) const; 66 75 67 //UInt_t SetupRuns(MDirIter &iter, const TArrayI &arr, const char *path, char *id, Bool_t raw=kFALSE) const; 68 UInt_t SetupRuns(MDirIter &iter, const TArrayI &arr, FileType_t type, const char *path=0) const; 69 UInt_t AddRuns(UInt_t first, UInt_t last, TArrayI *runs); 70 void ExcludeRun(TArrayI &arr, UInt_t num); 71 Bool_t IsContained(const TArrayI &arr, UInt_t num) const; 76 // Helper for Print() 77 TString GetNumSequence(Int_t pos, Int_t n, const TArrayI &f) const; 78 TString GetNumSequence(Int_t &pos, const TArrayI &n, const TArrayI &f) const; 79 80 void PrintRunsClassic(const char *pre, const char *name, const TArrayI &r) const; 81 TString PrintRuns(const char *pre, const char *name, const TArrayI &r, const TArrayI &f) const; 82 83 // General helper 84 Bool_t HasSubRuns() const { return fRunsSub.GetSize()!=0 || fDatRunsSub.GetSize()!=0 || fPedRunsSub.GetSize()!=0 || fCalRunsSub.GetSize()!=0 || fExclRunsSub.GetSize()!=0; } 85 Bool_t IsContained(const TArrayI &arr, const TArrayI &sub, UInt_t num, UInt_t file) const; 86 87 // Some helpers to handle the arrays 88 static Int_t SortArraySub(Int_t p, Int_t n, Int_t *arr1, Int_t *arr2); 89 static void SortArrays(TArrayI &arr1, TArrayI &arr2); 90 static Int_t GetSubArray(Int_t p, Int_t n, Int_t *arr1); 72 91 73 92 public: … … 81 100 fRuns(s.fRuns), fCalRuns(s.fCalRuns), fPedRuns(s.fPedRuns), 82 101 fDatRuns(s.fDatRuns), fMonteCarlo(s.fMonteCarlo) { } 83 ~MSequence();84 102 85 103 // TObject 86 104 void Print(Option_t *o) const; 87 void Print() const { Print( ); } //*MENU*105 void Print() const { Print(""); } //*MENU* 88 106 89 107 const char *GetName() const; … … 93 111 Bool_t IsValid() const { return fSequence!=(UInt_t)-1; } 94 112 Bool_t IsMonteCarlo() const { return fMonteCarlo; } 95 Bool_t IsExcluded(UInt_t run) const { return IsContained(fExclRuns, run); } 96 Bool_t IsContained(UInt_t run) const { return IsContained(fCalRuns, run) || IsContained(fPedRuns, run) || IsContained(fDatRuns, run); } 113 Bool_t IsExcluded(UInt_t run, UInt_t file) const { return IsContained(fExclRuns, fExclRunsSub, run, file); } 114 Bool_t IsContained(UInt_t run, UInt_t file) const { return IsContained(fCalRuns, fCalRunsSub, run, file) || IsContained(fPedRuns, fPedRunsSub, run, file) || IsContained(fDatRuns, fDatRunsSub, run, file); } 115 116 // Setter 117 void SetNight(const char*night); 118 119 void AddRun(UInt_t run, char type='*') { AddFile(run, 0, type); } 120 void AddRuns(UInt_t run1, UInt_t run2, char type='*') { for (UInt_t i=run1; i<=run2; i++) AddFile(i, 0, type); } 121 void AddFile(UInt_t run, UInt_t file, char type='*'); 122 void AddFiles(UInt_t run, UInt_t f1, UInt_t f2, char type='*') { for (UInt_t i=f1; i<=f2; i++) AddFile(run, i, type); } 123 124 void ExcludeFile(UInt_t num, UInt_t file=0); 125 void ExcludeRuns(TString runs); 97 126 98 127 void SetMonteCarlo(Bool_t ismc=kTRUE) { fMonteCarlo=ismc; } 99 128 129 // Getter 130 UInt_t GetNumExclRuns() const { return fExclRuns.GetSize(); } 131 132 UInt_t GetSequence() const { return fSequence; } 133 UInt_t GetLastRun() const { return fLastRun; } 134 UInt_t GetPeriod() const { return fPeriod; } 135 Bool_t HasMoon() const { return fLightCondition==kMoon; } 136 137 LightCondition_t GetLightCondition() const { return fLightCondition; } 138 139 const MTime &GetStart() const { return fStart; } 140 const MTime &GetNight() const { return fNight; } 141 const TString &GetSource() const { return fSource; } 142 143 const TString GetExcludedRuns() const; 144 145 // Filesystem interface 100 146 UInt_t SetupPedRuns(MDirIter &iter, const char *path=0, Bool_t raw=kFALSE) const; 101 147 UInt_t SetupDatRuns(MDirIter &iter, const char *path=0, Bool_t raw=kFALSE) const; … … 103 149 UInt_t SetupCalRuns(MDirIter &iter, const char *path=0, Bool_t raw=kFALSE) const; 104 150 UInt_t SetupDatRuns(MDirIter &iter, FileType_t type, const char *path=0) const; 105 /*106 UInt_t SetupPedRuns(MDirIter &iter, FileType_t type, const char *path=0);107 UInt_t SetupDatRuns(MDirIter &iter, FileType_t type, const char *path=0);108 UInt_t SetupAllRuns(MDirIter &iter, FileType_t type, const char *path=0);109 UInt_t SetupCalRuns(MDirIter &iter, FileType_t type, const char *path=0);110 */111 151 112 // Getter 113 // UInt_t GetNumAllRuns() const { return fRuns.GetSize(); } 114 // UInt_t GetNumDatRuns() const { return fDatRuns.GetSize(); } 115 // UInt_t GetNumPedRuns() const { return fPedRuns.GetSize(); } 116 // UInt_t GetNumCalRuns() const { return fCalRuns.GetSize(); } 117 UInt_t GetNumExclRuns() const { return fExclRuns.GetSize(); } 118 119 UInt_t GetSequence() const { return fSequence; } 120 UInt_t GetLastRun() const { return fLastRun; } 121 UInt_t GetPeriod() const { return fPeriod; } 122 LightCondition_t GetLightCondition() const { return fLightCondition; } 123 Bool_t HasMoon() const { return fLightCondition==kMoon; } 124 125 const UInt_t GetFirstRun() const { return fRuns[0]; } 126 const UInt_t GetFirstCalRun() const { return fCalRuns[0]; } 127 const UInt_t GetLastCalRun() const { return fCalRuns[fCalRuns.GetSize()-1]; } 128 // const TArrayI &GetDatRuns() const { return fDatRuns; } 129 // const TArrayI &GetPedRuns() const { return fPedRuns; } 130 // const TArrayI &GetCalRuns() const { return fCalRuns; } 131 const TArrayI &GetExclRuns() const { return fExclRuns; } 132 133 const MTime &GetStart() const { return fStart; } 134 const MTime &GetNight() const { return fNight; } 135 const TString &GetSource() const { return fSource; } 152 // Filesystem getter 153 const TString &GetFileName() const { return fFileName; } 154 const TString &GetDataPath() const { return fDataPath; } 136 155 137 156 const TString GetStandardPath() const { return fMonteCarlo?"/magic/montecarlo/":"/magic/data/"; } 138 157 139 const TString &GetFileName() const { return fFileName; }140 const TString &GetDataPath() const { return fDataPath; }141 142 const TString GetExcludedRuns() const;143 144 // Setter145 void SetNight(const char*night);146 147 UInt_t AddRuns(UInt_t first, UInt_t last) { return MSequence::AddRuns(first, last, 0); }148 UInt_t AddCalRuns(UInt_t first, UInt_t last) { return MSequence::AddRuns(first, last, &fCalRuns); }149 UInt_t AddPedRuns(UInt_t first, UInt_t last) { return MSequence::AddRuns(first, last, &fPedRuns); }150 UInt_t AddDatRuns(UInt_t first, UInt_t last) { return MSequence::AddRuns(first, last, &fDatRuns); }151 152 UInt_t AddRuns(UInt_t num) { return AddRuns(num, num); }153 UInt_t AddCalRuns(UInt_t num) { return AddCalRuns(num, num); }154 UInt_t AddPedRuns(UInt_t num) { return AddPedRuns(num, num); }155 UInt_t AddDatRuns(UInt_t num) { return AddDatRuns(num, num); }156 157 void ExcludeRun(UInt_t num);158 void ExcludeRuns(TString runs);159 160 158 static Bool_t InflatePath(TString &seq, Bool_t ismc=kFALSE); 161 159 162 ClassDef(MSequence, 4)160 ClassDef(MSequence, 5) // Describes a sequences, reads and writes sequence files 163 161 }; 164 162
Note:
See TracChangeset
for help on using the changeset viewer.