]>
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 | **************************************************************************/ |
cb4245bb | 9 | |
51346b82 | 10 | AliEveCascade* esd_make_cas(TEveTrackPropagator* rnrStyle, AliESDVertex* primVtx, |
31989443 | 11 | AliESDcascade* cas, AliESDtrack* neg, AliESDtrack* pos, |
12 | AliESDtrack* bach,Int_t i) { | |
13 | ||
d810d0de | 14 | AliEveCascade* myCas = new AliEveCascade(rnrStyle); |
31989443 | 15 | myCas->SetESDIndex(i); |
16 | ||
17 | static Double_t vx,vy,vz, px,py,pz; | |
18 | cas->GetBPxPyPz(px,py,pz); | |
19 | myCas->SetBachP(px,py,pz); | |
20 | cas->GetNPxPyPz(px,py,pz); | |
21 | myCas->SetNegP(px,py,pz); | |
22 | cas->GetPPxPyPz(px,py,pz); | |
23 | myCas->SetPosP(px,py,pz); | |
24 | ||
25 | cas->GetXYZ(vx,vy,vz); // v0 decay vertex | |
26 | myCas->SetV0vtx(vx,vy,vz); | |
27 | cas->GetXYZcascade(vx,vy,vz); // cascade decay vertex | |
28 | myCas->SetCascadeVtx(vx,vy,vz); | |
29 | ||
30 | Double_t primx = primVtx->GetXv(), | |
31 | primy = primVtx->GetYv(), | |
32 | primz = primVtx->GetZv(); | |
33 | ||
34 | myCas->SetCasCosPointingAngle( cas->GetCascadeCosineOfPointingAngle(primx,primy,primz) ); | |
35 | myCas->SetDecayLength(primx, primy, primz); | |
36 | myCas->SetDCA_v0_Bach(cas->GetDcaXiDaughters()); | |
37 | ||
38 | Float_t p = neg->GetP(), mc = neg->GetMass(); | |
39 | Float_t betaNeg = p/TMath::Sqrt(p*p + mc*mc); | |
40 | p = pos->GetP(); mc = pos->GetMass(); | |
41 | Float_t betaPos = p/TMath::Sqrt(p*p + mc*mc); | |
42 | p = bach->GetP(); mc = bach->GetMass(); | |
43 | Float_t betaBach = p/TMath::Sqrt(p*p + mc*mc); | |
44 | if (bach->GetSign()<0) betaBach = -betaBach; // sign is stored is this parameter | |
45 | ||
46 | myCas->SetBeta(betaNeg, betaPos, betaBach); | |
47 | ||
48 | return myCas; | |
49 | } | |
50 | ||
51 | ||
d810d0de | 52 | CascadeList* esd_AliEveCascade(Double_t min_pt=0.1, Double_t max_pt=100) |
31989443 | 53 | { |
84aff7a4 | 54 | printf("THIS SCRIPT DOES NOT WORK.\n" |
d810d0de | 55 | "AliEveCascade classes have been temporarily removed.\n" |
84aff7a4 | 56 | "They need to be cleaned up.\n"); |
57 | return; | |
31989443 | 58 | |
d810d0de | 59 | AliESDEvent* esd = AliEveEventManager::AssertESD(); |
31989443 | 60 | AliESDVertex* primVertex =(AliESDVertex*) esd->GetVertex(); |
61 | ||
51346b82 | 62 | CascadeList* cont = new CascadeList("ESD cascade"); |
31989443 | 63 | cont->SetMainColor(Color_t(3)); // green |
84aff7a4 | 64 | TEveTrackPropagator* rnrStyle = cont->GetPropagator(); |
31989443 | 65 | rnrStyle->SetMagField( esd->GetMagneticField() ); |
66 | ||
84aff7a4 | 67 | gEve->AddElement(cont); |
31989443 | 68 | |
69 | Int_t count = 0; | |
70 | //for (Int_t n=0; count<3; n++) { | |
71 | for (Int_t n=0; n<esd->GetNumberOfCascades(); n++) { | |
72 | ||
73 | AliESDcascade *cas = esd->GetCascade(n); | |
74 | Int_t negInd = cas->GetNindex(); | |
75 | Int_t posInd = cas->GetPindex(); | |
76 | Int_t bachInd = cas->GetBindex(); | |
77 | AliESDtrack* negTr = esd->GetTrack(negInd); | |
78 | AliESDtrack* posTr = esd->GetTrack(posInd); | |
79 | AliESDtrack* bachTr = esd->GetTrack(bachInd); | |
80 | ||
81 | if (cas) { | |
d810d0de | 82 | AliEveCascade* myCas = esd_make_cas(rnrStyle, primVertex, cas, |
31989443 | 83 | negTr, posTr, bachTr, n); |
84 | if (myCas) { | |
84aff7a4 | 85 | gEve->AddElement(myCas, cont); |
31989443 | 86 | count++; |
87 | } | |
88 | } | |
89 | } | |
90 | ||
91 | cont->SetTitle("CascadeList"); | |
92 | cont->UpdateItems(); | |
93 | ||
94 | cont->MakeCascades(); | |
84aff7a4 | 95 | gEve->Redraw3D(); |
31989443 | 96 | |
97 | return cont; | |
98 | } |