24 #ifndef ST_HBT_TH_PAIR_HH
25 #define ST_HBT_TH_PAIR_HH
28 #include "StHbtMaker/Infrastructure/StHbtPair.hh"
29 #include "StHbtMaker/Infrastructure/StHbtTypes.hh"
48 virtual int GetPid1()
const;
49 virtual int GetPid2()
const;
50 virtual const StHbtPair* GetMeasPair()
const;
51 virtual double GetWeightNum() ;
52 virtual double GetWeightDen() ;
53 virtual StHbtString Report();
54 virtual double RealQInv()
const;
55 double RealqSideCMS()
const;
56 double RealqOutCMS()
const;
57 double RealqLongCMS()
const;
58 double RealqSidePf()
const;
59 double RealqOutPf()
const;
60 double RealqLongPf()
const;
64 void setMomRes1(
int pid);
65 void setMomRes2(
int pid);
66 void setPairPurity(
double aPairPurity);
71 virtual int getPid1()
const;
72 virtual int getPid2()
const;
73 virtual double QInv()
const;
75 double KStarSide()
const;
76 double KStarOut()
const;
77 double KStarLong()
const;
80 double KStarFlipped()
const;
81 double CVKFlipped()
const;
83 double RTrans()
const;
88 double DTimePairLCMS()
const;
89 double ROutPairCMS()
const;
90 double RLongPairCMS()
const;
91 double RSidePairCMS()
const;
92 double DTimePairCMS()
const;
99 virtual void setVariables(
const StHbtPair*);
116 mutable short mMomParCalculated;
117 void calcMomParameters()
const;
118 mutable double mKStarSide;
119 mutable double mKStarOut;
120 mutable double mKStarLong;
121 mutable double mKStar;
123 mutable double mKStarFlipped;
124 mutable double mCVKFlipped;
125 mutable double mBetat;
129 mutable short mPosParCalculated;
130 void calcPosParameters()
const;
131 mutable double mRStar;
132 mutable double mRTrans;
133 mutable double mROut;
134 mutable double mRSide;
135 mutable double mRLong;
136 mutable double mDTime;
137 mutable double mDTimePairLCMS;
138 mutable double mROutPairCMS;
139 mutable double mRSidePairCMS;
140 mutable double mRLongPairCMS;
141 mutable double mDTimePairCMS;
149 double mThetaRes1[3];
153 double mThetaRes2[3];
166 {
return mMomentum1;};
168 {
return mMomentum2;};
177 inline int StHbtThPair::GetPid1()
const {
return mPid1;};
178 inline int StHbtThPair::GetPid2()
const {
return mPid2;};
179 inline const StHbtPair* StHbtThPair::GetMeasPair()
const
181 inline double StHbtThPair::GetWeightNum() {
182 if (!(mWeightOk)) UpdateWeight();
184 inline double StHbtThPair::GetWeightDen() {
185 if (!(mWeightOk)) UpdateWeight();
190 inline double StHbtThPair::RealQInv()
const{
191 return abs(*mMomentum1-*mMomentum2);
194 inline void StHbtThPair::setPairPurity(
double aPairPurity){
195 mPairPurity=aPairPurity;
197 inline void StHbtThPair::Set(
const StHbtPair* aPair){
208 inline void StHbtThPair::set(
const StHbtPair* aPair){
211 if(tPrevPart1 != aPair->track1() || tPrevPart2 != aPair->track2()){
218 tPrevPart1 = aPair->track1();
219 tPrevPart2 = aPair->track2();
224 {
return mMomentum1;};
226 {
return mMomentum2;};
231 inline int StHbtThPair::getPid1()
const {
return mPid1;};
232 inline int StHbtThPair::getPid2()
const {
return mPid2;};
234 inline double StHbtThPair::QInv()
const{
235 return abs((*mMomentum1)-(*mMomentum2));
238 inline double StHbtThPair::KStarSide()
const{
239 if(!mMomParCalculated) calcMomParameters();
242 inline double StHbtThPair::KStarOut()
const{
243 if(!mMomParCalculated) calcMomParameters();
246 inline double StHbtThPair::KStarLong()
const{
247 if(!mMomParCalculated) calcMomParameters();
250 inline double StHbtThPair::KStar()
const{
251 if(!mMomParCalculated) calcMomParameters();
254 inline double StHbtThPair::CVK()
const{
255 if(!mMomParCalculated) calcMomParameters();
258 inline double StHbtThPair::KStarFlipped()
const{
259 if(!mMomParCalculated) calcMomParameters();
260 return mKStarFlipped;
262 inline double StHbtThPair::CVKFlipped()
const{
263 if(!mMomParCalculated) calcMomParameters();
266 inline double StHbtThPair::Betat()
const{
267 if(!mMomParCalculated) calcMomParameters();
270 inline double StHbtThPair::Ut()
const{
271 if(!mMomParCalculated) calcMomParameters();
274 inline double StHbtThPair::Pt()
const{
275 if(!mMomParCalculated) calcMomParameters();
279 inline double StHbtThPair::RStar()
const{
280 if(!mPosParCalculated){ calcPosParameters(); }
283 inline double StHbtThPair::RTrans()
const{
284 if(!mPosParCalculated){ calcPosParameters(); }
287 inline double StHbtThPair::ROut()
const{
288 if(!mPosParCalculated){ calcPosParameters(); }
291 inline double StHbtThPair::RLong()
const{
292 if(!mPosParCalculated){ calcPosParameters(); }
295 inline double StHbtThPair::RSide()
const{
296 if(!mPosParCalculated){ calcPosParameters(); }
299 inline double StHbtThPair::DTime()
const{
300 if(!mPosParCalculated){ calcPosParameters(); }
303 inline double StHbtThPair::DTimePairLCMS()
const{
304 if(!mPosParCalculated){ calcPosParameters(); }
305 return mDTimePairLCMS;
307 inline double StHbtThPair::ROutPairCMS()
const{
308 if(!mPosParCalculated){ calcPosParameters(); }
311 inline double StHbtThPair::RLongPairCMS()
const{
312 if(!mPosParCalculated){ calcPosParameters(); }
313 return mRLongPairCMS;
315 inline double StHbtThPair::RSidePairCMS()
const{
316 if(!mPosParCalculated){ calcPosParameters(); }
317 return mRSidePairCMS;
319 inline double StHbtThPair::DTimePairCMS()
const{
320 if(!mPosParCalculated){ calcPosParameters(); }
321 return mDTimePairCMS;