]>
Commit | Line | Data |
---|---|---|
ef2e5239 | 1 | // $Header$ |
2 | ||
3 | // Function to spawn a gui for reading rootified raw-data from TPC sector test. | |
4 | ||
5 | #ifdef __CINT__ | |
6 | ||
7 | class AliRawReaderRoot; | |
8 | ||
9 | namespace Alieve { | |
10 | class TPCData; | |
11 | class TPCSector2D; | |
12 | class TPCSector3D; | |
13 | } | |
14 | ||
15 | #else | |
16 | ||
17 | #include <Reve/Reve.h> | |
18 | #include <Reve/RGTopFrame.h> | |
19 | #include <Alieve/TPCData.h> | |
20 | #include <Alieve/TPCSector2D.h> | |
21 | #include <Alieve/TPCSector3D.h> | |
22 | ||
23 | #include <RAW/AliRawReaderRoot.h> | |
24 | #include <TPC/AliTPCRawStream.h> | |
25 | ||
26 | #include <TSystem.h> | |
27 | #include <TStyle.h> | |
28 | ||
29 | #endif | |
30 | ||
31 | ||
32 | using namespace Alieve; | |
33 | ||
34 | TPCSectorData* su = 0; | |
35 | TPCSectorData* sl = 0; | |
36 | ||
37 | TPCLoader* loader = 0; | |
38 | ||
39 | void tpc_gui_hack(const char *file=0, Int_t ievent=0) | |
40 | { | |
41 | gStyle->SetPalette(1, 0); | |
42 | ||
43 | TPCLoader* l = new TPCLoader; loader = l; | |
44 | TPCData* d = new TPCData; | |
45 | // d->SetLoadPedestal(5); | |
46 | d->SetLoadThreshold(5); | |
47 | d->SetAutoPedestal(kTRUE); | |
48 | l->SetData(d); | |
49 | l->SetDoubleSR(kTRUE); | |
50 | l->SetInitParams(50, 980, 15); | |
51 | ||
52 | su = d->GetSectorData( 4, kTRUE); | |
53 | sl = d->GetSectorData(13, kTRUE); | |
54 | ||
55 | TGListTreeItem* loader_item = gReve->AddRenderElement(l); | |
56 | ||
57 | if(file != 0) { | |
58 | l->SetFile(file); | |
59 | l->OpenFile(); | |
60 | l->GotoEvent(ievent); | |
61 | } | |
62 | } | |
63 | ||
64 | void disable_pad(Int_t row, Int_t pad, TPCSectorData* sd, | |
65 | Int_t thrExt=10, Float_t thrFac=2) | |
66 | { | |
67 | if(row < 0 || row >= TPCSectorData::GetNAllRows()) | |
68 | { printf("row off, %d\n", row); return; } | |
69 | ||
70 | Int_t npads = TPCSectorData::GetNPadsInRow(row); | |
71 | if(pad < 0) pad = npads + pad; | |
72 | if(pad < 0 || pad >= npads) { printf("pad off\n"); return; } | |
73 | ||
74 | sd->AddPadRowHack(row, pad, thrExt, thrFac); | |
75 | } | |
76 | ||
77 | void disable_std() | |
78 | { | |
79 | // The noisy pads in lower inner seg, left edge | |
80 | disable_pad(30, 1, sl, 200, 5); | |
81 | disable_pad(30, 2, sl, 200, 5); | |
82 | disable_pad(31, 1, sl, 200, 5); | |
83 | ||
84 | // The noisy pads in lower inner seg, middle | |
85 | disable_pad(31, 44, sl); | |
86 | disable_pad(31, 43, sl); | |
87 | disable_pad(30, 43, sl); | |
88 | ||
89 | for(Int_t r=16; r<32; ++r) { | |
90 | disable_pad(r, 0, su, 20, 3); | |
91 | disable_pad(r, 1, su, 20, 3); | |
92 | disable_pad(r, 2, su, 20, 3); | |
93 | disable_pad(r, 3, su, 20, 3); | |
94 | disable_pad(r, 4, su, 20, 3); | |
95 | } | |
96 | ||
97 | { // Top 12, 4 pads on the negative side. | |
98 | TPCSectorData::SegmentInfo& o1si = TPCSectorData::GetOut1Seg(); | |
99 | Int_t last = o1si.GetLastRow(); | |
100 | for(Int_t r=last - 11; r<=last; ++r) { | |
101 | disable_pad(r, -1, su, 20, 4); | |
102 | disable_pad(r, -2, su, 10, 3); | |
103 | disable_pad(r, -3, su, 10, 3); | |
104 | disable_pad(r, -4, su, 5, 2.5); | |
105 | disable_pad(r, -5, su, 5, 2.5); | |
106 | disable_pad(r, 0, su, 5, 2.5); | |
107 | disable_pad(r, 1, su, 20, 4); | |
108 | disable_pad(r, 2, su, 10, 3); | |
109 | disable_pad(r, 3, su, 10, 3); | |
110 | disable_pad(r, 4, su, 5, 2.5); | |
111 | ||
112 | disable_pad(r, -1, sl, 20, 4); | |
113 | disable_pad(r, -2, sl, 10, 3); | |
114 | disable_pad(r, -3, sl, 10, 3); | |
115 | disable_pad(r, -4, sl, 5, 2.5); | |
116 | disable_pad(r, -5, sl, 5, 2.5); | |
117 | } | |
118 | ||
119 | disable_pad(last-8, -4, sl, 5, 2.5); | |
120 | ||
121 | disable_pad(last-9, -2, sl, 5, 2); | |
122 | disable_pad(last-9, -3, sl, 5, 2.5); | |
123 | disable_pad(last-9, -4, sl, 5, 2.5); | |
124 | disable_pad(last-9, -5, sl, 5, 2.5); | |
125 | disable_pad(last-8, -5, sl, 5, 2.5); | |
126 | } | |
127 | ||
128 | { | |
129 | TPCSectorData::SegmentInfo& o2si = TPCSectorData::GetOut2Seg(); | |
130 | Int_t first = o2si.GetFirstRow(); | |
131 | Int_t last = o2si.GetLastRow(); | |
132 | ||
133 | for(Int_t r=first; r<=last; ++r) { | |
134 | disable_pad(r, -1, su, 30, 3.5); | |
135 | disable_pad(r, -2, su, 25, 3); | |
136 | disable_pad(r, -3, su, 20, 3); | |
137 | disable_pad(r, 0, su, 30, 3.5); | |
138 | disable_pad(r, 1, su, 25, 3); | |
139 | ||
140 | disable_pad(r, 0, sl, 30, 3.5); | |
141 | disable_pad(r, 1, sl, 25, 3); | |
142 | disable_pad(r, 2, sl, 20, 3); | |
143 | disable_pad(r, 3, sl, 20, 3); | |
144 | disable_pad(r, 4, sl, 20, 3); | |
145 | disable_pad(r, 5, sl, 20, 3); | |
146 | disable_pad(r, -1, sl, 30, 3.5); | |
147 | disable_pad(r, -2, sl, 25, 3); | |
148 | disable_pad(r, -3, sl, 25, 3); | |
149 | disable_pad(r, -4, sl, 25, 3); | |
150 | disable_pad(r, -5, sl, 25, 3); | |
151 | } | |
152 | ||
153 | for(Int_t pad=3; pad<30; ++pad) { | |
154 | disable_pad(last, -pad-1, sl, 20, 3); | |
155 | disable_pad(last, pad, su, 20, 3); | |
156 | } | |
157 | for(Int_t pad=3; pad<15; ++pad) { | |
158 | disable_pad(last-1, -pad-1, sl, 20, 3); | |
159 | disable_pad(last-2, -pad-1, sl, 20, 3); | |
160 | } | |
161 | disable_pad(last, 2, su, 20, 3); | |
162 | } | |
163 | ||
164 | loader->LoadEvent(); loader->UpdateSectors(); | |
165 | } |