00001
00002
00003
00004
00005
00006
00007
00008 #ifndef StMuFilter_h
00009 #define StMuFilter_h
00010
00011 #include "StMuCut.h"
00012 #include "StEvent/StEnumerations.h"
00013 #include "StTrackMethod.h"
00014
00015 #include <list>
00016 #if !defined(ST_NO_NAMESPACES)
00017 using namespace std;
00018 #endif
00019
00020
00021 #if defined(ST_NO_TEMPLATE_DEF_ARGS)
00022 typedef list<unsigned short, allocator<unsigned short> > UnsignedShortCollection;
00023 typedef list<unsigned short, allocator<unsigned short> >::iterator UnsignedShortIterator;
00024 #else
00025 typedef list<unsigned short> UnsignedShortCollection;
00026 typedef list<unsigned short>::iterator UnsignedShortIterator;
00027 #endif
00028
00029
00030 class StMuFilter : public StMuCut {
00031 public:
00032 void addEncodedMethod(unsigned short method) { mEncodedMethods.push_back(method); }
00033 void addEncodedMethod(StTrackFinderMethod find, StTrackFittingMethod fit) { mEncodedMethods.push_back( fit + (1<<find)); }
00034 protected:
00035 UnsignedShortCollection mEncodedMethods;
00036
00037 virtual bool accept( const StEvent*);
00038 virtual bool accept( const StTrack*);
00039 virtual bool accept( const StV0Vertex*);
00040 virtual bool accept( const StXiVertex*);
00041 virtual bool accept( const StKinkVertex*);
00042 virtual bool accept( const StV0MuDst*);
00043 virtual bool accept( const StXiMuDst*);
00044 virtual bool accept( const StKinkMuDst*);
00045
00046 ClassDef(StMuFilter,1)
00047 };
00048
00049 #endif
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070