1 TEveRGBAPalette *g_zdc_palette = 0;
3 TEveGeoShape* zdc_make_shape(const Text_t* name, Double_t signal,
6 if ( ! gGeoManager->cd(path))
8 Warning("zdc_make_shape", "Module name=%s, path='%s' not found.\n", name, path);
13 g_zdc_palette->ColorFromValue(TMath::Nint(signal), rgb, kFALSE);
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());
21 // Scale z-dictance by 0.1
22 Double_t* t = s->RefMainTrans().ArrT();
28 // ???? There are 5 towers in ESD, 4 in geom.
29 // Not sure about assignment A/C <-> 1/2
33 AliEveEventManager::AssertGeometry();
35 AliESDZDC *esd = AliEveEventManager::AssertESD()->GetESDZDC();
37 if (g_zdc_palette == 0)
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();
46 TEveElementList* l = new TEveElementList("ZDC Data", "");
49 TEveElementList *c = 0;
53 // ZNC geometry ------------------------------------
54 c = new TEveElementList("ZNC");
57 te = esd->GetZN1TowerEnergy();
59 c->AddElement(zdc_make_shape("Tower 1", te[1],
60 "ALIC_1/ZDCC_1/ZNEU_1/ZNTX_1/ZN1_1"));
62 c->AddElement(zdc_make_shape("Tower 2", te[2],
63 "ALIC_1/ZDCC_1/ZNEU_1/ZNTX_1/ZN1_2"));
65 c->AddElement(zdc_make_shape("Tower 3", te[3],
66 "ALIC_1/ZDCC_1/ZNEU_1/ZNTX_2/ZN1_1"));
68 c->AddElement(zdc_make_shape("Tower 4", te[4],
69 "ALIC_1/ZDCC_1/ZNEU_1/ZNTX_2/ZN1_2"));
72 c = new TEveElementList("ZNA");
75 te = esd->GetZN2TowerEnergy();
77 c->AddElement(zdc_make_shape("Tower 1", te[1],
78 "ALIC_1/ZDCA_1/ZNEU_2/ZNTX_1/ZN1_1"));
80 c->AddElement(zdc_make_shape("Tower 2", te[2],
81 "ALIC_1/ZDCA_1/ZNEU_2/ZNTX_1/ZN1_2"));
83 c->AddElement(zdc_make_shape("Tower 3", te[3],
84 "ALIC_1/ZDCA_1/ZNEU_2/ZNTX_2/ZN1_1"));
86 c->AddElement(zdc_make_shape("Tower 4", te[4],
87 "ALIC_1/ZDCA_1/ZNEU_2/ZNTX_2/ZN1_2"));
90 // ZPC geometry ------------------------------------
91 c = new TEveElementList("ZPC");
94 te = esd->GetZP1TowerEnergy();
96 c->AddElement(zdc_make_shape("Tower 1", te[1],
97 "ALIC_1/ZDCC_1/ZPRO_1/ZPTX_1/ZP1_1"));
99 c->AddElement(zdc_make_shape("Tower 2", te[2],
100 "ALIC_1/ZDCC_1/ZPRO_1/ZPTX_2/ZP1_1"));
102 c->AddElement(zdc_make_shape("Tower 3", te[3],
103 "ALIC_1/ZDCC_1/ZPRO_1/ZPTX_3/ZP1_1"));
105 c->AddElement(zdc_make_shape("Tower 4", te[4],
106 "ALIC_1/ZDCC_1/ZPRO_1/ZPTX_4/ZP1_1"));
109 c = new TEveElementList("ZPA");
112 te = esd->GetZP2TowerEnergy();
114 c->AddElement(zdc_make_shape("Tower 1", te[1],
115 "ALIC_1/ZDCA_1/ZPRO_2/ZPTX_1/ZP1_1"));
117 c->AddElement(zdc_make_shape("Tower 2", te[2],
118 "ALIC_1/ZDCA_1/ZPRO_2/ZPTX_2/ZP1_1"));
120 c->AddElement(zdc_make_shape("Tower 3", te[3],
121 "ALIC_1/ZDCA_1/ZPRO_2/ZPTX_3/ZP1_1"));
123 c->AddElement(zdc_make_shape("Tower 4", te[4],
124 "ALIC_1/ZDCA_1/ZPRO_2/ZPTX_4/ZP1_1"));
126 // End - refresh screen