StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StHbtThPairGauss.h
1 /***************************************************************************
2  *
3  *
4  *
5  * Author: Laurent Conin, Fabrice Retiere, Subatech, France
6  ***************************************************************************
7  *
8  * Description : ThPair wich return :
9  * RealMomentum : HiddenInfo Momentum or Particle Momentum
10  * according to
11  * UseHiddenMomentum()/ UseParticleMomentum()
12  * EmPoint : EmPoint is distributed randomly in a Gaussian
13  * distribution.Size is fixed by SetSize() and
14  * Ref Frame is fixed by SetRCMS()...
15  * Pid : to be fixed
16  * MeasMomentum : Particle Momentum
17  *
18  *
19  ***************************************************************************
20  *
21  *
22  *
23  ***************************************************************************/
24 
25 #ifndef ST_HBT_THPAIR_GAUSS_HH
26 #define ST_HBT_THPAIR_GAUSS_HH
27 
28 #include "TRandom.h"
29 
30 #include "StHbtMaker/Infrastructure/StHbtPair.hh"
31 #include "StHbtMaker/Base/StHbtThPair.hh"
32 
33 enum RefFrame{RCMS,LCMS,PRF};
34 
35 class StHbtThPairGauss : public StHbtThPair {
36 
37 public:
39  virtual ~StHbtThPairGauss();
40  virtual void Set(const StHbtPair* aPair);
41 
42  void SetSize(double aXYZ,double aT );
43  void SetSize(double aX,double aY,double aZ, double aT);
44  void UseHiddenMomentum();
45  void UseParticleMomentum();
46 
47  void UseHiddenPid();
48  void UseFixedPid( int const tPid1, double const tMass1);
49  void UseFixedPid( int const tPid1,double const tMass1, int const tPid2,double const tMass2 );
50 
51  void SetBoostRCMS(double aPlab,double aMBeam, double aMTarget);
52 
53  void SetRCMS();
54  void SetLCMS();
55  void SetPRF();
56 
57 
58  protected:
59  TRandom mRand;
60  bool mUseHidMom;
61  bool mUseHidPid;
62  double mSizeX,mSizeY,mSizeZ;
63  double mTime;
64  RefFrame mRef;
65  double mBetaRCMS;
66  double mGammaRCMS;
67 
68  StHbtLorentzVector mPos1;
69  StHbtLorentzVector mPos2;
70 
71  StHbtLorentzVector mMom1; //because StHbtParticle.FourMomentum() is not a ref
72  StHbtLorentzVector mMom2;
73 
74  double mMassSq1,mMassSq2;
75 
76  // 3 protected Step called from Set(...) public function member
77  void SetMomentum_PID( const StHbtPair* );
78  void SetPosition();
79  void BoostPosition();
80 
81 #ifdef __ROOT__
82  ClassDef(StHbtThPairGauss,1)
83 #endif
84 };
85 
86 #endif