]>
Commit | Line | Data |
---|---|---|
d810d0de | 1 | // $Id$ |
2 | // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | |
3 | ||
4 | /************************************************************************** | |
5 | * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. * | |
6 | * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for * | |
51346b82 | 7 | * full copyright notice. * |
d810d0de | 8 | **************************************************************************/ |
ca5fb6a4 | 9 | |
d810d0de | 10 | AliEveV0* esd_make_v0(TEveTrackPropagator* rnrStyle, AliESDVertex* primVtx, |
a9f14204 | 11 | AliESDtrack* neg, AliESDtrack* pos, AliESDv0* v0, Int_t i) |
12 | { | |
13 | if (! v0->GetOnFlyStatus()) | |
14 | { // v0 on fly do not have the momentum vector filled... | |
84aff7a4 | 15 | TEveRecTrack rcPos; |
16 | TEveRecTrack rcNeg; | |
17 | TEveRecV0 rcV0; | |
8f14e54c | 18 | |
a9f14204 | 19 | Double_t p[3]; |
20 | v0->GetNPxPyPz(p[0], p[1], p[2]); | |
21 | rcV0.P_pos.Set(p); | |
22 | v0->GetPPxPyPz(p[0], p[1], p[2]); | |
23 | rcV0.P_neg.Set(p); | |
8f14e54c | 24 | |
a9f14204 | 25 | v0->GetPxPyPz(p[0], p[1], p[2]); |
26 | Double_t v[3]; | |
27 | v0->GetXYZ(v[0], v[1], v[2]); | |
ca5fb6a4 | 28 | |
ca5fb6a4 | 29 | |
a9f14204 | 30 | // printf(" %f %f %f / %f %f %f %i\n",p[0], p[1], p[2], |
31 | // v[0], v[1], v[2], v0->GetOnFlyStatus()); | |
ca5fb6a4 | 32 | |
51346b82 | 33 | rcV0.V_neg.Set(v); //original track vertices at dca not stored |
a9f14204 | 34 | rcV0.V_pos.Set(v); |
35 | rcV0.V_ca.Set(v); | |
ca5fb6a4 | 36 | |
a9f14204 | 37 | rcV0.d_label[0] = v0->GetNindex(); |
38 | rcV0.d_label[1] = v0->GetPindex(); | |
ca5fb6a4 | 39 | |
a9f14204 | 40 | Double_t ep = neg->GetP(), mc = neg->GetMass(); |
41 | rcNeg.beta = ep/TMath::Sqrt(ep*ep + mc*mc); | |
42 | ep = pos->GetP(); mc = pos->GetMass(); | |
43 | rcPos.beta = ep/TMath::Sqrt(ep*ep + mc*mc); | |
ca5fb6a4 | 44 | |
ca5fb6a4 | 45 | |
d810d0de | 46 | AliEveV0* myV0 = new AliEveV0(&rcNeg, &rcPos, &rcV0, rnrStyle); |
a9f14204 | 47 | char ch[50]; |
51346b82 | 48 | // sprintf(ch,"ESDv0%i",i); |
a9f14204 | 49 | // myV0->SetName(ch); |
50 | // myV0->SetTitle(ch); | |
51 | myV0->SetESDIndex(i); | |
52 | myV0->SetDaughterDCA(v0->GetDcaV0Daughters()); | |
ca5fb6a4 | 53 | |
a9f14204 | 54 | Double_t primx = primVtx->GetXv(), |
55 | primy = primVtx->GetYv(), | |
56 | primz = primVtx->GetZv(); | |
57 | myV0->SetCosPointingAngle(v0->GetV0CosineOfPointingAngle(primx,primy,primz)); | |
ca5fb6a4 | 58 | |
a9f14204 | 59 | myV0->SetDecayLength(primVtx->GetXv(), primVtx->GetYv(), primVtx->GetZv()); |
ca5fb6a4 | 60 | |
a9f14204 | 61 | return myV0; |
ca5fb6a4 | 62 | } else { |
63 | return 0; | |
64 | } | |
65 | ||
66 | } | |
67 | ||
68 | ||
d810d0de | 69 | V0List* esd_AliEveV0(Double_t min_pt=0.1, Double_t max_pt=100) |
ca5fb6a4 | 70 | { |
84aff7a4 | 71 | printf("THIS SCRIPT DOES NOT WORK.\n" |
d810d0de | 72 | "AliEveV0 classes have been temporarily removed.\n" |
84aff7a4 | 73 | "They need to be cleaned up.\n"); |
74 | return; | |
ca5fb6a4 | 75 | |
d810d0de | 76 | AliESDEvent* esd = AliEveEventManager::AssertESD(); |
ca5fb6a4 | 77 | AliESDVertex* primVertex =(AliESDVertex*) esd->GetVertex(); |
78 | ||
51346b82 | 79 | V0List* cont = new V0List("ESD v0"); |
ca5fb6a4 | 80 | cont->SetMainColor(Color_t(3)); // green |
84aff7a4 | 81 | TEveTrackPropagator* rnrStyle = cont->GetPropagator(); |
daaa6c4d | 82 | rnrStyle->SetMagField( 0.1*esd->GetMagneticField() ); |
ca5fb6a4 | 83 | |
84aff7a4 | 84 | gEve->AddElement(cont); |
ca5fb6a4 | 85 | |
86 | Int_t count = 0; | |
87 | //for (Int_t n=0; count<3; n++) { | |
88 | for (Int_t n=0; n<esd->GetNumberOfV0s(); n++) { | |
89 | ||
90 | AliESDv0 *v0 = esd->GetV0(n); | |
91 | if (v0->GetOnFlyStatus()) continue; | |
92 | ||
93 | Int_t negInd = v0->GetNindex(); | |
94 | Int_t posInd = v0->GetPindex(); | |
95 | AliESDtrack* negTr = esd->GetTrack(negInd); | |
96 | AliESDtrack* posTr = esd->GetTrack(posInd); | |
51346b82 | 97 | |
d810d0de | 98 | AliEveV0* myV0 = esd_make_v0(rnrStyle, primVertex, negTr,posTr, v0, n); |
ca5fb6a4 | 99 | if (myV0) { |
84aff7a4 | 100 | gEve->AddElement(myV0, cont); |
ca5fb6a4 | 101 | count++; |
102 | } | |
103 | } | |
104 | ||
105 | cont->SetTitle("testV0List "); | |
106 | cont->UpdateItems(); | |
107 | ||
108 | cont->MakeV0s(); | |
84aff7a4 | 109 | gEve->Redraw3D(); |
ca5fb6a4 | 110 | |
111 | return cont; | |
112 | } | |
113 | ||
114 | ||
115 | ||
116 | ||
117 | ||
118 | ||
119 | ||
120 | ||
121 | ||
122 | ||
123 | ||
124 | ||
125 | ||
126 | ||
127 | ||
128 |