JetSmearer.h

Go to the documentation of this file.
00001 // JetSmearer class
00002 //
00003 // Implements smearing for Jets
00004 //
00005 // Namespace Atlfast::
00006 //
00007 //--------------------------------------------------------------
00008 //
00009 // JetSmearer replicates the smearing code of ATLFAST++'s
00010 // JetMaker. 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_JETSMEARER_H
00019 #define ATLFAST_JETSMEARER_H
00020 
00021 #ifndef ATLFAST_ISMEARER_H
00022 #include "AtlfastAlgs/ISmearer.h"
00023 #endif
00024 
00025 #ifndef ATLFAST_DEFAULTSMEARER_H
00026 #include "AtlfastAlgs/DefaultSmearer.h"
00027 #endif
00028 
00029 #include "CLHEP/Vector/LorentzVector.h"
00030 
00031 namespace Atlfast {
00032 
00038   class JetSmearer : virtual public ISmearer, 
00039                      virtual private DefaultSmearer 
00040     {
00041     public:
00042       //--------------------------------------------------------------------------
00043       // constructors and destructors- we can leave everything to DefaultSmearer
00044       //--------------------------------------------------------------------------
00046       JetSmearer(const int aseed, 
00047                  const int lumi, 
00048                  const double rconeb, 
00049                  const double rconef, 
00050                  const double barrelForwardEta) : 
00051         ISmearer(), 
00052         DefaultSmearer(aseed), 
00053         m_lumi(lumi), 
00054         m_rconeb(rconeb),
00055         m_rconef(rconef), 
00056         m_BarrelForwardEta(barrelForwardEta) 
00057         { }
00058       
00060       virtual ~JetSmearer() { }
00061       
00062       //--------------------------------------------------------------------------
00063       // the only thing we actually need to provide is the smear() method
00064       //--------------------------------------------------------------------------
00066       virtual HepLorentzVector smear(const HepMC::GenParticle&);
00068       virtual HepLorentzVector smear(const HepLorentzVector& avec);
00069 
00071       virtual int setSmearParameters( const std::vector<double>& smearValues );
00073       virtual int setSmearParamSchema( const int smearSchema );
00074       
00075     private:
00079       int m_lumi;
00080       double m_rconeb;           
00081       double m_rconef;           
00082       double m_BarrelForwardEta; 
00083     };
00084 
00085 } // end of namespace bracket
00086 
00087 #endif
00088 
00089 

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