]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVE/alice-macros/esd_V0.C
From Pawel Debski.
[u/mrichter/AliRoot.git] / EVE / alice-macros / esd_V0.C
index c8e1a041a3d5a3786adf37652d310ee6d1fcba73..f743e69759217bac66874e678d9636b671dd6a4c 100644 (file)
@@ -32,21 +32,25 @@ AliEveV0* esd_make_v0(TEveTrackPropagator* rnrStyle, AliESDVertex* primVtx,
   rcV0.fPNeg.Set(p);
 
   v0->GetPxPyPz(p[0], p[1], p[2]);
+
   Double_t v[3];
+
   v0->GetXYZ(v[0], v[1], v[2]);
+  rcV0.fVCa.Set(v);
 
-  //   printf(" %f %f %f / %f %f %f    %i\n",p[0], p[1], p[2],
-  //    v[0], v[1], v[2], v0->GetOnFlyStatus());
+  v0->GetParamN()->GetXYZ(v);  rcV0.fVNeg.Set(v);
+  v0->GetParamP()->GetXYZ(v);  rcV0.fVPos.Set(v);
 
-  rcV0.fVNeg.Set(v); //original track vertices at dca not stored
-  rcV0.fVPos.Set(v);
-  rcV0.fVCa.Set(v);
+  rcV0.fV0Birth.Set(primVtx->GetXv(), primVtx->GetYv(), primVtx->GetZv());
 
-  rcV0.fDLabel[0] = v0->GetNindex();
-  rcV0.fDLabel[1] = v0->GetPindex();
+  // Simulation data not directly available in AliESDv0
+  //rcV0.fDLabel[0] = v0->GetNindex();
+  //rcV0.fDLabel[1] = v0->GetPindex();
 
   esd_v0_init_rectrack(rcNeg, v0->GetParamN());
+  rcNeg.fIndex = v0->GetNindex();
   esd_v0_init_rectrack(rcPos, v0->GetParamP());
+  rcPos.fIndex = v0->GetPindex();
 
   AliEveV0* myV0 = new AliEveV0(&rcNeg, &rcPos, &rcV0, rnrStyle);
   myV0->SetElementName(Form("ESDv0 %d", i));
@@ -57,6 +61,59 @@ AliEveV0* esd_make_v0(TEveTrackPropagator* rnrStyle, AliESDVertex* primVtx,
   myV0->SetOnFlyStatus(v0->GetOnFlyStatus());
   myV0->SetDaughterDCA(v0->GetDcaV0Daughters());
 
+  Double_t negProbability[10], posProbability[10];
+  Double_t negP = 0.0, posP = 0.0;
+  neg->GetESDpid(negProbability);
+  pos->GetESDpid(posProbability);
+  negP = neg->P();
+  posP = pos->P();
+
+  // ****** Tentative particle type "concentrations"
+  Double_t c[5]={0.01, 0.01, 0.85, 0.10, 0.05};
+  AliPID::SetPriors(c);
+
+  AliPID negPid(negProbability);
+  AliPID posPid(posProbability);
+
+  Int_t   negMostProbPdg =  0;
+  Int_t   posMostProbPdg =  0;
+
+  switch (negPid.GetMostProbable()){
+  case 0:
+    negMostProbPdg =   11; break;
+  case 1:
+    negMostProbPdg =   13; break;
+  case 2:
+    negMostProbPdg =  211; break;
+  case 3:
+    negMostProbPdg =  321; break;
+  case 4:
+    negMostProbPdg = 2212; break;
+  default :
+    negMostProbPdg =  211; break;
+  }
+
+  switch (posPid.GetMostProbable()){
+  case 0:
+    posMostProbPdg =   11; break;
+  case 1:
+    posMostProbPdg =   13; break;
+  case 2:
+    posMostProbPdg =  211; break;
+  case 3:
+    posMostProbPdg =  321; break;
+  case 4:
+    posMostProbPdg = 2212; break;
+  default :
+    posMostProbPdg =  211; break;
+  }
+
+  Float_t negMaxProbPid  = negPid.GetProbability(negPid.GetMostProbable());
+  Float_t posMaxProbPid  = posPid.GetProbability(posPid.GetMostProbable());
+
+  myV0->SetMaxProbPdgPid(0,negMostProbPdg,negMaxProbPid);
+  myV0->SetMaxProbPdgPid(1,posMostProbPdg,posMaxProbPid);
+
   return myV0;
 }
 
@@ -68,7 +125,7 @@ AliEveV0List* esd_V0(Bool_t onFly=kFALSE)
   AliESDVertex* primVertex = (AliESDVertex*) esd->GetPrimaryVertex();
 
   AliEveV0List* cont = new AliEveV0List("ESD v0");
-  cont->SetMainColor(Color_t(3)); // green
+  cont->SetMainColor(3); // green
   TEveTrackPropagator* rnrStyle = cont->GetPropagator();
   rnrStyle->SetMagField( 0.1*esd->GetMagneticField() );
 
@@ -95,7 +152,6 @@ AliEveV0List* esd_V0(Bool_t onFly=kFALSE)
   }
 
   cont->SetTitle("test");
-  cont->UpdateItems();
 
   cont->MakeV0s();
   gEve->Redraw3D();