StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StHbtSmearPair.h
1 /***************************************
2  * $Id: StHbtSmearPair.h,v 1.6 2003/05/22 20:59:03 perev Exp $
3  *
4  * Author: Mike Lisa, Ohio State lisa@mps.ohio-state.edu
5  ****************************************
6  *
7  * Description: given a StHbtPair, this class provides a corresponding
8  * StHbtPair whose constituent StHbtParticles' momenta have been
9  * smeared according to a parameterization of the STAR momentum
10  * resolution.
11  * >> The input StHbtPair is not altered in anyway <<
12  *
13  ******************************************
14  *
15  * $Log: StHbtSmearPair.h,v $
16  * Revision 1.6 2003/05/22 20:59:03 perev
17  * virtual dtr to avoid warning
18  *
19  * Revision 1.5 2003/05/08 17:22:12 magestro
20  * Un-made change for the second time that causes library not to load
21  *
22  * Revision 1.4 2003/04/30 20:37:23 perev
23  * Warnings cleanup. Modified lines marked VP
24  *
25  * Revision 1.3 2003/02/05 21:16:10 magestro
26  * Reverted back to non-virtual destructor because library wouldn't load (not understood yet)
27  *
28  * Revision 1.2 2003/01/31 19:00:38 magestro
29  * Destructor made virtual, due to virtual destructor of a data member
30  *
31  * Revision 1.1 2001/05/23 00:19:05 lisa
32  * Add in Smearing classes and methods needed for momentum resolution studies and correction
33  *
34  *
35  ******************************************/
36 
37 #ifndef StHbtSmearPair_h
38 #define StHbtSmearPair_h
39 
40 #include "StHbtMaker/Infrastructure/StHbtPair.hh"
41 
43  public:
44 
46  StHbtSmearPair(const StHbtPair* unSmearedPair);
47  virtual ~StHbtSmearPair(){};
48 
49  void SetUnsmearedPair(const StHbtPair* unSmearedPair); // essentially same as c'tor
50 
51  StHbtPair& SmearedPair(); // access to the smeared pair
52 
53  //========= resolution parameters ==========
54  // pT resolution parameterized by d(pT) = Frac*pT
55  void SetFractionalPtRes(double);
56  // phi resolution parameterized d(phi)= by a+b*P^alpha (Fabrice Retiere's way)
57  void SetPhiRes_a(double a);
58  void SetPhiRes_b(double b);
59  void SetPhiRes_alpha(double alpha);
60  // phi resolution parameterized by d(theta) = a+b*P^alpha (Fabrice Retiere's way)
61  void SetThetaRes_a(double a);
62  void SetThetaRes_b(double b);
63  void SetThetaRes_alpha(double alpha);
64  //==========================================
65 
66  StHbtLorentzVector SmearedMomentum(StHbtLorentzVector input);
67 
68  private:
69 
70  StHbtPair mSmearedPair;
71  StHbtParticle mParticle1;
72  StHbtParticle mParticle2;
73 
74  //========= resolution parameters ==========
75  double mFracPtRes;
76  double mPhi_a;
77  double mPhi_b;
78  double mPhi_alpha;
79  double mTheta_a;
80  double mTheta_b;
81  double mTheta_alpha;
82  //==========================================
83 
84  void setup();
85 
86 #ifdef __ROOT__
87  ClassDef(StHbtSmearPair, 0)
88 #endif
89 
90 };
91 
92 inline void StHbtSmearPair::SetFractionalPtRes(double val){mFracPtRes = val;}
93 inline void StHbtSmearPair::SetPhiRes_a(double val){mPhi_a = val;}
94 inline void StHbtSmearPair::SetPhiRes_b(double val){mPhi_b = val;}
95 inline void StHbtSmearPair::SetPhiRes_alpha(double val){mPhi_alpha = val;}
96 inline void StHbtSmearPair::SetThetaRes_a(double val){mTheta_a = val;}
97 inline void StHbtSmearPair::SetThetaRes_b(double val){mTheta_b = val;}
98 inline void StHbtSmearPair::SetThetaRes_alpha(double val){mTheta_alpha = val;}
99 
100 inline StHbtPair& StHbtSmearPair::SmearedPair(){return mSmearedPair;}
101 
102 #endif