Marlin  1.17.1
 All Classes Namespaces Functions Variables Enumerations Friends Pages
SimpleTrackSmearer.h
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 
8 #include "marlin/IFourVectorSmearer.h"
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 
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 
Interface for smearing of four vectors - based on CLHEP::HepLorentzVector.
Definition: IFourVectorSmearer.h:23
Smears the four vectors of charged tracks according to dP/P = r for a given range of the polar angle...
Definition: SimpleTrackSmearer.h:51
Small helper class to store tracker resolutions for a polar angle range.
Definition: SimpleTrackSmearer.h:22
virtual ~SimpleTrackSmearer()
Virtual d&#39;tor.
Definition: SimpleTrackSmearer.h:61
virtual HepLorentzVector smearedFourVector(const HepLorentzVector &v, int pdgCode)
Smears the given four vector according to the resolution for the polar angle of the track...
Definition: SimpleTrackSmearer.cc:43