00001 #ifndef TRACKINTERFACES_ITRACKSELECTOR_H
00002 #define TRACKINTERFACES_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 selectByTrackType( Track* track ) const = 0;
00030 virtual bool selectByTrackType( MCParticle* mcParticle ) = 0;
00031
00032 virtual unsigned int trackType( MCParticle* mcPart ) = 0;
00033
00034 virtual StatusCode setTrackType( MCParticle* mcPart,
00035 Track*& track ) = 0;
00036
00037 };
00038
00039 #endif // TRACKINTERFACES_ITRACKSELECTOR_H