]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Fix for getting beam energy correct in all cases. (by cholm)
authorhansena <hansena@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 27 Sep 2013 12:08:51 +0000 (12:08 +0000)
committerhansena <hansena@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 27 Sep 2013 12:08:51 +0000 (12:08 +0000)
PWGLF/FORWARD/analysis2/AliForwardUtil.cxx

index c594b828d98ba6af7e9bcc839c2db25482927eca..49553cd96b5ca6c2da75f5fc82ad9516bd5ff701 100644 (file)
@@ -160,6 +160,22 @@ AliForwardUtil::CenterOfMassRapidity(UShort_t z1,
   return .5 * TMath::Log(Float_t(z1*a2)/z2/a1);
 }
 
+namespace {
+  UShort_t CheckSNN(Float_t energy)
+  {
+    if (TMath::Abs(energy - 900.)   < 10)  return 900;
+    if (TMath::Abs(energy - 2400.)  < 10)  return 2400;
+    if (TMath::Abs(energy - 2760.)  < 20)  return 2760;
+    if (TMath::Abs(energy - 4400.)  < 10)  return 4400;
+    if (TMath::Abs(energy - 5022.)  < 10)  return 5023;
+    if (TMath::Abs(energy - 5500.)  < 40)  return 5500;
+    if (TMath::Abs(energy - 7000.)  < 10)  return 7000;
+    if (TMath::Abs(energy - 8000.)  < 10)  return 8000;
+    if (TMath::Abs(energy - 10000.) < 10)  return 10000;
+    if (TMath::Abs(energy - 14000.) < 10)  return 14000;
+    return 0;
+  }
+}
 //____________________________________________________________________
 UShort_t
 AliForwardUtil::ParseCenterOfMassEnergy(UShort_t sys, Float_t beam)
@@ -182,17 +198,12 @@ AliForwardUtil::ParseCenterOfMassEnergy(UShort_t sys, Float_t beam)
     energy = CenterOfMassEnergy(beam, 82, 208, 1, 1);
   else if (sys == AliForwardUtil::kPbPb) 
     energy = CenterOfMassEnergy(beam, 82, 208, 82, 208);
-  if (TMath::Abs(energy - 900.)   < 10)  return 900;
-  if (TMath::Abs(energy - 2400.)  < 10)  return 2400;
-  if (TMath::Abs(energy - 2760.)  < 20)  return 2760;
-  if (TMath::Abs(energy - 4400.)  < 10)  return 4400;
-  if (TMath::Abs(energy - 5022.)  < 10)  return 5023;
-  if (TMath::Abs(energy - 5500.)  < 40)  return 5500;
-  if (TMath::Abs(energy - 7000.)  < 10)  return 7000;
-  if (TMath::Abs(energy - 8000.)  < 10)  return 8000;
-  if (TMath::Abs(energy - 10000.) < 10)  return 10000;
-  if (TMath::Abs(energy - 14000.) < 10)  return 14000;
-  return 0;
+  UShort_t ret = CheckSNN(energy);
+  if (ret > 1) return ret;
+  if (sys == AliForwardUtil::kPbPb || sys == AliForwardUtil::kPPb) {
+    ret = CheckSNN(beam);
+  }
+  return ret;
 }
 //____________________________________________________________________
 const char*