]>
Commit | Line | Data |
---|---|---|
d810d0de | 1 | // $Id$ |
2 | // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | |
4673ff03 | 3 | |
d810d0de | 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 | **************************************************************************/ |
9 | ||
10 | #include "AliEveJetPlane.h" | |
a15e6d7d | 11 | |
12 | #include <TEveTrans.h> | |
2ea57cb0 | 13 | #include <TEveArrow.h> |
a15e6d7d | 14 | |
4673ff03 | 15 | #include <TBuffer3D.h> |
16 | #include <TBuffer3DTypes.h> | |
17 | #include <TVirtualPad.h> | |
18 | #include <TVirtualViewer3D.h> | |
19 | ||
57ffa5fb | 20 | //______________________________________________________________________________ |
4673ff03 | 21 | // |
a97abca8 | 22 | // Show jets and tracks in eta-phi plane. |
a15e6d7d | 23 | // |
24 | // | |
4673ff03 | 25 | |
a97abca8 | 26 | ClassImp(AliEveJetPlane) |
4673ff03 | 27 | |
d810d0de | 28 | Bool_t AliEveJetPlane::fgOneMomentumXYZ = kFALSE; |
29 | Bool_t AliEveJetPlane::fgOneMomentumPhiTheta = kFALSE; | |
a97abca8 | 30 | Bool_t AliEveJetPlane::fgOneEta = kFALSE; |
31 | Bool_t AliEveJetPlane::fgOneE = kFALSE; | |
32 | Bool_t AliEveJetPlane::fgOneChgMass = kFALSE; | |
4673ff03 | 33 | |
34 | ||
d810d0de | 35 | AliEveJetPlane::AliEveJetPlane(Int_t iev) : |
36 | TEveElementList(Form("AliEveJetPlane %i",iev), Form("%i",iev)), | |
4673ff03 | 37 | |
38 | fMinEta (-1.5 ), | |
39 | fMaxEta ( 1.5 ), | |
2ea57cb0 | 40 | fMinPhi ( 0.0 ), |
41 | fMaxPhi ( 2.0 * TMath::Pi() ), | |
4673ff03 | 42 | |
43 | fNEtaDiv(30), | |
44 | fNPhiDiv(30), | |
45 | ||
46 | fEtaScale(350/1.5), | |
2ea57cb0 | 47 | fPhiScale(350/(TMath::Pi())), |
4673ff03 | 48 | fEnergyScale(100.0), |
49 | ||
50 | fEnergyColorScale (0.), | |
51 | ||
52 | fGridColor(5), | |
53 | ||
fd31e9de | 54 | fJets(), |
55 | fTracks(), | |
56 | ||
4673ff03 | 57 | fRnrJets (kTRUE), |
58 | fRnrTracks (kTRUE), | |
59 | ||
60 | fOneSelection (kTRUE), | |
61 | fTwoSelection (kFALSE), | |
62 | ||
fd31e9de | 63 | fJet1(0), fJet2(0), fTrack1(0), fTrack2(0), |
64 | ||
4673ff03 | 65 | fSelectionFlag (1) |
66 | { | |
67 | SetMainColorPtr(&fGridColor); | |
a15e6d7d | 68 | InitMainTrans(); |
4673ff03 | 69 | } |
70 | ||
57ffa5fb | 71 | /******************************************************************************/ |
4673ff03 | 72 | |
e930bdfa | 73 | void AliEveJetPlane::AddJet(AliAODJet* jet) |
4673ff03 | 74 | { |
a97abca8 | 75 | // Add a jet for display. |
e930bdfa | 76 | |
2ea57cb0 | 77 | fJets.push_back(*jet); |
4673ff03 | 78 | } |
79 | ||
57ffa5fb | 80 | /******************************************************************************/ |
4673ff03 | 81 | |
2ea57cb0 | 82 | void AliEveJetPlane::AddTrack(AliAODTrack* track) |
4673ff03 | 83 | { |
a97abca8 | 84 | // Add a track for display. |
85 | ||
2ea57cb0 | 86 | fTracks.push_back(*track); |
4673ff03 | 87 | } |
88 | ||
e930bdfa | 89 | void AliEveJetPlane::CreateArrows() |
90 | { | |
91 | // Create arrows according to current state. | |
92 | ||
93 | DestroyElements(); | |
94 | ||
95 | Double_t eta, phi, e, x, y; | |
96 | ||
97 | if (fRnrJets) | |
98 | { | |
99 | UInt_t jetid = 0; | |
100 | std::vector<AliAODJet>::iterator j = fJets.begin(); | |
101 | while (j != fJets.end()) | |
102 | { | |
103 | eta = j->Eta(); | |
104 | phi = j->Phi(); | |
105 | e = j->E(); | |
106 | ||
107 | x = eta*(fEtaScale); | |
108 | y = phi*(fPhiScale) - 350; | |
109 | ||
110 | // printf("Jet 4-momentum: %f, %f, %f, %f \n", v.Px(),v.Py(),v.Pz(),v.Pt() ); | |
111 | // printf("Eta-Phi values: %f, %f\n", v.Eta(), v.Phi()); | |
112 | ||
113 | TEveArrow *a = new TEveArrow(0, 0 , 100, x, y, 0); | |
114 | a->SetSourceObject(&*j); | |
115 | a->SetElementName (Form("Jet %d", jetid)); | |
116 | a->SetElementTitle(Form("Jet 4-momentum: %f, %f, %f, %f \n, Eta-Phi values: %f, %f, %f \n", j->Px(), j->Py(), j->Pz(), j->Pt(), eta, phi, e )); | |
117 | ||
118 | a->SetPickable(kTRUE); | |
119 | a->SetMainColor(kRed); | |
120 | a->SetTubeR(0.081); | |
121 | a->SetConeR(0.211); | |
122 | a->SetConeL(0.481); | |
123 | AddElement(a); | |
124 | ||
125 | ++j; ++jetid; | |
126 | } | |
127 | } | |
128 | ||
129 | if (fRnrTracks) | |
130 | { | |
131 | UInt_t trackid = 0; | |
132 | std::vector<AliAODTrack>::iterator k = fTracks.begin(); | |
133 | while (k != fTracks.end()) | |
134 | { | |
135 | eta = k->Eta(); | |
136 | phi = k->Phi(); | |
137 | e = k->E(); | |
138 | ||
139 | x = eta*(fEtaScale); | |
140 | y = phi*(fPhiScale) - 350; | |
141 | ||
142 | TEveArrow *a = new TEveArrow(0, 0 , 50, x, y, 0); | |
143 | a->SetSourceObject(&*k); | |
144 | a->SetElementName (Form("Track %d", trackid)); | |
145 | a->SetElementTitle("Tooltip"); | |
146 | a->SetPickable(kTRUE); | |
147 | a->SetMainColor(kOrange); | |
148 | a->SetTubeR(0.061); | |
149 | a->SetConeR(0.211); | |
150 | a->SetConeL(0.481); | |
151 | AddElement(a); | |
152 | ||
153 | ++k; ++trackid; | |
154 | } | |
155 | } | |
156 | } | |
4673ff03 | 157 | |
57ffa5fb | 158 | /******************************************************************************/ |
4673ff03 | 159 | |
d810d0de | 160 | void AliEveJetPlane::ComputeBBox() |
4673ff03 | 161 | { |
a97abca8 | 162 | // Calculate bounding-box. |
163 | ||
4673ff03 | 164 | BBoxInit(); |
165 | BBoxCheckPoint(-350, -350, -20); | |
2ea57cb0 | 166 | BBoxCheckPoint( 350, 350, 20); |
4673ff03 | 167 | } |
168 | ||
e930bdfa | 169 | |
d810d0de | 170 | void AliEveJetPlane::Paint(Option_t* /*option*/) |
4673ff03 | 171 | { |
a97abca8 | 172 | // Paint the object. |
173 | ||
4673ff03 | 174 | TBuffer3D buff(TBuffer3DTypes::kGeneric); |
175 | ||
176 | // Section kCore | |
177 | buff.fID = this; | |
68ca2fe7 | 178 | buff.fColor = GetMainColor(); |
179 | buff.fTransparency = GetMainTransparency(); | |
a15e6d7d | 180 | if (HasMainTrans()) RefMainTrans().SetBuffer3D(buff); |
4673ff03 | 181 | buff.SetSectionsValid(TBuffer3D::kCore); |
182 | ||
183 | Int_t reqSections = gPad->GetViewer3D()->AddObject(buff); | |
184 | if (reqSections == TBuffer3D::kNone) { | |
d810d0de | 185 | // printf("AliEveJetPlane::Paint viewer was happy with Core buff3d.\n"); |
4673ff03 | 186 | return; |
187 | } | |
188 | } |