]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVE/test-macros/tpc_sector_raw_test.C
Merge from EVE-dev to HEAD.
[u/mrichter/AliRoot.git] / EVE / test-macros / tpc_sector_raw_test.C
CommitLineData
092578a7 1// $Header$
2
3// Functions to read rootified raw-data from TPC sector test.
4//
5// Use tpc_sector_raw_test("filename.root") for initialization,
6// next_event() to advance along the data stream.
7// When there is no more data ROOT will crash.
8
9class AliRawReaderRoot;
10
11namespace Alieve {
12class TPCData;
13class TPCSector2D;
14class TPCSector3D;
15}
16
17using namespace Alieve;
18
19TPCData* x = 0;
20TPCSector2D* s = 0;
21TPCSector3D* t = 0;
22
23AliRawReaderRoot* reader = 0;
24Int_t event = -1;
25
26void tpc_sector_raw_test(const char *file = "", Int_t ievent = 0)
27{
28 // gROOT->Macro("alieve_loadlibs.C");
29 // Only sub-set of ALICE libraries is needed:
30 gSystem->Load("libESD");
31 gSystem->Load("libSTEER");
32 gSystem->Load("libRAWData");
33 gSystem->Load("libTPCbase");
34 gSystem->Load("libTPCrec");
35 gSystem->Load("libTPCsim");
36 // ALICE visualization
37 gSystem->Load("libAlieve");
38
39 gStyle->SetPalette(1, 0);
40
41 reader = new AliRawReaderRoot(file);
42 reader->RequireHeader(kFALSE);
43 reader->Reset();
44 for(Int_t i=0; i<ievent; ++i, ++event)
45 reader->NextEvennt();
46
47 x = new TPCData;
48 //x->SetLoadPedestal(5);
49 x->SetLoadThreshold(5);
50 x->SetAutoPedestal(kTRUE);
51
52 s = new TPCSector2D();
53 // s->SetSectorID(0); // 0 is default
54 // s->SetTrans(kTRUE); // place on proper 3D coordinates
55 s->SetDataSource(x);
56 s->SetFrameColor(36);
57 gReve->AddRenderElement(s);
58 gReve->DrawRenderElement(s);
59
60 t = new TPCSector3D();
61 // t->SetSectorID(0);
62 // t->SetTrans(kTRUE);
63 t->SetDataSource(x);
64 t->SetMaxTime(1023);
65 t->SetDriftVel(2.273);
66 gReve->AddRenderElement(t);
67 gReve->DrawRenderElement(t);
68
69 next_event();
70}
71
72void next_event()
73{
74 reader->NextEvent();
75 ++event;
76
77 printf("Now loading event %d\n", event);
78 AliTPCRawStreamOld input(reader);
79 reader->SelectEquipment(-1);
80 x->LoadRaw(input, kTRUE, kTRUE);
81
82 printf("Updating scene\n");
83 s->IncRTS();
84 t->IncRTS();
85 gReve->Redraw3D();
86}
87
88void tpc_raw_pad_dump(Int_t s, Int_t r, Int_t p)
89{
90 reader->Reset();
91 reader->NextEvent();
92
93 if(r >= TPCSectorData::GetInnSeg().GetNRows()) {
94 r -= TPCSectorData::GetInnSeg().GetNRows();
95 s += 36;
96 }
97
98 // AliTPCRawStream input(reader);
99 AliTPCRawStreamOld input(reader);
100 reader->SelectEquipment(-1);
101
102 Int_t sector = input.GetSector();
103 Int_t row = input.GetRow();
104
105 while (input.Next()) {
106 if (input.IsNewRow()) {
107 sector = input.GetSector();
108 row = input.GetRow();
109 }
110 if(sector != s || row != r) continue;
111
112 Int_t signal = input.GetSignal();
113 Int_t pad = input.GetPad();
114 Int_t time = input.GetTime();
115
116 if(pad == p)
117 printf("%d %d\n", time, signal);
118 }
119}