PhotonSmearer.h

Go to the documentation of this file.
00001 // PhotonSmearer class
00002 //
00003 // Implements smearing for photons a la 
00004 //
00005 // Namespace Atlfast::
00006 //
00007 //--------------------------------------------------------------
00008 //
00009 // PhotonSmearer replicates the smearing code of ATLFAST++'s
00010 // PhotonMaker. 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_PHOTONSMEARER_H
00019 #define ATLFAST_PHOTONSMEARER_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 {
00037   class PhotonSmearer : virtual public ISmearer, 
00038                         virtual private DefaultSmearer 
00039     {
00040     public:
00041       //--------------------------------------------------------------------------
00042       // constructors and destructors- we can leave everything to DefaultSmearer
00043       //--------------------------------------------------------------------------
00044       PhotonSmearer(const int aseed, const int lumi, MsgStream& log) : 
00045         ISmearer(), DefaultSmearer(aseed), m_lumi(lumi), m_log(log){}
00046       virtual ~PhotonSmearer() { }
00047 
00048       //--------------------------------------------------------------------------
00049       // the only thing we actually need to provide is the smear() method
00050       //--------------------------------------------------------------------------
00052       virtual HepLorentzVector smear(const HepMC::GenParticle&);
00053       virtual HepLorentzVector smear(const HepLorentzVector& avec);
00054 
00057       virtual int setSmearParameters( const std::vector<double>& smearValues );
00058       virtual int setSmearParamSchema( const int smearSchema );
00059 
00060     private:
00061       //--------------------------------------------------------------------------
00062       // luminosity option. Currently using an int with 1= low lumi
00063       // 2 = high lumi. This is not very pleasant, but leave for now
00064       //--------------------------------------------------------------------------
00065       int m_lumi;
00066       //cw - defines the smear parameters and the schema
00067       std::vector<double> m_smearParams;
00068       int m_smearParamSchema;
00069       MsgStream& m_log;
00070       
00071     };
00072 
00073 } // end of namespace bracket
00074 
00075 #endif

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