00001
00002
00003
00004 #ifndef STAR_StVirtualEventFilter
00005 #define STAR_StVirtualEventFilter
00006
00008
00009
00010
00011
00012
00013
00015
00016
00017 #include <TObject.h>
00018 #include <Gtypes.h>
00019
00020 class StObjArray;
00021 class StGlobalTrack;
00022 class StVertex;
00023
00024 class TTableSorter;
00025 class TTable;
00026
00027 class StVirtualEventFilter : public TObject {
00028 protected:
00029 Int_t m_ActiveFlag;
00030 ULong_t mOptions;
00031 public:
00032 StVirtualEventFilter(Int_t flag=0):m_ActiveFlag(flag){;}
00033 virtual ~StVirtualEventFilter(){;}
00034 Int_t IsOn() { return GetFlag();}
00035 Int_t IsOff(){ return !GetFlag();}
00036 virtual Int_t GetFlag();
00037 ULong_t GetOptions();
00038 Int_t Turn(Int_t flag=1);
00039 Int_t TurnOn() { return Turn();}
00040 Int_t TurnOff(){ return Turn(0);}
00041 Int_t Toggle() { return GetFlag()? TurnOff():TurnOn();}
00042 virtual Int_t Channel(StGlobalTrack *globTrack,Size_t &size,Style_t &style);
00043 virtual Int_t Channel(const StObjArray *hitCollection,Size_t &size,Style_t &style);
00044 virtual Int_t Channel(const TTableSorter *tableObject,Int_t index,Size_t &size,Style_t &style);
00045 virtual Int_t Channel(const StVertex *vertexObject,Size_t &size,Style_t &style);
00046 virtual Int_t Channel(const TTable *tableObject,Int_t rowNumber,Size_t &size,Style_t &style);
00047 virtual Int_t Reset(Int_t reset=0){return reset;}
00048 ULong_t SetOptions(ULong_t opt);
00049
00050 ClassDef(StVirtualEventFilter,0)
00051 };
00052
00053 inline ULong_t StVirtualEventFilter::GetOptions(){return mOptions;}
00054 inline ULong_t StVirtualEventFilter::SetOptions(ULong_t opt){ ULong_t o = GetOptions(); mOptions = opt; return o;}
00055 inline Int_t StVirtualEventFilter::Turn(Int_t flag){ Int_t s = GetFlag(); m_ActiveFlag = flag; return s;}
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083 #endif