00001 #ifndef SimpleParticleFactory_h
00002 #define SimpleParticleFactory_h 1
00003
00004 #ifdef USE_CLHEP // only if CLHEP is available !
00005
00006 #include "marlin/IRecoParticleFactory.h"
00007 #include "marlin/IFourVectorSmearer.h"
00008 #include "marlin/FastMCParticleType.h"
00009
00010
00011 namespace marlin {
00012
00021 class SimpleParticleFactory : public IRecoParticleFactory {
00022
00023 public:
00024
00025 SimpleParticleFactory() ;
00026
00027
00029 virtual ~SimpleParticleFactory() {}
00030
00031
00034 virtual lcio::ReconstructedParticle* createReconstructedParticle( const lcio::MCParticle* mcp ) ;
00035
00036
00039 virtual void registerIFourVectorSmearer( IFourVectorSmearer* sm , FastMCParticleType type ) ;
00040
00041
00044 virtual FastMCParticleType getParticleType( const lcio::MCParticle* mcp ) ;
00045
00046
00047
00048
00049
00050
00051
00054 virtual void setMomentumCut( double mCut ) ;
00055
00056 protected:
00057
00058 std::vector<IFourVectorSmearer*> _smearingVec ;
00059 double _momentumCut ;
00060
00061 };
00062
00063 }
00064 #endif
00065
00066 #endif