source: trunk/MagicSoft/Mars/mjobs/MDataSet.h@ 7380

Last change on this file since 7380 was 7380, checked in by tbretz, 19 years ago
*** empty log message ***
File size: 3.3 KB
Line 
1#ifndef MARS_MDataSet
2#define MARS_MDataSet
3
4#ifndef MARS_MParContainer
5#include "MParContainer.h"
6#endif
7
8#ifndef ROOT_TArrayI
9#include <TArrayI.h>
10#endif
11
12class TChain;
13
14class MRead;
15class MDirIter;
16class MPointingPos;
17
18class MDataSet : public MParContainer
19{
20private:
21 static const TString fgCatalog; //! Default Catalog path
22 static const TString fgPathDataFiles; //! Default path to data files
23 static const TString fgPathSequences; //! Default path to sequences
24
25 UInt_t fNumAnalysis; // Analysis number (artificial)
26
27 TArrayI fNumSequencesOn; // number of on-sequences
28 TArrayI fNumSequencesOff; // number of off-sequences
29
30 TList fSequencesOn; // list of names and paths of on-sequences
31 TList fSequencesOff; // list of names and paths of off-sequences
32
33 TString fNameSource; // Name of source from catalog
34 TString fCatalog; // edb catalog (magic_favourites.edb)
35
36 TString fComment; // Comment from DS file
37
38 Bool_t fIsWobbleMode; // Wobble Mode for this dataset?
39
40 void Split(TString &runs, TArrayI &data) const;
41 void ResolveSequences(TEnv &env, const TArrayI &num, TList &list, const TString &sequences, const TString &data) const;
42 static void PrintFile(const TObject &obj);
43
44 void ReplaceDir(TList &list, const TString &old, const TString &news) const;
45 void ReplaceFile(TList &list, const TString &old, const TString &news) const;
46
47 void SetupDefaultPath(TString &path, const TString &def) const
48 {
49 if (path.IsNull())
50 path = def;
51 if (!path.EndsWith("/"))
52 path += "/";
53 }
54
55public:
56 MDataSet() : fNumAnalysis((UInt_t)-1) { }
57 MDataSet(const char *fname, TString sequences="", TString data="");
58
59 // Getter
60 Bool_t IsValid() const { return fNumAnalysis!=(UInt_t)-1; }
61
62 UInt_t GetNumSequencesOn() const { return fNumSequencesOn.GetSize(); }
63 UInt_t GetNumSequencesOff() const { return fNumSequencesOff.GetSize(); }
64
65 Bool_t HasOffSequences() const { return GetNumSequencesOff()>0; }
66
67 UInt_t GetNumAnalysis() const { return fNumAnalysis; }
68 void SetNumAnalysis(UInt_t num) { fNumAnalysis=num; }
69
70 Bool_t HasSource() const { return !fNameSource.IsNull(); }
71 Bool_t GetSourcePos(MPointingPos &pos) const;
72
73 Bool_t IsWobbleMode() const { return fIsWobbleMode; }
74
75 // Setter
76 static Bool_t AddSequencesFromList(const TList &list, MDirIter &files);
77 static Int_t AddFilesToChain(MDirIter &files, TChain &chain);
78
79 const TList &GetSequencesOn() const { return fSequencesOn; }
80 const TList &GetSequencesOff() const { return fSequencesOff; }
81
82 Bool_t AddFiles(MRead &read) const;
83 Bool_t AddFilesOn(MRead &read) const;
84 Bool_t AddFilesOff(MRead &read) const;
85
86 Bool_t AddFiles(TChain &read) const;
87 Bool_t AddFilesOn(TChain &read) const;
88 Bool_t AddFilesOff(TChain &read) const;
89
90 void ReplaceDir(const TString &old, const TString &news)
91 {
92 ReplaceDir(fSequencesOn, old, news);
93 ReplaceDir(fSequencesOff, old, news);
94 }
95
96 void ReplaceFile(const TString &old, const TString &news)
97 {
98 ReplaceFile(fSequencesOn, old, news);
99 ReplaceFile(fSequencesOff, old, news);
100 }
101
102 // TObject
103 void Print(Option_t *o="") const;
104
105 ClassDef(MDataSet, 0)
106};
107
108#endif
Note: See TracBrowser for help on using the repository browser.