]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/macros/reve_quad_test.C
Add the det.element id for each local board
[u/mrichter/AliRoot.git] / EVE / macros / reve_quad_test.C
1 // $Header$
2
3 Reve::QuadSet* reve_quad_test(Float_t x=0, Float_t y=0, Float_t z=0,
4                               Int_t num=100)
5 {
6   TRandom r(0);
7
8   gStyle->SetPalette(1, 0);
9
10   Reve::RGBAPalette* pal = new Reve::RGBAPalette(0, 130);
11
12   Reve::QuadSet* q = new Reve::QuadSet("RectangleXY");
13   q->SetPalette(pal);
14   q->Reset(Reve::QuadSet::QT_RectangleXY, kFALSE, 32);
15   for (Int_t i=0; i<num; ++i) {
16     q->AddQuad(r.Uniform(-10, 10), r.Uniform(-10, 10), r.Uniform(-10, 10),
17                r.Uniform(0.2, 1), r.Uniform(0.2, 1));
18     q->QuadValue(r.Uniform(0, 130));
19   }
20   q->RefitPlex();
21
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
31 Reve::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
60 Reve::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");
67   q->Reset(Reve::QuadSet::QT_RectangleXY, kFALSE, 32);
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
81   gReve->AddRenderElement(q);
82   gReve->Redraw3D();
83
84   return q;
85 }
86
87 Reve::QuadSet* reve_quad_test_hex(Float_t x=0, Float_t y=0, Float_t z=0,
88                                   Int_t num=100)
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);
97     for (Int_t i=0; i<num; ++i) {
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);
114     for (Int_t i=0; i<num; ++i) {
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 }
130
131 Reve::QuadSet* reve_quad_test_hexid(Float_t x=0, Float_t y=0, Float_t z=0,
132                                     Int_t num=100, Bool_t register=kTRUE)
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
153     if (register)
154     {
155       gReve->AddRenderElement(q);
156       gReve->Redraw3D();
157     }
158   }
159
160   return q;
161 }
162
163 void reve_quad_test_hierarchy(Int_t n=4)
164 {
165   gStyle->SetPalette(1, 0);
166
167   Reve::RGBAPalette* pal = new Reve::RGBAPalette(20, 100);
168   pal->SetLimits(0, 120);
169
170   Reve::FrameBox*    box = new Reve::FrameBox();
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 }