]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/alice-macros/esd_zdc.C
First version of ZDC tower visualization.
[u/mrichter/AliRoot.git] / EVE / alice-macros / esd_zdc.C
1 TEveRGBAPalette *g_zdc_palette = 0;
2
3 TEveGeoShape* zdc_make_shape(const Text_t* name, Double_t signal,
4                              const Text_t* path)
5 {
6   if ( ! gGeoManager->cd(path))
7   {
8     Warning("zdc_make_shape", "Module name=%s, path='%s' not found.\n", name, path);
9     return 0;
10   }
11
12   UChar_t rgb[3];
13   g_zdc_palette->ColorFromValue(TMath::Nint(signal), rgb, kFALSE);
14
15   TEveGeoShape *s = new TEveGeoShape(name);
16   s->SetPickable(kTRUE);
17   s->SetMainColorRGB(rgb[0], rgb[1], rgb[2]);
18   s->SetShape(gGeoManager->GetCurrentVolume()->GetShape());
19   s->RefMainTrans().SetFrom(*gGeoManager->GetCurrentMatrix());
20
21   // Scale z-dictance by 0.1
22   Double_t* t = s->RefMainTrans().ArrT();
23   t[2] *= 0.1;
24
25   return s;
26 }
27
28 // ???? There are 5 towers in ESD, 4 in geom.
29 // Not sure about assignment A/C <-> 1/2
30
31 void esd_zdc() 
32 {
33   AliEveEventManager::AssertGeometry();
34
35   AliESDZDC *esd = AliEveEventManager::AssertESD()->GetESDZDC();
36
37   if (g_zdc_palette == 0)
38   {
39     // Map values from 0, 50 on a spectrum palette.
40     g_zdc_palette = new TEveRGBAPalette(0, 50, kTRUE, kFALSE);
41     g_zdc_palette->IncRefCount();
42     gStyle->SetPalette(1, 0);
43     g_zdc_palette->SetupColorArray();
44   }
45
46   TEveElementList* l = new TEveElementList("ZDC Data", "");
47   gEve->AddElement(l);
48
49   TEveElementList *c  = 0;
50   TEveGeoShape    *s  = 0;
51   Double_t        *te = 0;
52
53   // ZNC geometry ------------------------------------
54   c = new TEveElementList("ZNC");
55   l->AddElement(c);
56
57   te = esd->GetZN1TowerEnergy();
58
59   c->AddElement(zdc_make_shape("Tower 1", te[1],
60                                "ALIC_1/ZDCC_1/ZNEU_1/ZNTX_1/ZN1_1"));
61
62   c->AddElement(zdc_make_shape("Tower 2", te[2],
63                                "ALIC_1/ZDCC_1/ZNEU_1/ZNTX_1/ZN1_2"));
64
65   c->AddElement(zdc_make_shape("Tower 3", te[3],
66                                "ALIC_1/ZDCC_1/ZNEU_1/ZNTX_2/ZN1_1"));
67
68   c->AddElement(zdc_make_shape("Tower 4", te[4],
69                                "ALIC_1/ZDCC_1/ZNEU_1/ZNTX_2/ZN1_2"));
70
71   // ZNA geometry
72   c = new TEveElementList("ZNA");
73   l->AddElement(c);
74
75   te = esd->GetZN2TowerEnergy();
76
77   c->AddElement(zdc_make_shape("Tower 1", te[1],
78                                "ALIC_1/ZDCA_1/ZNEU_2/ZNTX_1/ZN1_1"));
79
80   c->AddElement(zdc_make_shape("Tower 2", te[2],
81                                "ALIC_1/ZDCA_1/ZNEU_2/ZNTX_1/ZN1_2"));
82
83   c->AddElement(zdc_make_shape("Tower 3", te[3],
84                                "ALIC_1/ZDCA_1/ZNEU_2/ZNTX_2/ZN1_1"));
85
86   c->AddElement(zdc_make_shape("Tower 4", te[4],
87                                "ALIC_1/ZDCA_1/ZNEU_2/ZNTX_2/ZN1_2"));
88
89
90   // ZPC geometry ------------------------------------
91   c = new TEveElementList("ZPC");
92   l->AddElement(c);
93
94   te = esd->GetZP1TowerEnergy();
95
96   c->AddElement(zdc_make_shape("Tower 1", te[1],
97                                "ALIC_1/ZDCC_1/ZPRO_1/ZPTX_1/ZP1_1"));
98
99   c->AddElement(zdc_make_shape("Tower 2", te[2],
100                                "ALIC_1/ZDCC_1/ZPRO_1/ZPTX_2/ZP1_1"));
101
102   c->AddElement(zdc_make_shape("Tower 3", te[3],
103                                "ALIC_1/ZDCC_1/ZPRO_1/ZPTX_3/ZP1_1"));
104
105   c->AddElement(zdc_make_shape("Tower 4", te[4],
106                                "ALIC_1/ZDCC_1/ZPRO_1/ZPTX_4/ZP1_1"));
107
108   // ZPA geometry
109   c = new TEveElementList("ZPA");
110   l->AddElement(c);
111
112   te = esd->GetZP2TowerEnergy();
113
114   c->AddElement(zdc_make_shape("Tower 1", te[1],
115                                "ALIC_1/ZDCA_1/ZPRO_2/ZPTX_1/ZP1_1"));
116
117   c->AddElement(zdc_make_shape("Tower 2", te[2],
118                                "ALIC_1/ZDCA_1/ZPRO_2/ZPTX_2/ZP1_1"));
119
120   c->AddElement(zdc_make_shape("Tower 3", te[3],
121                                "ALIC_1/ZDCA_1/ZPRO_2/ZPTX_3/ZP1_1"));
122
123   c->AddElement(zdc_make_shape("Tower 4", te[4],
124                                "ALIC_1/ZDCA_1/ZPRO_2/ZPTX_4/ZP1_1"));
125
126   // End - refresh screen
127   gEve->Redraw3D();
128 }