]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
added new parameter kGetPairPlaneAngle to AliDielectronPair and new variables kPairPl...
authorwiechula <wiechula@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 27 Nov 2013 22:54:46 +0000 (22:54 +0000)
committerwiechula <wiechula@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 27 Nov 2013 22:54:46 +0000 (22:54 +0000)
kGetPairPlaneAngle can calculate three variables kPairPlaneAngleXY by setting Double_t v0roH2 and Int_t VariNum in AliDielectronVarManager

(Asako)

PWGDQ/dielectron/AliDielectronPair.cxx
PWGDQ/dielectron/AliDielectronPair.h
PWGDQ/dielectron/AliDielectronVarManager.cxx
PWGDQ/dielectron/AliDielectronVarManager.h

index 48fcae73d3756d1103157092d53004f90a4b0729..2ce04a40e95172be4edca8d331f9352582cce966 100644 (file)
@@ -252,45 +252,6 @@ void AliDielectronPair::GetThetaPhiCM(Double_t &thetaHE, Double_t &phiHE, Double
   }
 }
 
-//______________________________________________
-void AliDielectronPair::GetRotPair(Double_t &RotPairx, Double_t &RotPairy, Double_t &RotPairz) const
-{
-  // calculation of rotation p1 p2
-  Double_t px1=-9999.,py1=-9999.,pz1=-9999.;
-  Double_t px2=-9999.,py2=-9999.,pz2=-9999.;
-
-  px1 = fD1.GetPx();
-  py1 = fD1.GetPy();
-  pz1 = fD1.GetPz();
-
-  px2 = fD2.GetPx();
-  py2 = fD2.GetPy();
-  pz2 = fD2.GetPz();
-
-  // normal vector of ee plane
-  Double_t pnorx = py1*pz2 - pz1*py2;
-  Double_t pnory = pz1*px2 - px1*pz2;
-  Double_t pnorz = px1*py2 - py1*px2;
-  Double_t pnor  = TMath::Sqrt( pnorx*pnorx + pnory*pnory + pnorz*pnorz );
-
-  //unit vector
-  Double_t upnx = -9999.;
-  Double_t upny = -9999.;
-  Double_t upnz = -9999.;
-  if (pnor !=0) 
-  {
-       upnx= pnorx/pnor;
-       upny= pnory/pnor;
-       upnz= pnorz/pnor;
-  }
-
-
-  RotPairx = upnx;
-  RotPairy = upny;
-  RotPairz = upnz;
-
-}
-
 
 //______________________________________________
 Double_t AliDielectronPair::PsiPair(Double_t MagField) const
@@ -653,11 +614,11 @@ Double_t AliDielectronPair::PhivPair(Double_t MagField) const
 }
 
 //______________________________________________
-Double_t AliDielectronPair::PairPlaneAngle() const
+Double_t AliDielectronPair::GetPairPlaneAngle(const Double_t v0rpH2,const Int_t VariNum)const
 {
 
-  // Calculate the angle between electron pair plane and VZERO-C reaction plane for 2nd harmonic
-
+  // Calculate the angle between electron pair plane and variables
+  // kv0rpH2 is reaction plane angle using V0-A,C,AC,Random
 
   Double_t px1=-9999.,py1=-9999.,pz1=-9999.;
   Double_t px2=-9999.,py2=-9999.,pz2=-9999.;
@@ -673,7 +634,7 @@ Double_t AliDielectronPair::PairPlaneAngle() const
   //p1+p2
   Double_t px = px1+px2;
   Double_t py = py1+py2;
-  //Double_t pz = pz1+pz2;
+  Double_t pz = pz1+pz2;
 
   // normal vector of ee plane
   Double_t pnorx = py1*pz2 - pz1*py2;
@@ -681,48 +642,87 @@ Double_t AliDielectronPair::PairPlaneAngle() const
   Double_t pnorz = px1*py2 - py1*px2;
   Double_t pnor  = TMath::Sqrt( pnorx*pnorx + pnory*pnory + pnorz*pnorz );
 
-  //unit vector  
+  //unit vector
   Double_t upnx = -9999.;
   Double_t upny = -9999.;
   Double_t upnz = -9999.;
 
-  if (pnor !=0) 
-  {
-       upnx= pnorx/pnor;
-       upny= pnory/pnor;
-       upnz= pnorz/pnor;
-  } 
-
-  // normal vector of strong magnetic field plane
-  //rotation coordinates (x,y,z)->(x',y',z')
-  //(p1+p2),(0,0,1)
-  Double_t ax = py;
-  Double_t ay = -px;
-  Double_t az = 0.0;
-
-  Double_t denomHelper = ax*ax + ay*ay +az*az;
-  Double_t uax = -9999.;
-  Double_t uay = -9999.;
-  Double_t uaz = -9999.;
-  if (denomHelper !=0)  {
-        uax = ax/TMath::Sqrt(denomHelper);
-        uay = ay/TMath::Sqrt(denomHelper);
-        uaz = az/TMath::Sqrt(denomHelper);
-  }
-  //PM is the angle between Pair plane and Magnetic field plane
-  Double_t cosPM = upnx*uax + upny*uay + upnz*uaz;
-  Double_t PM = TMath::ACos(cosPM);
+  if (pnor !=0)
+    {
+      upnx= pnorx/pnor;
+      upny= pnory/pnor;
+      upnz= pnorz/pnor;
+    }
 
-  //keep interval [0,pi/2]
-  if(PM > TMath::Pi()/2){
-    PM -= TMath::Pi();
-    PM *= -1.0;
 
-  }
-  return PM;
+  Double_t ax = -9999.;
+  Double_t ay = -9999.;
+  Double_t az = -9999.;
+
+  //variable 1
+  //seeing the angle between ee decay plane and reaction plane by using V0-A,C,AC,Random
+         if(VariNum == 1){
+               ax = TMath::Sin(v0rpH2);
+               ay = -TMath::Cos(v0rpH2);
+               az = 0.0;
+         }
+
+
+       //variable 2
+       //seeing the angle between ee decay plane and (p1+p2) rot ez
+         else if (VariNum == 2 ){
+               ax = py;
+               ay = -px;
+               az = 0.0;
+         }
+
+       //variable 3
+       //seeing the angle between ee decay plane and (p1+p2) rot (p1+p2)x'z
+         else if (VariNum == 3 ){
+               Double_t rotpx = px*TMath::Cos(v0rpH2)+py*TMath::Sin(v0rpH2);
+               //Double_t rotpy = 0.0;
+               // Double_t rotpz = pz;
+
+               ax = py*pz;
+               ay = pz*rotpx-pz*px;
+               az = -rotpx*py;
+         }
+
+       //variable 4
+       //seeing the angle between ee decay plane and (p1+p2) rot ey'
+         else if (VariNum == 4){
+               ax = 0.0;
+               ay = 0.0;
+               az = pz;
+         }
+
+       Double_t denomHelper = ax*ax + ay*ay +az*az;
+       Double_t uax = -9999.;
+       Double_t uay = -9999.;
+       Double_t uaz = -9999.;
+
+       if (denomHelper !=0) {
+         uax = ax/TMath::Sqrt(denomHelper);
+         uay = ay/TMath::Sqrt(denomHelper);
+         uaz = az/TMath::Sqrt(denomHelper);
+       }
+
+       //PM is the angle between Pair plane and a plane decided by using variable 1-4
+
+       Double_t cosPM = upnx*uax + upny*uay + upnz*uaz;
+       Double_t PM = TMath::ACos(cosPM);
+       
+       //keep interval [0,pi/2]
+       if(PM > TMath::Pi()/2){
+         PM -= TMath::Pi();
+         PM *= -1.0;
+         
+       }
+       return PM;
 }
 
 
+
 //______________________________________________
 void AliDielectronPair::SetBeamEnergy(AliVEvent *ev, Double_t beamEbyHand)
 {
index 527db298d9f263838e8df98832b77d3eaca1a513..b71c73db149d114b68209349feba35fbea073ce3 100644 (file)
@@ -134,18 +134,14 @@ public:
 
   Double_t PsiPair(Double_t MagField)const; //Angle cut w.r.t. to magnetic field
   Double_t PhivPair(Double_t MagField)const; //Angle of ee plane w.r.t. to magnetic field
-  //  Double_t PairPlanev0rpH2Angle(Double_t kv0CrpH2)const;
-  // Double_t PairPlaneMagAngle(Double_t kv0CrpH2)const;
-  Double_t PairPlaneAngle()const;\r
+\r
+  //Calculate the angle between ee decay plane and variables\r
+  Double_t GetPairPlaneAngle(const Double_t kv0CrpH2, const Int_t VariNum) const;\r
 
   Double_t GetCosPointingAngle(const AliVVertex *primVtx) const;
   Double_t GetArmAlpha() const;
   Double_t GetArmPt()    const;
 
-  // calculate rotation of p1 p2
-  void GetRotPair(Double_t &RotPairx, Double_t &RotPairy, Double_t &RotPairz) const;
-  
-
   // internal KF particle
   const AliKFParticle& GetKFParticle()       const { return fPair; }
   const AliKFParticle& GetKFFirstDaughter()  const { return fD1;   }
index c95de43aed79c74236828492acc4fd9a86ede34e..98c5d410b639cf8bcb456f6370d741437f3bd46d 100644 (file)
@@ -156,10 +156,23 @@ const char* AliDielectronVarManager::fgkParticleNames[AliDielectronVarManager::k
   {"ThetaSqCS",              "cos^{2}(#theta_{CS})",                               ""},
   {"PsiPair",                "#Psi^{pair}",                                        "(rad.)"},
   {"PhivPair",               "#Phi_{v}^{pair}",                                    "(rad.)"},
-  {"PairPlaneAngle",         "PairPlaneAngle",                                     "(rad.)"},
-  {"kRotPairx",                 "kRotPairx",                                          "(rad.)"},
-  {"kRotPairy",                 "kRotPairy",                                          "(rad.)"},
-  {"kRotPairz",                 "kRotPairz",                                          "(rad.)"},
+  {"PairPlaneAngle1A",       "#Phi_{1A}",                                          "(rad.)"},
+  {"PairPlaneAngle2A",       "#Phi_{2A}",                                          "(rad.)"},
+  {"PairPlaneAngle3A",       "#Phi_{3A}",                                          "(rad.)"},
+  {"PairPlaneAngle4A",       "#Phi_{4A}",                                          "(rad.)"},
+  {"PairPlaneAngle1C",       "#Phi_{1C}",                                          "(rad.)"},
+  {"PairPlaneAngle2C",       "#Phi_{2C}",                                          "(rad.)"},
+  {"PairPlaneAngle3C",       "#Phi_{3C}",                                          "(rad.)"},
+  {"PairPlaneAngle4C",       "#Phi_{4C}",                                          "(rad.)"},
+  {"PairPlaneAngle1AC",      "#Phi_{1AC}",                                         "(rad.)"},
+  {"PairPlaneAngle2AC",      "#Phi_{2AC}",                                         "(rad.)"},
+  {"PairPlaneAngle3AC",      "#Phi_{3AC}",                                         "(rad.)"},
+  {"PairPlaneAngle4AC",      "#Phi_{4AC}",                                         "(rad.)"},
+  {"PairPlaneAngle1Ran",     "#Phi_{1Ran}",                                        "(rad.)"},
+  {"PairPlaneAngle2Ran",     "#Phi_{2Ran}",                                        "(rad.)"},
+  {"PairPlaneAngle3Ran",     "#Phi_{3Ran}",                                        "(rad.)"},
+  {"PairPlaneAngle4Ran",     "#Phi_{4Ran}",                                        "(rad.)"},
+  {"DeltaPhiRandomRP",       "#Phi_{RanRP}",                                       "(rad.)"},
   {"Cos2PhiCS",              "cos(2#phi_{CS})",                                    ""},
   {"CosTilPhiCS",            "cos(#phi_{CS})",                                     ""},
   {"CosPhiH2",               "cos(2#phi)",                                         ""},
index bab3f4ec575bbf84ab355837ff05f5e78b5fff3e..5eab983fd00173f91631c5d2cd754e502fb33ca2 100644 (file)
@@ -216,10 +216,26 @@ public:
     kThetaSqCS,              // squared value of kThetaCS
     kPsiPair,                // phi in mother's rest frame in Collins-Soper picture
        kPhivPair,               // angle between ee plane and the magnetic field (can be useful for conversion rejection)
-       kPairPlaneAngle,         // angle between ee plane and strong magnetic field
-       kRotPairx,               //ee plane vector
-       kRotPairy,               //ee plane vector
-       kRotPairz,               //ee plane vector
+       \r
+    kPairPlaneAngle1A,         // angle between ee decay plane and x'-z reaction plane by using V0-A\r
+    kPairPlaneAngle2A,         // angle between ee decay plane and (p1+p2) rot ez\r
+    kPairPlaneAngle3A,         // angle between ee decay plane and (p1+p2) rot (p1+p2)x'z\r
+    kPairPlaneAngle4A,         // angle between ee decay plane and x'-y' plane\r
+    kPairPlaneAngle1C,         // using v0-C\r
+    kPairPlaneAngle2C,\r
+    kPairPlaneAngle3C,\r
+    kPairPlaneAngle4C,\r
+    kPairPlaneAngle1AC,        // using v0-AC\r
+    kPairPlaneAngle2AC,\r
+    kPairPlaneAngle3AC,\r
+    kPairPlaneAngle4AC,\r
+    kPairPlaneAngle1Ran,       // using random reaction plane\r
+    kPairPlaneAngle2Ran,\r
+    kPairPlaneAngle3Ran,\r
+    kPairPlaneAngle4Ran,\r
+    kRandomRP,                //Random reaction plane\r
+    kDeltaPhiRandomRP,        //delta phi of the pair\r
+\r
        kCos2PhiCS,              // Cosine of 2*phi in mother's rest frame in the Collins-Soper picture
     kCosTilPhiCS,            // Shifted phi depending on kThetaCS
     kCosPhiH2,               // cosine of pair phi for 2nd harmonic
@@ -1412,16 +1428,36 @@ inline void AliDielectronVarManager::FillVarDielectronPair(const AliDielectronPa
   if ( values[AliDielectronVarManager::kDeltaPhiTPCrpH2] < -1.*TMath::Pi() )
     values[AliDielectronVarManager::kDeltaPhiTPCrpH2] += TMath::TwoPi(); 
 
-  //angle between ee plane and Mag/Reaction plane
-  values[AliDielectronVarManager::kPairPlaneAngle] = pair->PairPlaneAngle();\r
-  //ee plane vector
-  Double_t RotPairx = 0;
-  Double_t RotPairy = 0;
-  Double_t RotPairz = 0;
-  pair->GetRotPair(RotPairx,RotPairy,RotPairz);
-  values[AliDielectronVarManager::kRotPairx]=RotPairx;
-  values[AliDielectronVarManager::kRotPairy]=RotPairy;
-  values[AliDielectronVarManager::kRotPairz]=RotPairz;
+  //Calculate the angle between electrons decay plane and variables 1-4\r
+  values[AliDielectronVarManager::kPairPlaneAngle1A] = pair->GetPairPlaneAngle(values[AliDielectronVarManager::kv0ArpH2],1);\r
+  values[AliDielectronVarManager::kPairPlaneAngle2A] = pair->GetPairPlaneAngle(values[AliDielectronVarManager::kv0ArpH2],2);\r
+  values[AliDielectronVarManager::kPairPlaneAngle3A] = pair->GetPairPlaneAngle(values[AliDielectronVarManager::kv0ArpH2],3);\r
+  values[AliDielectronVarManager::kPairPlaneAngle4A] = pair->GetPairPlaneAngle(values[AliDielectronVarManager::kv0ArpH2],4);\r
+\r
+  values[AliDielectronVarManager::kPairPlaneAngle1C] = pair->GetPairPlaneAngle(values[AliDielectronVarManager::kv0CrpH2],1);\r
+  values[AliDielectronVarManager::kPairPlaneAngle2C] = pair->GetPairPlaneAngle(values[AliDielectronVarManager::kv0CrpH2],2);\r
+  values[AliDielectronVarManager::kPairPlaneAngle3C] = pair->GetPairPlaneAngle(values[AliDielectronVarManager::kv0CrpH2],3);\r
+  values[AliDielectronVarManager::kPairPlaneAngle4C] = pair->GetPairPlaneAngle(values[AliDielectronVarManager::kv0CrpH2],4);\r
+\r
+  values[AliDielectronVarManager::kPairPlaneAngle1AC] = pair->GetPairPlaneAngle(values[AliDielectronVarManager::kv0ACrpH2],1);\r
+  values[AliDielectronVarManager::kPairPlaneAngle2AC] = pair->GetPairPlaneAngle(values[AliDielectronVarManager::kv0ACrpH2],2);\r
+  values[AliDielectronVarManager::kPairPlaneAngle3AC] = pair->GetPairPlaneAngle(values[AliDielectronVarManager::kv0ACrpH2],3);\r
+  values[AliDielectronVarManager::kPairPlaneAngle4AC] = pair->GetPairPlaneAngle(values[AliDielectronVarManager::kv0ACrpH2],4);\r
+\r
+  //Random reaction plane\r
+  values[AliDielectronVarManager::kRandomRP] = (TMath::Pi()/2.0)*((Double_t)rand()/RAND_MAX * 2.0 -1.0 );\r
+  //delta phi of pair fron random reaction plane\r
+  values[AliDielectronVarManager::kDeltaPhiRandomRP] = values[AliDielectronVarManager::kPhi] - values[AliDielectronVarManager::kRandomRP];\r
+  // keep the interval [-pi,+pi]\r
+  if ( values[AliDielectronVarManager::kDeltaPhiRandomRP] > TMath::Pi() )\r
+    values[AliDielectronVarManager::kDeltaPhiRandomRP] -= TMath::TwoPi();\r
+\r
+  values[AliDielectronVarManager::kPairPlaneAngle1Ran]= pair->GetPairPlaneAngle(values[AliDielectronVarManager::kRandomRP],1);\r
+  values[AliDielectronVarManager::kPairPlaneAngle2Ran]= pair->GetPairPlaneAngle(values[AliDielectronVarManager::kRandomRP],2);\r
+  values[AliDielectronVarManager::kPairPlaneAngle3Ran]= pair->GetPairPlaneAngle(values[AliDielectronVarManager::kRandomRP],3);\r
+  values[AliDielectronVarManager::kPairPlaneAngle4Ran]= pair->GetPairPlaneAngle(values[AliDielectronVarManager::kRandomRP],4);\r
+\r
+\r
 
 
   AliDielectronMC *mc=AliDielectronMC::Instance();