]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVE/macros/reve_quad_test.C
Invert the modality of run-loader and esd loading: always try to open them and compla...
[u/mrichter/AliRoot.git] / EVE / macros / reve_quad_test.C
CommitLineData
5a5a1232 1// $Header$
2
355c4728 3Reve::QuadSet* reve_quad_test(Float_t x=0, Float_t y=0, Float_t z=0,
4 Int_t num=100)
5a5a1232 5{
becafd4b 6 TRandom r(0);
7
8 gStyle->SetPalette(1, 0);
9
3137f823 10 Reve::RGBAPalette* pal = new Reve::RGBAPalette(0, 130);
11
7ec0cf74 12 Reve::QuadSet* q = new Reve::QuadSet("RectangleXY");
3137f823 13 q->SetPalette(pal);
04416fc7 14 q->Reset(Reve::QuadSet::QT_RectangleXY, kFALSE, 32);
355c4728 15 for (Int_t i=0; i<num; ++i) {
becafd4b 16 q->AddQuad(r.Uniform(-10, 10), r.Uniform(-10, 10), r.Uniform(-10, 10),
04416fc7 17 r.Uniform(0.2, 1), r.Uniform(0.2, 1));
becafd4b 18 q->QuadValue(r.Uniform(0, 130));
19 }
20 q->RefitPlex();
21
adabd949 22 Reve::ZTrans& t = q->RefHMTrans();
23 t.SetPos(x, y, z);
24
25 gReve->AddRenderElement(q);
26 gReve->Redraw3D();
27
28 return q;
29}
30
7b7207d6 31Reve::QuadSet* reve_quad_test_emc(Float_t x=0, Float_t y=0, Float_t z=0,
32 Int_t num=100)
33{
34 TRandom r(0);
35
36 gStyle->SetPalette(1, 0);
37
38 Reve::QuadSet* q = new Reve::QuadSet("EMC Supermodule");
39 q->SetOwnIds(kTRUE);
40 q->Reset(Reve::QuadSet::QT_RectangleXZFixedDimY, kFALSE, 32);
41 q->SetDefWidth(8);
42 q->SetDefHeight(8);
43
44 for (Int_t i=0; i<num; ++i) {
45 q->AddQuad(r.Uniform(-100, 100), r.Uniform(-100, 100));
46 q->QuadValue(r.Uniform(0, 130));
47 q->AddId(new TNamed(Form("Cell %d", i)));
48 }
49 q->RefitPlex();
50
51 Reve::ZTrans& t = q->RefHMTrans();
52 t.SetPos(x, y, z);
53
54 gReve->AddRenderElement(q);
55 gReve->Redraw3D();
56
57 return q;
58}
59
adabd949 60Reve::QuadSet* reve_quad_test_circ()
61{
62 TRandom r(0);
63
64 gStyle->SetPalette(1, 0);
65
66 Reve::QuadSet* q = new Reve::QuadSet("Pepe");
04416fc7 67 q->Reset(Reve::QuadSet::QT_RectangleXY, kFALSE, 32);
adabd949 68
69 Float_t R = 10, dW = 1, dH = .5;
70 for (Int_t i=0; i<12; ++i) {
71 Float_t x = R * TMath::Cos(TMath::TwoPi()*i/12);
72 Float_t y = R * TMath::Sin(TMath::TwoPi()*i/12);
73 q->AddQuad(x-dW, y-dH, r.Uniform(-1, 1), 2*dW, 2*dH);
74 q->QuadValue(r.Uniform(0, 130));
75 }
76 q->RefitPlex();
77
78 Reve::ZTrans& t = q->RefHMTrans();
79 t.SetPos(0, 0, 300);
80
becafd4b 81 gReve->AddRenderElement(q);
82 gReve->Redraw3D();
adabd949 83
84 return q;
5a5a1232 85}
7ec0cf74 86
355c4728 87Reve::QuadSet* reve_quad_test_hex(Float_t x=0, Float_t y=0, Float_t z=0,
bba4310b 88 Int_t num=100)
7ec0cf74 89{
90 TRandom r(0);
91
92 gStyle->SetPalette(1, 0);
93
94 {
95 Reve::QuadSet* q = new Reve::QuadSet("HexagonXY");
96 q->Reset(Reve::QuadSet::QT_HexagonXY, kFALSE, 32);
355c4728 97 for (Int_t i=0; i<num; ++i) {
7ec0cf74 98 q->AddHexagon(r.Uniform(-10, 10), r.Uniform(-10, 10), r.Uniform(-10, 10),
99 r.Uniform(0.2, 1));
100 q->QuadValue(r.Uniform(0, 120));
101 }
102 q->RefitPlex();
103
104 Reve::ZTrans& t = q->RefHMTrans();
105 t.SetPos(x, y, z);
106
107 gReve->AddRenderElement(q);
108 gReve->Redraw3D();
109 }
110
111 {
112 Reve::QuadSet* q = new Reve::QuadSet("HexagonYX");
113 q->Reset(Reve::QuadSet::QT_HexagonYX, kFALSE, 32);
355c4728 114 for (Int_t i=0; i<num; ++i) {
7ec0cf74 115 q->AddHexagon(r.Uniform(-10, 10), r.Uniform(-10, 10), r.Uniform(-10, 10),
116 r.Uniform(0.2, 1));
117 q->QuadValue(r.Uniform(0, 120));
118 }
119 q->RefitPlex();
120
121 Reve::ZTrans& t = q->RefHMTrans();
122 t.SetPos(x, y, z);
123
124 gReve->AddRenderElement(q);
125 gReve->Redraw3D();
126 }
127
128 return q;
129}
bba4310b 130
131Reve::QuadSet* reve_quad_test_hexid(Float_t x=0, Float_t y=0, Float_t z=0,
babf7b28 132 Int_t num=100, Bool_t register=kTRUE)
bba4310b 133{
134 TRandom r(0);
135
136 gStyle->SetPalette(1, 0);
137
138 {
139 Reve::QuadSet* q = new Reve::QuadSet("HexagonXY");
140 q->SetOwnIds(kTRUE);
141 q->Reset(Reve::QuadSet::QT_HexagonXY, kFALSE, 32);
142 for (Int_t i=0; i<num; ++i) {
143 q->AddHexagon(r.Uniform(-10, 10), r.Uniform(-10, 10), r.Uniform(-10, 10),
144 r.Uniform(0.2, 1));
145 q->QuadValue(r.Uniform(0, 120));
146 q->QuadId(new TNamed(Form("Quad with idx=%d", i), "This title is not confusing."));
147 }
148 q->RefitPlex();
149
150 Reve::ZTrans& t = q->RefHMTrans();
151 t.SetPos(x, y, z);
152
babf7b28 153 if (register)
154 {
155 gReve->AddRenderElement(q);
156 gReve->Redraw3D();
157 }
bba4310b 158 }
159
160 return q;
161}
babf7b28 162
163void reve_quad_test_hierarchy(Int_t n=4)
164{
165 gStyle->SetPalette(1, 0);
166
7b7207d6 167 Reve::RGBAPalette* pal = new Reve::RGBAPalette(20, 100);
babf7b28 168 pal->SetLimits(0, 120);
169
7b7207d6 170 Reve::FrameBox* box = new Reve::FrameBox();
babf7b28 171 box->SetAABox(-10, -10, -10, 20, 20, 20);
172 box->SetFrameColor((Color_t) 33);
173
174 Reve::RenderElementList* l = new Reve::RenderElementList("Parent/Dir");
175 l->SetTitle("Tooltip");
176 // l->SetMainColor((Color_t)3);
177 gReve->AddRenderElement(l);
178
179 // PMD: obtain digit-tree from run-loader, loop over entries.
180
181 for (Int_t i=0; i<n; ++i)
182 {
183 Reve::QuadSet* qs = reve_quad_test_hexid(0, 0, 50*i, 50, kFALSE);
184 // PMD: loop over clones-array, create hexagons above threshold.
185 qs->SetPalette(pal);
186 qs->SetFrame(box);
187 gReve->AddRenderElement(l, qs);
188 }
189
190 gReve->Redraw3D();
191}