ElectronSmearer.h

Go to the documentation of this file.
00001 // ElectronSmearer class
00002 //
00003 // Implements smearing for electrons a la 
00004 //
00005 // Namespace Atlfast::
00006 //
00007 //--------------------------------------------------------------
00008 //
00009 // ElectronSmearer replicates the smearing code of ATLFAST++'s
00010 // ElectronMaker. It provides the smear() method defined
00011 // in the ISmearer interface. It privately inherits from
00012 // the DefaultSmearer class to use its implementation of
00013 // random number services etc.
00014 //
00015 // Authors: H.T.Phillips, P. Clarke, E. Richter-Was, P. Sherwood, R. Steward
00016 //
00017 
00018 #ifndef ATLFAST_ELECTRONSMEARER_H
00019 #define ATLFAST_ELECTRONSMEARER_H
00020 
00021 
00022 #include "AtlfastAlgs/ISmearer.h"
00023 #include "AtlfastAlgs/DefaultSmearer.h"
00024 
00025 #include "GaudiKernel/MsgStream.h"
00026 
00027 #include "CLHEP/Vector/LorentzVector.h"
00028 
00029 namespace Atlfast {
00030 
00040   class ElectronSmearer : virtual public ISmearer, 
00041                           virtual private DefaultSmearer 
00042     {
00043     public:
00044       //--------------------------------------------------------------------------
00045       // constructors and destructors- we can leave everything to DefaultSmearer
00046       //--------------------------------------------------------------------------
00048       ElectronSmearer(const int aseed, const int lumi, MsgStream& log) : 
00049         ISmearer(), DefaultSmearer(aseed), m_lumi(lumi), m_log(log){}
00050       
00052       virtual ~ElectronSmearer() { }
00053 
00054       //--------------------------------------------------------------------------
00055       // the only thing we actually need to provide is the smear() method
00056       //--------------------------------------------------------------------------
00058       virtual HepLorentzVector smear(const HepMC::GenParticle&);
00060       virtual HepLorentzVector smear(const HepLorentzVector& avec);
00061 
00063       virtual int setSmearParameters( const std::vector<double>& smearValues );
00065       virtual int setSmearParamSchema( const int smearSchema);
00066       
00067     private:
00068       //--------------------------------------------------------------------------
00069       // luminosity option. Currently using an int with 1= low lumi
00070       // 2 = high lumi. This is not very pleasant, but leave for now
00071       //--------------------------------------------------------------------------
00073       int m_lumi;
00074       //cct: these are the approved values for use in smearing
00075       std::vector<double> m_smearParams;
00076       int m_smearParamSchema;
00077       MsgStream& m_log;
00078      
00079     };
00080   
00081 } // end of namespace bracket
00082 
00083 #endif

Generated on Mon Sep 24 14:19:10 2007 for AtlfastAlgs by  doxygen 1.5.1