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