StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StHbtShiftedHiddenInfo.h
1 /***************************************************************************
2  *
3  *
4  *
5  * Author: Adam Kisiel, Warsaw University of Technology, Poland
6  ***************************************************************************
7  *
8  * Description : Stores the hidden information for the particle
9  * The Momentum of the particle is first shifted according to
10  * ShiftType and then smeared according to the momentum resolution
11  * ShiftTypes:
12  * PSHIFT: Particle momentum is multiplied by (1 + x)
13  * PTSHIFT: Particle transverse momentum is multiplied by (1 + x)
14  * PHISHIFT: The direction (in transverse plane) of the momentum
15  * of one particle is shifted by x (in rad).
16  *
17  ***************************************************************************
18  *
19  *
20  *
21  ***************************************************************************/
22 
23 #ifndef StHbtShiftedHiddenInfo_hh
24 #define StHbtShiftedHiddenInfo_hh
25 
26 #include "StHbtMaker/Base/StHbtHiddenInfo.hh"
27 #include "StHbtMaker/Infrastructure/StHbtTypes.hh"
28 #include "TRandom.h"
29 #include "StHbtMaker/ThCorrFctn/StHbtMomRes.hh"
30 
31 enum ShiftType{PSHIFT, PTSHIFT, PHISHIFT};
32 
34 
35 public:
36 
37 // --- Constructors
39  StHbtShiftedHiddenInfo(const StHbtLorentzVector& aInitialMom,
40  const int& aPid,
41  TRandom* aRand,
42  const StHbtMomRes* aMomRes,
43  const double momShift,
44  const ShiftType aShiftType);
45 
47  StHbtShiftedHiddenInfo(const StHbtLorentzVector& aShiftedMom,
48  const int& aPid);
49 // --- Destructor
50  virtual ~StHbtShiftedHiddenInfo();
51 
52 
53 // --- Return hidden info content
54 
55  const StHbtLorentzVector getShiftedMom() const;
56  StHbtLorentzVector getMomentum() const;
57  int getPid() const;
58 
59 // ---Change hidden info content
60  void setInitialMom(const StHbtLorentzVector*, TRandom*, const StHbtMomRes*);
61  void setPid(int);
62  void setShift(double momShift);
63  void setShiftType(ShiftType aShiftType);
64 
65 // !!! MANDATORY !!!
66 // --- Copy the hidden info from StHbtTrack to StHbtParticle
67  virtual StHbtHiddenInfo* getParticleHiddenInfo() const;
68 
69  StHbtLorentzVector mShiftedMom;
70  protected:
71  // StHbtLorentzVector mEmPoint;
72  int mPid;
73  double mMomShift;
74  ShiftType mShiftType;
75 
76 };
77 
78 #endif