00001 #ifndef TRACKTOOLS_ITRACKSELECTOR_H
00002 #define TRACKTOOLS_ITRACKSELECTOR_H 1
00003
00004
00005 #include "GaudiKernel/IAlgTool.h"
00006
00007 class MCParticle;
00008 class Track;
00009
00018 static const InterfaceID IID_ITrackSelector( "ITrackSelector", 1, 0 );
00019
00020 class ITrackSelector : virtual public IAlgTool
00021 {
00022 public:
00024 static const InterfaceID& interfaceID() { return IID_ITrackSelector; }
00025
00026 virtual bool select( Track* track ) const = 0;
00027 virtual bool select( MCParticle* mcParticle ) = 0;
00028
00029 virtual bool selectTrackType( Track* track ) const = 0;
00030 virtual bool selectTrackType( MCParticle* mcParticle ) = 0;
00031
00032 virtual int getTrackType( Track* track ) const = 0;
00033 virtual int getTrackType( MCParticle* mcPart ) = 0;
00034
00035 virtual StatusCode setTrackType( const int tracktype,
00036 Track*& track ) const = 0;
00037 virtual StatusCode setTrackType( MCParticle* mcPart,
00038 Track*& track ) = 0;
00039
00040 };
00041
00042 #endif // TRACKTOOLS_ITRACKSELECTOR_H