]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/alice-macros/pmd_digits.C
b6a87e602687c010ebd34be43a38434626c5cc66
[u/mrichter/AliRoot.git] / EVE / alice-macros / pmd_digits.C
1 // ---------------------------------------------------------------------- //
2 void pmd_digits(Int_t mode = 0)
3 {
4   Bool_t drawBackPolygons = kFALSE;
5
6   gStyle->SetPalette(1, 0);
7
8
9   TString spl;
10
11   TString sddl;
12   TString bsddl="DDL";
13
14
15   AliRunLoader* rl =  Alieve::Event::AssertRunLoader();
16   rl->LoadDigits("PMD");
17   TTree* pmdt = rl->GetTreeD("PMD", false);
18
19   //  cout << pmdt->GetEntries() << endl;
20
21   gReve->DisableRedraw();
22
23   Reve::RenderElementList* l = new Reve::RenderElementList("PMD");
24   // l->SetTitle("tooltip");
25   // l->SetMainColor((Color_t)3);
26   gReve->AddRenderElement(l);
27
28   Reve::RGBAPalette* pal = new Reve::RGBAPalette(20, 1000);
29   pal->SetLimits(0, 1024);
30
31   Int_t NSM         = 0;
32   Int_t istartDDL   = 0;
33   Int_t iendDDL     = 0;
34   Int_t modnumber   = 0;
35   Int_t istartPlane = 0;
36   Int_t iendPlane   = 0;
37   Float_t zpos      = 0;
38
39   switch(mode)
40     {
41     case 0:
42       istartPlane = 0;
43       iendPlane   = 1;
44       printf("--- Visualization is set for PREshower Plane ---\n");
45       break;
46
47     case 1:
48       istartPlane = 1;
49       iendPlane   = 2;
50       printf("--- Visualization is set for CPV Plane ---\n");
51       break;
52
53     case 2:
54       istartPlane = 0;
55       iendPlane   = 2;
56       printf("--- Visualization is set for both Planes ---\n");
57       break;
58
59     default:
60       printf("--- Not set for any Plane ---\n");
61     }
62
63   for (Int_t ipl = istartPlane; ipl < iendPlane; ipl++)
64     {
65
66       if (ipl == 0)
67         {
68           spl       = "PRE";
69           istartDDL = 0;
70           iendDDL   = 4;
71           zpos      = 365.;
72         }
73       if (ipl == 1)
74         {
75           spl       = "CPV";
76           istartDDL = 4;
77           iendDDL   = 6;
78           zpos      = 360.;
79         }
80       
81       Reve::RenderElementList* lplane = new Reve::RenderElementList(spl.Data());
82       //  l->SetMainColor((Color_t)3);
83       gReve->AddRenderElement(lplane, l);
84       
85       for (Int_t iddl = istartDDL; iddl < iendDDL; iddl++)
86         {
87           sddl = bsddl;
88           sddl += iddl;
89           Reve::RenderElementList* lddl = new Reve::RenderElementList(sddl.Data());
90           //  l->SetMainColor((Color_t)3);
91           gReve->AddRenderElement(lddl, lplane);
92
93           modnumber = iddl*6;
94
95           if (iddl < 4)
96             {
97               NSM = 6;
98             }
99           else if (iddl >=4 && iddl < 6)
100             {
101               NSM = 12;
102             }
103
104           for (Int_t ism = 0; ism < NSM; ism++)
105             {
106               
107               Alieve::PMDModule *lmodule = new Alieve::PMDModule();
108               lmodule->SetPosition(0.,0.,zpos);
109               lmodule->DisplayDigitsData(modnumber, pmdt);
110               lmodule->SetPalette(pal);
111               if (drawBackPolygons)
112               {
113                 Reve::FrameBox* b = lmodule->GetFrame();
114                 b->SetFrameWidth(1.5);
115                 b->SetFrameColor((Color_t) 1);
116                 b->SetBackColor ((Color_t) (kTeal - 9));
117                 b->SetFrameFill (kFALSE);
118                 b->SetDrawBack  (kTRUE);
119               }
120               gReve->AddRenderElement(lmodule, lddl);
121               modnumber++;
122               if (iddl == 4 && modnumber == 30) modnumber = 42;
123             }
124
125         }
126
127     }
128
129
130   gReve->EnableRedraw();
131   
132   gReve->Redraw3D();
133 }
134
135 // ---------------------------------------------------------------------- //