00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef ST_HBT_THPAIR_GAUSS_HH
00026 #define ST_HBT_THPAIR_GAUSS_HH
00027
00028 #include "TRandom.h"
00029
00030 #include "StHbtMaker/Infrastructure/StHbtPair.hh"
00031 #include "StHbtMaker/Base/StHbtThPair.hh"
00032
00033 enum RefFrame{RCMS,LCMS,PRF};
00034
00035 class StHbtThPairGauss : public StHbtThPair {
00036
00037 public:
00038 StHbtThPairGauss() ;
00039 virtual ~StHbtThPairGauss();
00040 virtual void Set(const StHbtPair* aPair);
00041
00042 void SetSize(double aXYZ,double aT );
00043 void SetSize(double aX,double aY,double aZ, double aT);
00044 void UseHiddenMomentum();
00045 void UseParticleMomentum();
00046
00047 void UseHiddenPid();
00048 void UseFixedPid( int const tPid1, double const tMass1);
00049 void UseFixedPid( int const tPid1,double const tMass1, int const tPid2,double const tMass2 );
00050
00051 void SetBoostRCMS(double aPlab,double aMBeam, double aMTarget);
00052
00053 void SetRCMS();
00054 void SetLCMS();
00055 void SetPRF();
00056
00057
00058 protected:
00059 TRandom mRand;
00060 bool mUseHidMom;
00061 bool mUseHidPid;
00062 double mSizeX,mSizeY,mSizeZ;
00063 double mTime;
00064 RefFrame mRef;
00065 double mBetaRCMS;
00066 double mGammaRCMS;
00067
00068 StHbtLorentzVector mPos1;
00069 StHbtLorentzVector mPos2;
00070
00071 StHbtLorentzVector mMom1;
00072 StHbtLorentzVector mMom2;
00073
00074 double mMassSq1,mMassSq2;
00075
00076
00077 void SetMomentum_PID( const StHbtPair* );
00078 void SetPosition();
00079 void BoostPosition();
00080
00081 #ifdef __ROOT__
00082 ClassDef(StHbtThPairGauss,1)
00083 #endif
00084 };
00085
00086 #endif