Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

DefaultSmearer.h

Go to the documentation of this file.
00001 // DefaultSmearer class
00002 //
00003 // Namespace Atlfast::
00004 //
00005 //-----------------------------------------------------------------
00006 //
00007 // This class provides a default implementation of the ISmearer
00008 // interface. It manages the generation of random numbers and
00009 // implements the smear() function required by ISmear
00010 //
00011 // Prototype- needs tidying up!
00012 //
00013 // Authors: H.T.Phillips, P. Clarke, E. Richter-Was, P. Sherwood, R. Steward
00014 //
00015 //
00016 //
00017 
00018 #ifndef __Atlfast_defaultsmearer__
00019 #define __Atlfast_defaultsmearer__
00020 
00021 //CLHEP includes
00022 #include "CLHEP/Random/RandGauss.h"
00023 #include "CLHEP/Random/JamesRandom.h"
00024 
00025 //Atlfast includes
00026 #include "AtlfastCode/ISmearer.h"
00027 
00028 namespace Atlfast {
00034   class DefaultSmearer : public ISmearer {
00035 
00036   public:
00037     //----------------------------------------
00038     // Constructors and Destructors
00039     //----------------------------------------
00041     DefaultSmearer (const int aseed );
00042 
00043     virtual ~DefaultSmearer();
00044 
00045     //----------------------------------------
00046     // The Smear Method
00047     //----------------------------------------
00049     virtual HepLorentzVector smear( const HepLorentzVector& );
00050 
00051     //------------------------------------------------
00056     inline RandGauss* randGauss( ) { return m_randGauss;}
00057 
00058   private:
00059     //----------------------------------------
00060     // Private Methods
00061     //----------------------------------------
00062 
00063     //----------------------------------------
00064     // Data Members
00065     //---------------------------------------
00066 
00067     // For now, we manage the random number engine
00068     // ourselves. In the future we can use the framework
00069     // random number service (Gaudi 4 has one for example)
00070     // WE SHOULD USE THIS SERVICE ASAP!!
00071  
00073     HepRandomEngine* m_randomEngine;
00078     RandGauss* m_randGauss;
00079 
00080     // And the random number seed which I put here as a member
00081     // variable because I hope to allow it to be written with
00082     // jobOptions eventually...
00083     // Although right now it is not used anywhere other than the
00084     // constructor.
00086     int m_randSeed;
00087 
00088   };
00089 
00090 
00091 } // end of namespace bracket
00092 
00093 #endif

Generated on Wed Jan 23 12:58:31 2002 for Atlfast by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001