2 // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
4 /**************************************************************************
5 * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
6 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for *
7 * full copyright notice. *
8 **************************************************************************/
10 // Function to spawn a gui for reading rootified raw-data from TPC sector test.
14 class AliRawReaderRoot;
18 class AliEveTPCSector2D;
19 class AliEveTPCSector3D;
25 #include <TEveManager.h>
26 #include <Alieve/AliEveTPCData.h>
27 #include <Alieve/AliEveTPCSector2D.h>
28 #include <Alieve/AliEveTPCSector3D.h>
30 #include <RAW/AliRawReaderRoot.h>
31 #include <TPC/AliTPCRawStream.h>
39 AliEveTPCSectorData* su = 0;
40 AliEveTPCSectorData* sl = 0;
42 AliEveTPCLoader* loader = 0;
44 void tpc_gui_hack(const char *file=0, Int_t ievent=0)
46 gStyle->SetPalette(1, 0);
48 AliEveTPCLoader* l = new AliEveTPCLoader; loader = l;
49 AliEveTPCData* d = new AliEveTPCData;
50 // d->SetLoadPedestal(5);
51 d->SetLoadThreshold(5);
52 d->SetAutoPedestal(kTRUE);
54 l->SetDoubleSR(kTRUE);
55 l->SetInitParams(50, 980, 15);
56 // l->SetTPCEquipementMap("EquipmentIdMap.data");
58 su = d->GetSectorData( 4, kTRUE);
59 sl = d->GetSectorData(13, kTRUE);
62 gEve->NotifyBrowser(l);
72 void disable_pad(Int_t row, Int_t pad, AliEveTPCSectorData* sd,
73 Int_t thrExt=10, Float_t thrFac=2)
75 if(row < 0 || row >= AliEveTPCSectorData::GetNAllRows())
76 { printf("row off, %d\n", row); return; }
78 Int_t npads = AliEveTPCSectorData::GetNPadsInRow(row);
79 if(pad < 0) pad = npads + pad;
80 if(pad < 0 || pad >= npads) { printf("pad off\n"); return; }
82 sd->AddPadRowHack(row, pad, thrExt, thrFac);
87 // The noisy pads in lower inner seg, left edge
88 disable_pad(30, 1, sl, 200, 5);
89 disable_pad(30, 2, sl, 200, 5);
90 disable_pad(31, 1, sl, 200, 5);
92 // The noisy pads in lower inner seg, middle
93 disable_pad(31, 44, sl);
94 disable_pad(31, 43, sl);
95 disable_pad(30, 43, sl);
97 for(Int_t r=16; r<32; ++r) {
98 disable_pad(r, 0, su, 20, 3);
99 disable_pad(r, 1, su, 20, 3);
100 disable_pad(r, 2, su, 20, 3);
101 disable_pad(r, 3, su, 20, 3);
102 disable_pad(r, 4, su, 20, 3);
105 { // Top 12, 4 pads on the negative side.
106 AliEveTPCSectorData::SegmentInfo& o1si = AliEveTPCSectorData::GetOut1Seg();
107 Int_t last = o1si.GetLastRow();
108 for(Int_t r=last - 11; r<=last; ++r) {
109 disable_pad(r, -1, su, 20, 4);
110 disable_pad(r, -2, su, 10, 3);
111 disable_pad(r, -3, su, 10, 3);
112 disable_pad(r, -4, su, 5, 2.5);
113 disable_pad(r, -5, su, 5, 2.5);
114 disable_pad(r, 0, su, 5, 2.5);
115 disable_pad(r, 1, su, 20, 4);
116 disable_pad(r, 2, su, 10, 3);
117 disable_pad(r, 3, su, 10, 3);
118 disable_pad(r, 4, su, 5, 2.5);
120 disable_pad(r, -1, sl, 20, 4);
121 disable_pad(r, -2, sl, 10, 3);
122 disable_pad(r, -3, sl, 10, 3);
123 disable_pad(r, -4, sl, 5, 2.5);
124 disable_pad(r, -5, sl, 5, 2.5);
127 disable_pad(last-8, -4, sl, 5, 2.5);
129 disable_pad(last-9, -2, sl, 5, 2);
130 disable_pad(last-9, -3, sl, 5, 2.5);
131 disable_pad(last-9, -4, sl, 5, 2.5);
132 disable_pad(last-9, -5, sl, 5, 2.5);
133 disable_pad(last-8, -5, sl, 5, 2.5);
137 AliEveTPCSectorData::SegmentInfo& o2si = AliEveTPCSectorData::GetOut2Seg();
138 Int_t first = o2si.GetFirstRow();
139 Int_t last = o2si.GetLastRow();
141 for(Int_t r=first; r<=last; ++r) {
142 disable_pad(r, -1, su, 30, 3.5);
143 disable_pad(r, -2, su, 25, 3);
144 disable_pad(r, -3, su, 20, 3);
145 disable_pad(r, 0, su, 30, 3.5);
146 disable_pad(r, 1, su, 25, 3);
148 disable_pad(r, 0, sl, 30, 3.5);
149 disable_pad(r, 1, sl, 25, 3);
150 disable_pad(r, 2, sl, 20, 3);
151 disable_pad(r, 3, sl, 20, 3);
152 disable_pad(r, 4, sl, 20, 3);
153 disable_pad(r, 5, sl, 20, 3);
154 disable_pad(r, -1, sl, 30, 3.5);
155 disable_pad(r, -2, sl, 25, 3);
156 disable_pad(r, -3, sl, 25, 3);
157 disable_pad(r, -4, sl, 25, 3);
158 disable_pad(r, -5, sl, 25, 3);
161 for(Int_t pad=3; pad<30; ++pad) {
162 disable_pad(last, -pad-1, sl, 20, 3);
163 disable_pad(last, pad, su, 20, 3);
165 for(Int_t pad=3; pad<15; ++pad) {
166 disable_pad(last-1, -pad-1, sl, 20, 3);
167 disable_pad(last-2, -pad-1, sl, 20, 3);
169 disable_pad(last, 2, su, 20, 3);
172 loader->LoadEvent(); loader->UpdateSectors();