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_TRIPLET_HH
00026 #define ST_HBT_TRIPLET_HH
00027
00028 #include <utility>
00029
00030 #include "StHbtMaker/Infrastructure/StHbtParticle.hh"
00031 #include "StHbtMaker/Infrastructure/StHbtTypes.hh"
00032
00033 class StHbtTriplet {
00034 public:
00035 StHbtTriplet();
00036 StHbtTriplet(StHbtParticle*, StHbtParticle*, StHbtParticle*);
00037
00038
00039 ~StHbtTriplet();
00040
00041
00042
00043
00044 StHbtParticle* track1() const;
00045 StHbtParticle* track2() const;
00046 StHbtParticle* track3() const;
00047
00048 void SetTrack1(const StHbtParticle* trkPtr);
00049 void SetTrack2(const StHbtParticle* trkPtr);
00050 void SetTrack3(const StHbtParticle* trkPtr);
00051
00052 StHbtLorentzVector fourMomentum() const;
00053 double qInv() const;
00054 double qInv12() const;
00055 double qInv23() const;
00056 double qInv31() const;
00057 double kT() const;
00058 double mInv() const;
00059
00060 double quality() const;
00061
00062
00063
00064
00065
00066
00067 double NominalTpcExitSeparation() const;
00068 double NominalTpcEntranceSeparation() const;
00069 double NominalTpcAverageSeparation() const;
00070
00071 private:
00072 StHbtParticle* mTrack1;
00073 StHbtParticle* mTrack2;
00074 StHbtParticle* mTrack3;
00075
00076 };
00077
00078 inline void StHbtTriplet::SetTrack1(const StHbtParticle* trkPtr){mTrack1=(StHbtParticle*)trkPtr;}
00079 inline void StHbtTriplet::SetTrack2(const StHbtParticle* trkPtr){mTrack2=(StHbtParticle*)trkPtr;}
00080 inline void StHbtTriplet::SetTrack3(const StHbtParticle* trkPtr){mTrack3=(StHbtParticle*)trkPtr;}
00081
00082 inline StHbtParticle* StHbtTriplet::track1() const {return mTrack1;}
00083 inline StHbtParticle* StHbtTriplet::track2() const {return mTrack2;}
00084 inline StHbtParticle* StHbtTriplet::track3() const {return mTrack3;}
00085
00086 #endif