Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | Related Pages

SimpleClusterSmearer.h

00001 #ifndef SimpleClusterSmearer_h
00002 #define SimpleClusterSmearer_h 1
00003 
00004 #ifdef USE_CLHEP  // only if CLHEP is available !
00005 
00006 #include "marlin/IFourVectorSmearer.h"
00007 #include <vector>
00008 
00009 namespace marlin{
00010 
00016   struct ClusterResolution {
00017     
00018     ClusterResolution() :
00019       A(0.) ,
00020       B(0.) ,
00021       ThMin(0.) ,
00022       ThMax(0.) {}
00023     
00024     ClusterResolution(float a, float b, float thMin, float thMax) :
00025       A(a) ,
00026       B(b) ,
00027       ThMin(thMin) ,
00028       ThMax(thMax) {}
00029     
00030     float A ;
00031     float B ;
00032     float ThMin ;
00033     float ThMax ;
00034     
00035   } ;
00036 
00045   class SimpleClusterSmearer : public IFourVectorSmearer {
00046     
00047   
00048     typedef std::vector<ClusterResolution> ResVec ;
00049 
00050   public:
00051     
00052     SimpleClusterSmearer(const std::vector<float>& resVec ) ;
00053     
00054     
00056     virtual ~SimpleClusterSmearer() {} 
00057     
00062     virtual HepLorentzVector smearedFourVector( const HepLorentzVector& v, int pdgCode ) ;
00063     
00064   protected:
00065 
00066     ResVec _resVec ;
00067 
00068   } ;
00069   
00070 
00071 
00072 } // end namespace 
00073 
00074 #endif // ifdef CLHEP  
00075 #endif
00076 
00077 
00078 

Generated on Mon Jan 12 09:48:51 2009 for Marlin by doxygen 1.3.5