]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESDv0.cxx
Energy calibration object takes into account the beam energy
[u/mrichter/AliRoot.git] / STEER / AliESDv0.cxx
index c963f8cb756f058f8db7288bc0c431ca1eb77b9e..b92db7668bcb2ce2e28f3442c180948719b726f1 100644 (file)
@@ -318,7 +318,7 @@ Double_t AliESDv0::AlphaV0() const {
   TVector3 momTot(Px(),Py(),Pz());
 
   Double_t lQlNeg = momNeg.Dot(momTot)/momTot.Mag();
-  Double_t lQlPos = momNeg.Dot(momTot)/momTot.Mag();
+  Double_t lQlPos = momPos.Dot(momTot)/momTot.Mag();
 
   return 1.-2./(1.+lQlNeg/lQlPos);
 }
@@ -686,15 +686,16 @@ Double_t AliESDv0::GetEffMass(UInt_t p1, UInt_t p2) const{
   //
   // calculate effective mass
   //
-  const Float_t kpmass[5] = {TDatabasePDG::Instance()->GetParticle(kElectron)->Mass(),
+  const Double_t kpmass[5] = {TDatabasePDG::Instance()->GetParticle(kElectron)->Mass(),
                             TDatabasePDG::Instance()->GetParticle(kMuonMinus)->Mass(),
                             TDatabasePDG::Instance()->GetParticle(kPiPlus)->Mass(),
                             TDatabasePDG::Instance()->GetParticle(kKPlus)->Mass(),
                             TDatabasePDG::Instance()->GetParticle(kProton)->Mass()};
+  /*
   if (p1>4) return -1;
   if (p2>4) return -1;
-  Float_t mass1 = kpmass[p1]; 
-  Float_t mass2 = kpmass[p2];   
+  Double_t mass1 = kpmass[p1]; 
+  Double_t mass2 = kpmass[p2];   
   const Double_t *m1 = fPmom;
   const Double_t *m2 = fNmom;
   //
@@ -703,19 +704,28 @@ Double_t AliESDv0::GetEffMass(UInt_t p1, UInt_t p2) const{
   //  m2 = fPP;
   //}
   //
-  Float_t e1    = TMath::Sqrt(mass1*mass1+
+  Double_t e1    = TMath::Sqrt(mass1*mass1+
                               m1[0]*m1[0]+
                               m1[1]*m1[1]+
                               m1[2]*m1[2]);
-  Float_t e2    = TMath::Sqrt(mass2*mass2+
+  Double_t e2    = TMath::Sqrt(mass2*mass2+
                               m2[0]*m2[0]+
                               m2[1]*m2[1]+
                               m2[2]*m2[2]);  
-  Float_t mass =  
+  Double_t mass =  
     (m2[0]+m1[0])*(m2[0]+m1[0])+
     (m2[1]+m1[1])*(m2[1]+m1[1])+
     (m2[2]+m1[2])*(m2[2]+m1[2]);
   
-  mass = TMath::Sqrt((e1+e2)*(e1+e2)-mass);
-  return mass;
+  mass = (e1+e2)*(e1+e2)-mass;
+  if (mass < 0.) mass = 0.;
+  return (TMath::Sqrt(mass));
+  */
+  if(p1>4 || p2>4) return -1;
+  Double_t e12   = kpmass[p1]*kpmass[p1]+fPmom[0]*fPmom[0]+fPmom[1]*fPmom[1]+fPmom[2]*fPmom[2];
+  Double_t e22   = kpmass[p2]*kpmass[p2]+fNmom[0]*fNmom[0]+fNmom[1]*fNmom[1]+fNmom[2]*fNmom[2];
+  Double_t cmass = TMath::Sqrt(TMath::Max(kpmass[p1]*kpmass[p1]+kpmass[p2]*kpmass[p2]
+                                         +2.*(TMath::Sqrt(e12*e22)-fPmom[0]*fNmom[0]-fPmom[1]*fNmom[1]-fPmom[2]*fNmom[2]),0.));
+  return cmass;
+                              
 }