Double_t ptrans = fPxSum*fPxSum + fPySum*fPySum;
Double_t mtrans = fESum*fESum - fPzSum*fPzSum;
+ if (ptrans > mtrans)
+ {
+ Error("GetKStar","Tranverse momentum bigger than transverse mass. Not normal for on-shell particles");
+ Error("GetKStar","Particle1:");
+ fPart1->Print();
+ Error("GetKStar","Particle2:");
+ fPart2->Print();
+ Error("GetKStar","");
+
+ fKStar = 10e5;
+ fKStarNotCalc = kFALSE;
+ return fKStar;
+ }
Double_t pinv = TMath::Sqrt(mtrans - ptrans);
Double_t q = (fPart1->GetMass()*fPart1->GetMass() - fPart2->GetMass()*fPart2->GetMass())/pinv;
q = q*q - fQInvL;
if ( q < 0)
{
- Info("GetKStar","q = %f",q);
- fPart1->Print();
- fPart2->Print();
- q = TMath::Abs(q);
+ Info("GetKStar","Sqrt of negative number q = %f",q);
+ Error("GetKStar","Particle1:");
+ fPart1->Print();
+ Error("GetKStar","Particle2:");
+ fPart2->Print();
+ fKStar = 10e5;
+ fKStarNotCalc = kFALSE;
+ return fKStar;
}
q = TMath::Sqrt(q);
inline
Double_t AliHBTPair::GetDeltaPhi()
{
- //returns difference of Pz
- return fPart1->Phi()-fPart2->Phi();
+ //returns difference of Phi
+ Double_t phi1 = fPart1->Phi();
+ Double_t phi2 = fPart2->Phi();
+ Double_t diff = phi1-phi2;
+ if (TMath::Abs(diff) > TMath::Pi())
+ {
+ if (phi1 > TMath::Pi())
+ {
+ phi1-=TMath::Pi();
+ }
+ else
+ {
+ phi2-=TMath::Pi();
+ }
+ diff = phi1-phi2;
+ }
+ return diff;
}
/****************************************************************/
inline
Double_t AliHBTPair::GetDeltaTheta()
{
- //returns difference of Pz
+ //returns difference of Theta
return fPart1->Theta()-fPart2->Theta();
}
/****************************************************************/