Marlin  01.17.01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SimpleTrackSmearer.h
Go to the documentation of this file.
1 #ifndef SimpleTrackSmearer_h
2 #define SimpleTrackSmearer_h 1
3 
4 #include "marlin/MarlinConfig.h"
5 
6 #ifdef MARLIN_CLHEP // only if CLHEP is available !
7 
9 #include <vector>
10 
11 #define ELECTRON_MASS 0.0005109989
12 #define MUON_MASS 0.10565836
13 #define PION_MASS 0.139570
14 
15 namespace marlin{
16 
22  struct TrackResolution {
23 
24  TrackResolution() :
25  DPP(0.) ,
26  ThMin(0.) ,
27  ThMax(0.) {}
28 
29  TrackResolution(float dPP, float thMin, float thMax) :
30  DPP(dPP) ,
31  ThMin(thMin) ,
32  ThMax(thMax) {}
33 
34  float DPP ;
35  float ThMin ;
36  float ThMax ;
37 
38  } ;
39 
40 
51  class SimpleTrackSmearer : public IFourVectorSmearer {
52 
53  typedef std::vector<TrackResolution> ResVec ;
54 
55  public:
56 
57  SimpleTrackSmearer(const std::vector<float>& resVec ) ;
58 
59 
61  virtual ~SimpleTrackSmearer() {}
62 
67  virtual HepLorentzVector smearedFourVector( const HepLorentzVector& v, int pdgCode ) ;
68 
69  protected:
70 
71  ResVec _resVec ;
72 
73  } ;
74 
75 
76 
77 } // end namespace
78 
79 #endif // MARLIN_CLHEP
80 #endif // SimpleTrackSmearer_h
81