- if (! v0->GetOnFlyStatus())
- { // v0 on fly do not have the momentum vector filled...
- TEveRecTrack rcPos;
- TEveRecTrack rcNeg;
- TEveRecV0 rcV0;
-
- Double_t p[3];
- v0->GetNPxPyPz(p[0], p[1], p[2]);
- rcV0.fPPos.Set(p);
- v0->GetPPxPyPz(p[0], p[1], p[2]);
- rcV0.fPNeg.Set(p);
-
- v0->GetPxPyPz(p[0], p[1], p[2]);
- Double_t v[3];
- v0->GetXYZ(v[0], v[1], v[2]);
-
- // printf(" %f %f %f / %f %f %f %i\n",p[0], p[1], p[2],
- // v[0], v[1], v[2], v0->GetOnFlyStatus());
-
- rcV0.fVNeg.Set(v); //original track vertices at dca not stored
- rcV0.fVPos.Set(v);
- rcV0.fVCa.Set(v);
-
- rcV0.fDLabel[0] = v0->GetNindex();
- rcV0.fDLabel[1] = v0->GetPindex();
-
- esd_v0_init_rectrack(rcNeg, v0->GetParamN());
- esd_v0_init_rectrack(rcPos, v0->GetParamP());
-
- AliEveV0* myV0 = new AliEveV0(&rcNeg, &rcPos, &rcV0, rnrStyle);
- char ch[50];
- // sprintf(ch,"ESDv0%i",i);
- // myV0->SetName(ch);
- // myV0->SetTitle(ch);
- myV0->SetESDIndex(i);
- myV0->SetDaughterDCA(v0->GetDcaV0Daughters());
-
- return myV0;
- } else {
- return 0;
+ TEveRecTrack rcPos;
+ TEveRecTrack rcNeg;
+ TEveRecV0 rcV0;
+
+ Double_t p[3];
+ v0->GetNPxPyPz(p[0], p[1], p[2]);
+ rcV0.fPPos.Set(p);
+ v0->GetPPxPyPz(p[0], p[1], p[2]);
+ 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);
+
+ v0->GetParamN()->GetXYZ(v); rcV0.fVNeg.Set(v);
+ v0->GetParamP()->GetXYZ(v); rcV0.fVPos.Set(v);
+
+ rcV0.fV0Birth.Set(primVtx->GetXv(), primVtx->GetYv(), primVtx->GetZv());
+
+ // 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));
+ myV0->SetElementTitle(Form("OnFly: %d\nDCA %f",
+ v0->GetOnFlyStatus(),
+ v0->GetDcaV0Daughters()));
+ myV0->SetESDIndex(i);
+ 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;