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

SimpleTrackSmearer.h

00001 #ifndef SimpleTrackSmearer_h
00002 #define SimpleTrackSmearer_h 1
00003 
00004 #ifdef USE_CLHEP  // only if CLHEP is available !
00005 
00006 #include "marlin/IFourVectorSmearer.h"
00007 #include <vector>
00008 
00009 #define ELECTRON_MASS 0.0005109989 
00010 #define MUON_MASS     0.10565836 
00011 #define PION_MASS     0.139570 
00012 
00013 namespace marlin{
00014 
00020   struct TrackResolution {
00021 
00022     TrackResolution() :
00023       DPP(0.) ,
00024       ThMin(0.) ,
00025       ThMax(0.) {}
00026 
00027     TrackResolution(float dPP, float thMin, float thMax) :
00028       DPP(dPP) ,
00029       ThMin(thMin) ,
00030       ThMax(thMax) {}
00031     
00032     float DPP ;
00033     float ThMin ;
00034     float ThMax ;
00035 
00036   } ;
00037   
00038 
00049   class SimpleTrackSmearer : public IFourVectorSmearer {
00050     
00051     typedef std::vector<TrackResolution> ResVec ;
00052 
00053   public:
00054     
00055     SimpleTrackSmearer(const std::vector<float>& resVec ) ;
00056     
00057     
00059     virtual ~SimpleTrackSmearer() {} 
00060     
00065     virtual HepLorentzVector smearedFourVector( const HepLorentzVector& v, int pdgCode ) ;
00066     
00067   protected:
00068 
00069     ResVec _resVec ;
00070 
00071   } ;
00072   
00073 
00074 
00075 } // end namespace 
00076 
00077 #endif // ifdef CLHEP  
00078 #endif
00079 
00080 
00081 

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