Marlin  01.17.01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SimpleClusterSmearer.h
Go to the documentation of this file.
1 #ifndef SimpleClusterSmearer_h
2 #define SimpleClusterSmearer_h 1
3 
4 #include "marlin/MarlinConfig.h"
5 
6 #ifdef MARLIN_CLHEP // only if CLHEP is available !
7 
9 #include <vector>
10 
11 namespace marlin{
12 
18  struct ClusterResolution {
19 
20  ClusterResolution() :
21  A(0.) ,
22  B(0.) ,
23  ThMin(0.) ,
24  ThMax(0.) {}
25 
26  ClusterResolution(float a, float b, float thMin, float thMax) :
27  A(a) ,
28  B(b) ,
29  ThMin(thMin) ,
30  ThMax(thMax) {}
31 
32  float A ;
33  float B ;
34  float ThMin ;
35  float ThMax ;
36 
37  } ;
38 
47  class SimpleClusterSmearer : public IFourVectorSmearer {
48 
49 
50  typedef std::vector<ClusterResolution> ResVec ;
51 
52  public:
53 
54  SimpleClusterSmearer(const std::vector<float>& resVec ) ;
55 
56 
58  virtual ~SimpleClusterSmearer() {}
59 
64  virtual HepLorentzVector smearedFourVector( const HepLorentzVector& v, int pdgCode ) ;
65 
66  protected:
67 
68  ResVec _resVec ;
69 
70  } ;
71 
72 
73 
74 } // end namespace
75 
76 #endif // MARLIN_CLHEP
77 #endif // SimpleClusterSmearer_h
78