00001 #ifndef ALT_DEMUX_PATTERN_MASTER_H
00002 #define ALT_DEMUX_PATTERN_MASTER_H
00003
00004 #include <set>
00005 #include <vector>
00006 #include "TObject.h"
00007 #include "AltDeMuxStructures.h"
00008
00009 class AltDeMuxPatternMaster;
00010 class AltDeMuxPattern;
00011
00012
00013 class AltDeMuxPattern: public TObject
00014 {
00015
00016 public:
00017
00018 AltDeMuxPattern(int i1);
00019 AltDeMuxPattern(int i1, int i2);
00020 AltDeMuxPattern(int i1, int i2, int i3);
00021 AltDeMuxPattern(int i1, int i2, int i3, int i4);
00022 AltDeMuxPattern(int i1, int i2, int i3, int i4, int i5);
00023 PatternPair GetI(int i);
00024 int Size(){return isize;};
00025
00026 private:
00027
00028 int isize;
00029 std::vector<PatternPair> pattern;
00030
00031 ClassDef(AltDeMuxPattern,1);
00032
00033 };
00034
00035 class AltDeMuxPatternMaster : public TObject
00036 {
00037 public:
00038
00039 AltDeMuxPatternMaster();
00040 bool SelectPattern(int entriesE, int entriesW);
00041 AltDeMuxPattern* Next();
00042
00043 private:
00044
00045 int icursor;
00046 int imax;
00047
00048
00049
00050 std::vector<AltDeMuxPattern*> pattern11;
00051 std::vector<AltDeMuxPattern*> pattern22;
00052 std::vector<AltDeMuxPattern*> pattern23;
00053 std::vector<AltDeMuxPattern*> pattern24;
00054 std::vector<AltDeMuxPattern*> pattern32;
00055 std::vector<AltDeMuxPattern*> pattern33;
00056 std::vector<AltDeMuxPattern*> pattern34;
00057 std::vector<AltDeMuxPattern*> pattern35;
00058 std::vector<AltDeMuxPattern*> pattern43;
00059 std::vector<AltDeMuxPattern*> pattern44;
00060 std::vector<AltDeMuxPattern*> pattern45;
00061 std::vector<AltDeMuxPattern*> pattern53;
00062 std::vector<AltDeMuxPattern*> pattern54;
00063 std::vector<AltDeMuxPattern*> pattern55;
00064 std::vector<AltDeMuxPattern*> *pCurrentSet;
00065
00066 ClassDef(AltDeMuxPatternMaster,1);
00067
00068 };
00069 #endif // MY_DEMUX_PATTERN_MASTER_H
00070