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_H
00019 #define ATLFAST_DEFAULTSMEARER_H
00020 
00021 //Atlfast includes
00022 #include "AtlfastCode/ISmearer.h"
00023 
00024 class RandGauss;
00025 class HepRandomEngine;
00026 
00027 namespace Atlfast {
00033   class DefaultSmearer : public ISmearer {
00034 
00035   public:
00036     //----------------------------------------
00037     // Constructors and Destructors
00038     //----------------------------------------
00040     DefaultSmearer (const int aseed );
00041 
00042     virtual ~DefaultSmearer();
00043 
00044     //----------------------------------------
00045     // The Smear Method
00046     //----------------------------------------
00048     virtual HepLorentzVector smear( const HepLorentzVector& );
00049 
00050     //------------------------------------------------
00055     inline RandGauss* randGauss( ) { return m_randGauss;}
00056 
00057   private:
00058     //----------------------------------------
00059     // Private Methods
00060     //----------------------------------------
00061 
00062     //----------------------------------------
00063     // Data Members
00064     //---------------------------------------
00065 
00066     // For now, we manage the random number engine
00067     // ourselves. In the future we can use the framework
00068     // random number service (Gaudi 4 has one for example)
00069     // WE SHOULD USE THIS SERVICE ASAP!!
00070  
00072     HepRandomEngine* m_randomEngine;
00077     RandGauss* m_randGauss;
00078 
00079     // And the random number seed which I put here as a member
00080     // variable because I hope to allow it to be written with
00081     // jobOptions eventually...
00082     // Although right now it is not used anywhere other than the
00083     // constructor.
00085     int m_randSeed;
00086 
00087   };
00088 
00089 
00090 } // end of namespace bracket
00091 
00092 #endif

Generated on Thu Feb 21 14:30:45 2002 for Atlfast by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001