Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | Related Pages

SimpleParticleFactory.h

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 //     /** Helper function to determine the charge from the PDG (charge is missing from stdhep files) 
00048 //      */
00049 //     virtual float getCharge( int pdgCode ) ;
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

Generated on Mon Jan 12 09:48:51 2009 for Marlin by doxygen 1.3.5