]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HBTAN/AliHBTQResolutionFctns.cxx
Corrections for synchronisation of TFluka and FLUKA particle info during transport:
[u/mrichter/AliRoot.git] / HBTAN / AliHBTQResolutionFctns.cxx
index 129a5c1ef6601c12a3fa95976176a0af59181efc..ecf23e7bf3b6f71c1d13767c85fdff3ac0a8263d 100644 (file)
@@ -1,5 +1,23 @@
 #include "AliHBTQResolutionFctns.h"
 
+//__________________________________________________________________
+////////////////////////////////////////////////////////////////////
+//                                                                //
+// General Remark:                                                //
+// LCMS means                                                    //
+// Center of Mass System Longitudially Co-moving                  //
+//                                                                //
+//                                                                //
+// This class creates resolution function of Qout                 //
+// (difference of simulated pair Qout and recontructed pair)      //
+// in function of QInv                                            //
+// it inherits from AliHBTTwoPairFctn2D                           //
+//  it needs two pairs to compare                                 //
+//  and is two dimentional: numerator and denominator are TH2D    //
+//                                                                //
+////////////////////////////////////////////////////////////////////
+
+
 
 /******************************************************************/
 /******************************************************************/
@@ -10,9 +28,18 @@ AliHBTKtResolVsQInvFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
                         Int_t nYbins, Double_t maxYval, Double_t minYval):
  AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
 {
+//ctor
  Rename("KtResolVsQInv","K_{t} Resolution vs. Q_{Inv}");
 }
 /******************************************************************/
+
+void AliHBTKtResolVsQInvFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const
+{
+//returns values of the functiion  
+  y = partpair->GetKt() - trackpair->GetKt();
+  x = partpair->GetQInv();
+}
+/******************************************************************/
 /******************************************************************/
 /******************************************************************/
 ClassImp( AliHBTQInvResolVsQInvFctn )
@@ -21,9 +48,17 @@ AliHBTQInvResolVsQInvFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
                           Int_t nYbins, Double_t maxYval, Double_t minYval):
                 AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
 {
+//ctor
  Rename("QInvResolVsQInv","Q_{Inv} Resolution vs. Q_{Inv}");
 }
 /******************************************************************/
+void AliHBTQInvResolVsQInvFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const
+{
+//returns values of the functiion  
+ y = partpair->GetQInv() - trackpair->GetQInv();
+ x = partpair->GetQInv();
+}
+/******************************************************************/
 /******************************************************************/
 /******************************************************************/
 
@@ -33,8 +68,21 @@ AliHBTQOutResolVsQInvFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
                           Int_t nYbins, Double_t maxYval, Double_t minYval):
                 AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
 {
+//ctor
  Rename("QOutResolVsQInv","Q_{Out} Resolution vs. Q_{Inv}");
 }
+/******************************************************************/
+
+void AliHBTQOutResolVsQInvFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const
+{
+  //returns Qoutsim-Qoutrec for y
+  //returns Qinv for x
+  Double_t tqout = trackpair->GetQOutLCMS();
+  y = partpair->GetQOutLCMS() - tqout;
+  if (tqout < 0.0) y = -y;
+  x = partpair->GetQInv();
+}
+
 /******************************************************************/
 /******************************************************************/
 /******************************************************************/
@@ -46,8 +94,19 @@ AliHBTQSideResolVsQInvFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
                           Int_t nYbins, Double_t maxYval, Double_t minYval):
                 AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
 {
+//ctor
  Rename("QSideResolVsQInv","Q_{Side} Resolution vs. Q_{Inv}");
 }
+/******************************************************************/
+
+void AliHBTQSideResolVsQInvFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair,  Double_t& x, Double_t& y) const
+{
+  //returns Qsidesim-Qsiderec for y
+  //returns Qinv for x
+  y = partpair->GetQSideLCMS() - trackpair->GetQSideLCMS();
+  if (trackpair->GetQSideLCMS() < 0.0) y = -y;
+  x = partpair->GetQInv();
+}
 
 /******************************************************************/
 /******************************************************************/
@@ -60,8 +119,19 @@ AliHBTQLongResolVsQInvFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
                            Int_t nYbins, Double_t maxYval, Double_t minYval):
                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
 {
+//ctor
  Rename("QLongResolVsQInv","Q_{Long} Resolution vs. Q_{Inv}");
 }
+/******************************************************************/
+
+void AliHBTQLongResolVsQInvFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const
+{
+  //returns Qlongsim-Qlongrec for y
+  //returns Qinv for x
+  y = partpair->GetQLongLCMS() - trackpair->GetQLongLCMS();
+  if (trackpair->GetQLongLCMS() < 0.0) y = -y;
+  x = partpair->GetQInv();
+}
 
 /******************************************************************/
 /******************************************************************/
@@ -74,8 +144,17 @@ AliHBTQInvResolVsKtFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
                         Int_t nYbins, Double_t maxYval, Double_t minYval):
                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
 {
+//ctor
  Rename("QInvResolVsKt","Q_{Inv} Resolution vs. K_{t}");
 }
+/******************************************************************/
+
+void AliHBTQInvResolVsKtFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const
+{
+ //returns values of the function
+ y = partpair->GetQInv() - trackpair->GetQInv();
+ x = partpair->GetKt();
+}
 
 /******************************************************************/
 /******************************************************************/
@@ -87,9 +166,19 @@ AliHBTQOutResolVsKtFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
                            Int_t nYbins, Double_t maxYval, Double_t minYval):
                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
 {
+//ctor
  Rename("QOutResolVsKt","Q_{Out} Resolution vs. K_{t} ");
 }
+/******************************************************************/
 
+void AliHBTQOutResolVsKtFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const
+{
+  //returns Qoutsim-Qoutrec for y
+  //returns Kt for x
+  y = partpair->GetQOutLCMS() - trackpair->GetQOutLCMS();
+  if (trackpair->GetQOutLCMS() < 0.0) y = -y;
+  x = partpair->GetKt();
+}
 
 /******************************************************************/
 /******************************************************************/
@@ -101,8 +190,19 @@ AliHBTQSideResolVsKtFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
                            Int_t nYbins, Double_t maxYval, Double_t minYval):
                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
 {
+//ctor
  Rename("QSideResolVsKt","Q_{Side} Resolution vs. K_{t} ");
 }
+/******************************************************************/
+
+void AliHBTQSideResolVsKtFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const
+{
+  //returns Qsidesim-Qsiderec for y
+  //returns Kt for x
+  y = partpair->GetQSideLCMS() - trackpair->GetQSideLCMS();
+  if (trackpair->GetQSideLCMS() < 0.0) y = -y;
+  x = partpair->GetKt();
+}
 
 /******************************************************************/
 /******************************************************************/
@@ -114,9 +214,19 @@ AliHBTQLongResolVsKtFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
                            Int_t nYbins, Double_t maxYval, Double_t minYval):
                              AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
 {
+//ctor
  Rename("QLongResolVsKt","Q_{Long} Resolution vs. K_{t} ");
 }
+/******************************************************************/
 
+void AliHBTQLongResolVsKtFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const
+{
+  //returns Qlongsim-Qlongrec for y
+  //returns Kt for x
+  y = partpair->GetQLongLCMS() - trackpair->GetQLongLCMS();
+  if (trackpair->GetQLongLCMS() < 0.0) y = -y;
+  x = partpair->GetKt();
+}
 /******************************************************************/
 /******************************************************************/
 /******************************************************************/
@@ -128,8 +238,17 @@ AliHBTQOutResolVsQOutFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
                            Int_t nYbins, Double_t maxYval, Double_t minYval):
                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
 {
+//ctor
  Rename("QOutResolVsQOut","Q_{Out} Resolution vs. Q_{Out} ");
 }
+/******************************************************************/
+
+void AliHBTQOutResolVsQOutFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const
+{
+//returns values of the function
+  x = partpair->GetQOutLCMS();
+  y = x - trackpair->GetQOutLCMS();
+}
  
 /******************************************************************/
 /******************************************************************/
@@ -141,8 +260,17 @@ AliHBTQSideResolVsQSideFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
                            Int_t nYbins, Double_t maxYval, Double_t minYval):
                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
 {
+//ctor
  Rename("QSideResolVsQSide","Q_{Side} Resolution vs. Q_{Side} ");
 }
+/******************************************************************/
+
+void AliHBTQSideResolVsQSideFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const
+{
+//returns values of the function
+  x = partpair->GetQSideLCMS(); 
+  y = x - trackpair->GetQSideLCMS();
+}
 
 /******************************************************************/
 /******************************************************************/
@@ -154,10 +282,17 @@ AliHBTQLongResolVsQLongFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
                            Int_t nYbins, Double_t maxYval, Double_t minYval):
                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
 {
+//ctor
  Rename("QLongResolVsQLong","Q_{Long} Resolution vs. Q_{Long} ");
 }
+/******************************************************************/
 
-
+void AliHBTQLongResolVsQLongFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const
+{
+//returns values of the function
+ x = partpair->GetQLongLCMS(); 
+ y = x - trackpair->GetQLongLCMS();
+}
 
 /******************************************************************/
 /******************************************************************/
@@ -170,9 +305,46 @@ AliHBTPairThetaResolVsQInvFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
                            Int_t nYbins, Double_t maxYval, Double_t minYval):
                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
 {
+//ctor
  Rename("PairThetaResolVsQInv","Pair Theta Angle Resolution vs. Q_{Inv} ");
 }
 /******************************************************************/
+
+void AliHBTPairThetaResolVsQInvFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const
+ {
+  //returns Pair Theta sim - Pair Theta rec for y
+  //returns Qinv for x
+   Double_t partTheta = partpair->Particle1()->Theta() - partpair->Particle2()->Theta();
+   Double_t trackTheta = trackpair->Particle1()->Theta() - trackpair->Particle2()->Theta();
+   y = partTheta - trackTheta;
+   x = partpair->GetQInv();
+ }
+/******************************************************************/
+/******************************************************************/
+/******************************************************************/
+
+ClassImp( AliHBTPairThetaResolVsPairThetaFctn )
+
+AliHBTPairThetaResolVsPairThetaFctn::
+AliHBTPairThetaResolVsPairThetaFctn(Int_t nXbins, Double_t maxXval, Double_t minXval, 
+                           Int_t nYbins, Double_t maxYval, Double_t minYval):
+                           AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
+{
+//ctor
+ Rename("PairThetaResolVsPairTheta","Pair Theta Angle Resolution vs. Pair Theta ");
+}
+/******************************************************************/
+void AliHBTPairThetaResolVsPairThetaFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const
+{
+  //returns Pair Theta sim - Pair Theta rec for y
+  //returns Pair Theta sim for x
+  Double_t partTheta = partpair->Particle1()->Theta() - partpair->Particle2()->Theta();
+  Double_t trackTheta = trackpair->Particle1()->Theta() - trackpair->Particle2()->Theta();
+  y = partTheta - trackTheta;
+  if (trackTheta < 0.0) y = -y;
+  x = trackTheta;
+}
+/******************************************************************/
 /******************************************************************/
 /******************************************************************/
 
@@ -183,9 +355,22 @@ AliHBTPairPhiResolVsQInvFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
                            Int_t nYbins, Double_t maxYval, Double_t minYval):
                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
 {
+//ctor
  Rename("PairPhiResolVsQInv","Pair Phi Angle Resolution vs. Q_{Inv} ");
 }
 /******************************************************************/
+
+void AliHBTPairPhiResolVsQInvFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const
+ {
+  //returns Pair Phi sim - Pair Phi rec for y
+  //returns QInv sim for x
+  Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
+  Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
+  y = partPhi - trackPhi;
+  x = partpair->GetQInv();
+ }
+
+/******************************************************************/
 /******************************************************************/
 /******************************************************************/
 
@@ -197,9 +382,21 @@ AliHBTPairThetaResolVsKtFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
                            Int_t nYbins, Double_t maxYval, Double_t minYval):
                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
 {
+//ctor
  Rename("PairThetaResolVsKt","Pair Theta Angle Resolution vs. K_{t} ");
 }
 /******************************************************************/
+
+void AliHBTPairThetaResolVsKtFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const
+{
+  //returns Pair Theta sim - Pair Theta rec for y
+  //returns Kt sim for x
+  Double_t partTheta = partpair->Particle1()->Theta() - partpair->Particle2()->Theta();
+  Double_t trackTheta = trackpair->Particle1()->Theta() - trackpair->Particle2()->Theta();
+  y = partTheta - trackTheta;
+  x = partpair->GetKt();
+}
+/******************************************************************/
 /******************************************************************/
 /******************************************************************/
 
@@ -210,10 +407,48 @@ AliHBTPairPhiResolVsKtFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
                            Int_t nYbins, Double_t maxYval, Double_t minYval):
                            AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
 {
+//ctor
  Rename("PairPhiResolVsKt","Pair Phi Angle Resolution vs. K_{t} ");
 }
+/******************************************************************/
+
+void AliHBTPairPhiResolVsKtFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const
+{
+  //returns Pair Phi sim - Pair Phi rec for y
+  //returns Kt sim for x
+  Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
+  Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
+  y = partPhi - trackPhi;
+  x = partpair->GetKt();
+}
+
 /******************************************************************/
 /******************************************************************/
 /******************************************************************/
 
 
+ClassImp( AliHBTPairPhiResolVsPairPhiFctn )
+
+AliHBTPairPhiResolVsPairPhiFctn::
+AliHBTPairPhiResolVsPairPhiFctn(Int_t nXbins, Double_t maxXval, Double_t minXval, 
+                           Int_t nYbins, Double_t maxYval, Double_t minYval):
+                           AliHBTTwoPairFctn2D(nXbins,maxXval,minXval,nYbins,maxYval,minYval)
+{
+//ctor
+ Rename("PairPhiResolVsPairPhi","Pair Phi Angle Resolution vs. Pair Phi ");
+}
+/******************************************************************/
+
+void AliHBTPairPhiResolVsPairPhiFctn::GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const
+{
+  //returns Pair Phi sim - Pair Phi rec for y
+  //returns Pair Phi sim for x
+  Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
+  Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
+  y = partPhi - trackPhi;
+  x = trackPhi;
+}
+
+/******************************************************************/
+/******************************************************************/
+/******************************************************************/