00001 // PhotonSmearer class 00002 // 00003 // Implements smearing for photons 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 "AtlfastCode/ISmearer.h" 00023 #include "AtlfastCode/DefaultSmearer.h" 00024 00025 class HepLorentzVector; //forward declaration 00026 00027 namespace Atlfast { 00035 class PhotonSmearer : virtual public ISmearer, 00036 virtual private DefaultSmearer 00037 { 00038 public: 00039 //-------------------------------------------------------------------------- 00040 // constructors and destructors- we can leave everything to DefaultSmearer 00041 //-------------------------------------------------------------------------- 00042 PhotonSmearer(const int aseed, const int lumi) : ISmearer(), DefaultSmearer(aseed), m_lumi(lumi) { } 00043 virtual ~PhotonSmearer() { } 00044 00045 //-------------------------------------------------------------------------- 00046 // the only thing we actually need to provide is the smear() method 00047 //-------------------------------------------------------------------------- 00048 virtual HepLorentzVector smear(const HepLorentzVector& avec); 00049 00050 private: 00051 //-------------------------------------------------------------------------- 00052 // luminosity option. Currently using an int with 1= low lumi 00053 // 2 = high lumi. This is not very pleasant, but leave for now 00054 //-------------------------------------------------------------------------- 00055 int m_lumi; 00056 00057 }; 00058 00059 } // end of namespace bracket 00060 00061 #endif