Ignore:
Timestamp:
06/17/08 18:09:42 (16 years ago)
Author:
tbretz
Message:
*** empty log message ***
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/mjobs/MSequence.h

    r8780 r8969  
    44#ifndef ROOT_TArrayI
    55#include <TArrayI.h>
    6 #endif
    7 
    8 #ifndef ROOT_TExMap
    9 #include <TExMap.h>
    106#endif
    117
     
    4844
    4945    TArrayI fRuns;
     46    TArrayI fRunsSub;
     47
    5048    TArrayI fCalRuns;
     49    TArrayI fCalRunsSub;
     50
    5151    TArrayI fPedRuns;
     52    TArrayI fPedRunsSub;
     53
    5254    TArrayI fDatRuns;
     55    TArrayI fDatRunsSub;
    5356
    5457    TArrayI fExclRuns;
     58    TArrayI fExclRunsSub;
    5559
    5660    Bool_t fMonteCarlo;
    5761
    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;
    5965
    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;
    6268
    6369    LightCondition_t ReadLightCondition(TEnv &env, const char *prefix) const;
    6470
    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;
    6675
    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);
    7291
    7392public:
     
    81100        fRuns(s.fRuns), fCalRuns(s.fCalRuns), fPedRuns(s.fPedRuns),
    82101        fDatRuns(s.fDatRuns), fMonteCarlo(s.fMonteCarlo) { }
    83     ~MSequence();
    84102
    85103    // TObject
    86104    void Print(Option_t *o) const;
    87     void Print() const { Print(); } //*MENU*
     105    void Print() const { Print(""); } //*MENU*
    88106
    89107    const char *GetName() const;
     
    93111    Bool_t IsValid() const { return fSequence!=(UInt_t)-1; }
    94112    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);
    97126
    98127    void SetMonteCarlo(Bool_t ismc=kTRUE) { fMonteCarlo=ismc; }
    99128
     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
    100146    UInt_t SetupPedRuns(MDirIter &iter, const char *path=0, Bool_t raw=kFALSE) const;
    101147    UInt_t SetupDatRuns(MDirIter &iter, const char *path=0, Bool_t raw=kFALSE) const;
     
    103149    UInt_t SetupCalRuns(MDirIter &iter, const char *path=0, Bool_t raw=kFALSE) const;
    104150    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    */
    111151
    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; }
    136155
    137156    const TString GetStandardPath() const { return fMonteCarlo?"/magic/montecarlo/":"/magic/data/"; }
    138157
    139     const TString &GetFileName() const { return fFileName; }
    140     const TString &GetDataPath() const { return fDataPath; }
    141 
    142     const TString GetExcludedRuns() const;
    143 
    144     // Setter
    145     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 
    160158    static Bool_t InflatePath(TString &seq, Bool_t ismc=kFALSE);
    161159
    162     ClassDef(MSequence, 4)
     160    ClassDef(MSequence, 5) // Describes a sequences, reads and writes sequence files
    163161};
    164162
Note: See TracChangeset for help on using the changeset viewer.