]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVE/EveBase/AliEveJetPlane.cxx
adding QA reference for HghMultiplicity
[u/mrichter/AliRoot.git] / EVE / EveBase / AliEveJetPlane.cxx
CommitLineData
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 26ClassImp(AliEveJetPlane)
4673ff03 27
d810d0de 28Bool_t AliEveJetPlane::fgOneMomentumXYZ = kFALSE;
29Bool_t AliEveJetPlane::fgOneMomentumPhiTheta = kFALSE;
a97abca8 30Bool_t AliEveJetPlane::fgOneEta = kFALSE;
31Bool_t AliEveJetPlane::fgOneE = kFALSE;
32Bool_t AliEveJetPlane::fgOneChgMass = kFALSE;
4673ff03 33
34
d810d0de 35AliEveJetPlane::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 73void 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 82void AliEveJetPlane::AddTrack(AliAODTrack* track)
4673ff03 83{
a97abca8 84 // Add a track for display.
85
2ea57cb0 86 fTracks.push_back(*track);
4673ff03 87}
88
e930bdfa 89void 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 160void 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 170void 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}