* full copyright notice. *
**************************************************************************/
-void its_raw(const char *input = "rawdata.root",
- Int_t mode = 63,
- Int_t event = 0,
- Bool_t accumulate = kFALSE)
+#include <vector> // bypass a cint problem in root-5.20
+
+// Load ITS raw-data.
+// Argument mode is a bitwise or determining which layers to import:
+// 1, 2 : SPD
+// 4, 8 : SDD
+// 16, 32 : SSD
+// By default import all layers.
+
+void its_raw(Int_t mode = 63,
+ Bool_t check_empty = kTRUE,
+ Bool_t scaled_modules = kFALSE)
{
- if (gSystem->AccessPathName(input, kReadPermission))
- {
- Error("its_raw", "file '%s' not found.", input);
- return;
- }
+ AliRawReader *rawReader = AliEveEventManager::AssertRawReader();
- AliCDBManager::Instance()->SetRun(0);
- AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
-
- AliRawReader *rawReader = NULL;
- TString fileName(input);
- if (fileName.EndsWith("/")) {
- rawReader = new AliRawReaderFile(fileName);
- } else if (fileName.EndsWith(".root")) {
- rawReader = new AliRawReaderRoot(fileName);
- } else if (!fileName.IsNull()) {
- rawReader = new AliRawReaderDate(fileName);
- }
+ TEveUtil::LoadMacro("its_common_foos.C");
AliEveITSDigitsInfo* di = new AliEveITSDigitsInfo();
-
- if (accumulate) AliLog::SetGlobalLogLevel(AliLog::kError);
- Int_t ev = 0;
- do {
- if (ev % 100 == 0) printf("AliEveEventManager: %d\n", ev);
- if (rawReader->NextEvent() == kFALSE)
- {
- Error("its_raw", "Reading event %d failed (requested event %d).", ev, event);
- if (accumulate)
- break;
- else
- return;
- }
- if (accumulate) di->ReadRaw(rawReader,mode);
- } while (++ev < event);
-
- if ( ! accumulate) di->ReadRaw(rawReader,mode);
-
- di->Dump();
-
- delete rawReader;
- // Could initialize AliEveITSModule statics (?)
-
- AliITSgeom* g = di->fGeom;
+ di->ReadRaw(rawReader,mode);
+ // di->Dump();
gStyle->SetPalette(1, 0);
- // Initialize palettes (?)
-
- gEve->DisableRedraw();
-
- TString sSector;
- TString bsSector="Sector";
- TString sStave;
- TString bsStave="Stave";
- TString sLadder;
- TString bsLadder="Ladder";
-
- Int_t i=0;
- Int_t nsec, nstave, nlad, nMod;
-
- if (mode & 1) {
- TEveElementList* l = new TEveElementList("SPD0");
- l->SetTitle("SPDs' first layer");
- l->SetMainColor((Color_t)2);
- gEve->AddElement(l);
- for (nsec=0; nsec<10; nsec++) {
- sSector = bsSector;
- sSector += nsec;
- TEveElementList* relSector = new TEveElementList(sSector.Data());
- relSector->SetMainColor((Color_t)2);
- gEve->AddElement(relSector, l);
- for (nstave=0; nstave<2; nstave++){
- sStave = bsStave;
- sStave += nstave;
- TEveElementList* relStave = new TEveElementList(sStave.Data());
- relStave->SetMainColor((Color_t)2);
- gEve->AddElement(relStave, relSector);
- for (nMod=0; nMod<4; nMod++)
- {
- if (di->GetDigits(i, 0) && di->GetDigits(i, 0)->GetEntriesFast() > 0)
- {
- AliEveITSModule* m = new AliEveITSModule(i, di);
- gEve->AddElement(m, relStave);
- }
- ++i;
- }
- }
- }
- } else {
- i += 10*2*4;
- }
-
- if (mode & 2) {
- TEveElementList* l = new TEveElementList("SPD1");
- l->SetTitle("SPDs' second layer");
- l->SetMainColor((Color_t)2);
- gEve->AddElement(l);
-
- for (nsec=0; nsec<10; nsec++) {
- sSector = bsSector;
- sSector += nsec;
- TEveElementList* relSector = new TEveElementList(sSector.Data());
- relSector->SetMainColor((Color_t)2);
- gEve->AddElement(relSector, l);
- for (nstave=0; nstave<4; nstave++){
- sStave = bsStave;
- sStave += nstave;
- TEveElementList* relStave = new TEveElementList(sStave.Data());
- relStave->SetMainColor((Color_t)2);
- gEve->AddElement(relStave, relSector);
- for (nMod=0; nMod<4; nMod++)
- {
- if (di->GetDigits(i, 0) && di->GetDigits(i, 0)->GetEntriesFast() > 0)
- {
- AliEveITSModule* m = new AliEveITSModule(i, di);
- gEve->AddElement(m, relStave);
- }
- ++i;
- }
- }
- }
- } else {
- i += 10*4*4;
- }
-
- if (mode & 4) {
- TEveElementList* l = new TEveElementList("SDD2");
- l->SetTitle("SDDs' first layer");
- l->SetMainColor((Color_t)3);
- gEve->AddElement(l);
-
- for (nlad=0; nlad<14; nlad++) {
- sLadder = bsLadder;
- sLadder += nlad;
- TEveElementList* relLadder = new TEveElementList(sLadder.Data());
- relLadder->SetMainColor((Color_t)3);
- gEve->AddElement(relLadder, l);
- for (nMod=0; nMod<6; nMod++) {
- AliEveITSModule* m = new AliEveITSModule(i++, di);
- gEve->AddElement(m, relLadder);
- }
- }
- } else {
- i += 14*6;
- }
-
- if (mode & 8) {
- TEveElementList* l = new TEveElementList("SDD3");
- l->SetTitle("SDDs' second layer");
- l->SetMainColor((Color_t)3);
- gEve->AddElement(l);
- for (nlad=0; nlad<22; nlad++) {
- sLadder = bsLadder;
- sLadder += nlad;
- TEveElementList* relLadder = new TEveElementList(sLadder.Data());
- relLadder->SetMainColor((Color_t)3);
- gEve->AddElement(relLadder, l);
- for (nMod=0; nMod<8; nMod++) {
- AliEveITSModule* m = new AliEveITSModule(i++, di);
- gEve->AddElement(m, relLadder);
- }
- }
- } else {
- i += 22*8;
- }
-
- if (mode & 16) {
- TEveElementList* l = new TEveElementList("SSD4");
- l->SetTitle("SSDs' first layer");
- l->SetMainColor((Color_t)4);
- gEve->AddElement(l);
- for (nlad=0; nlad<34; nlad++) {
- sLadder = bsLadder;
- sLadder += nlad;
- TEveElementList* relLadder = new TEveElementList(sLadder.Data());
- relLadder->SetMainColor((Color_t)4);
- gEve->AddElement(relLadder, l);
- for (nMod=0; nMod<22; nMod++) {
- AliEveITSModule* m = new AliEveITSModule(i++, di);
- gEve->AddElement(m, relLadder);
- }
- }
- } else {
- i += 34*22;
- }
-
- if (mode & 32) {
- TEveElementList* l = new TEveElementList("SSD5");
- l->SetTitle("SSDs' second layer");
- l->SetMainColor((Color_t)4);
- gEve->AddElement(l);
- for (nlad=0; nlad<38; nlad++) {
- sLadder = bsLadder;
- sLadder += nlad;
- TEveElementList* relLadder = new TEveElementList(sLadder.Data());
- relLadder->SetMainColor((Color_t)4);
- gEve->AddElement(relLadder, l);
- for (nMod=0; nMod<25; nMod++) {
- AliEveITSModule* m = new AliEveITSModule(i++, di);
- gEve->AddElement(m, relLadder);
- }
- }
- } else {
- i += 38*25;
- }
- gEve->EnableRedraw();
+ its_display_raw_digits(di, mode, check_empty, scaled_modules);
}