]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVE/test-macros/tpc_sector_raw_test.C
New files, 3DS import demo from Bertrand.
[u/mrichter/AliRoot.git] / EVE / test-macros / tpc_sector_raw_test.C
index 147fabea5b8a544d8e0c18e73207a75c713f5294..8a93f77346f8d1f279cf7487899fb678195254f0 100644 (file)
+// $Header$
+
+// Functions to read rootified raw-data from TPC sector test.
+//
+// Use tpc_sector_raw_test("filename.root") for initialization,
+// next_event() to advance along the data stream.
+// When there is no more data ROOT will crash.
+
 class AliRawReaderRoot;
 
 namespace Alieve {
 class TPCData;
+class TPCSector2D;
+class TPCSector3D;
 }
 
-Alieve::TPCData*  x = 0;
-AliRawReaderRoot* reader = 0;
+using namespace Alieve;
+
+TPCData*     x = 0;
+TPCSector2D* s = 0;
+TPCSector3D* t = 0;
 
-void tpc_sector_raw_test(const char *file = "",Int_t ievent = 0)
+AliRawReaderRoot* reader =  0;
+Int_t             event  = -1;
+Int_t     default_sector =  13;
+
+void tpc_sector_raw_test(const char *file = "", Int_t ievent = 0)
 {
-  gROOT->Macro("alieve_loadlibs.C");
-  gSystem->Load("libAlieve");
+  gStyle->SetPalette(1, 0);
 
   reader = new AliRawReaderRoot(file);
-  reader->RequireHeader(kFALSE);
+  //reader->LoadEquipmentIdsMap
+  //  (gSystem->ExpandPathName("$(ALICE_ROOT)/TPC/mapping/EquipmentIdMap.data"));
+  //  (gSystem->ExpandPathName("EquipmentIdMap.data"));
+
   reader->Reset();
-  for(Int_t i = 0; i <= ievent; i++)
-    reader->NextEvent();
-  AliTPCRawStreamOld input(reader);
-  reader->SelectEquipment(-1);
+  for(Int_t i=0; i<ievent; ++i, ++event) {
+    if(reader->NextEvent() == kFALSE) {
+      printf("End of raw stream at event %d (reqired event %d).\n", i, ievent);
+      return;
+    }
+  }
 
-  x = new Alieve::TPCData;
-  //x->SetSectorBlockSize(8192);
+  x = new TPCData;
+  // x->SetLoadPedestal(5);
+  x->SetLoadThreshold(5);
   x->SetAutoPedestal(kTRUE);
-  x->SetLoadThreshold(3);
-  //x->CreateAllSectors();
-  x->LoadRaw(input, kTRUE);
 
-  gStyle->SetPalette(1, 0);
-
-  Alieve::TPCSector2D* s = new Alieve::TPCSector2D();
+  s = new TPCSector2D();
+  s->SetSectorID(default_sector);
+  s->SetAutoTrans(kTRUE); // place on proper 3D coordinates
   s->SetDataSource(x);
-  s->SetMainColor(36);
+  s->SetFrameColor(36);
   gReve->AddRenderElement(s);
   gReve->DrawRenderElement(s);
 
+  t = new TPCSector3D();
+  t->SetSectorID(default_sector);
+  t->SetAutoTrans(kTRUE);
+  t->SetDataSource(x);
+  t->SetMaxTime(1023);
+  t->SetDriftVel(2.273);
+  gReve->AddRenderElement(t);
+  gReve->DrawRenderElement(t);
+
+  next_event();
 }
 
-void tpc_raw_pad_dump(Int_t s, Int_t r, Int_t p)
+void next_event()
 {
+  if(reader->NextEvent() == kTRUE) {
+    ++event;
+  } else {
+    printf("Reached end of stream, rewinding to first event.\n");
+    event = 0;
+    reader->RewindEvents();
+    reader->NextEvent();
+  }
+
+  printf("Now loading event %d\n", event);
   reader->Reset();
-  reader->NextEvent();
+  AliTPCRawStream input(reader);
+  input.SetOldRCUFormat(kTRUE);
+  reader->Select("TPC"); // ("TPC", firstRCU, lastRCU);
+
+  x->DropAllSectors();
+  x->LoadRaw(input, kTRUE, kTRUE);
 
-  if(r >= Alieve::TPCSectorData::GetInnSeg().fNRows) {
-    r -= Alieve::TPCSectorData::GetInnSeg().fNRows;
+  printf("Updating scene\n");
+  s->IncRTS();
+  t->IncRTS();
+  gReve->Redraw3D();
+}
+
+void tpc_raw_pad_dump(Int_t s, Int_t r, Int_t p)
+{
+  if(r >= TPCSectorData::GetInnSeg().GetNRows()) {
+    r -=  TPCSectorData::GetInnSeg().GetNRows();
     s += 36;
   }
 
+  reader->Reset();
   AliTPCRawStream input(reader);
+  input.SetOldRCUFormat(kTRUE);
+  // reader->Select(0, firstRCU, lastRCU);
+
   Int_t sector = input.GetSector();
   Int_t row    = input.GetRow();