* full copyright notice. *
**************************************************************************/
+#if !defined(__CINT__) || defined(__MAKECINT__)
+#include <TString.h>
+#include <TEveManager.h>
+#include <TEveElement.h>
+
+#include <AliEveITSModule.h>
+#include <AliEveITSDigitsInfo.h>
+#include <AliEveITSScaledModule.h>
+#endif
+
+
void its_common_foos()
{}
AliEveITSModule* its_make_module(Int_t i, TEveElement* parent,
AliEveITSDigitsInfo* di,
AliEveDigitScaleInfo* si,
- Bool_t check_empty, Bool_t scaled_modules)
+ Bool_t check_empty,
+ Bool_t scaled_modules)
{
AliEveITSModule* m = 0;
if (i > 239 && i < 500) det_id = 1;
else if (i >= 500) det_id = 2;
- if (!check_empty || (di->GetDigits(i, det_id) && di->GetDigits(i, det_id)->GetEntriesFast() > 0))
+ if (!check_empty || di->HasData(i, det_id) || di->IsDead(i, det_id))
{
if (scaled_modules)
m = new AliEveITSScaledModule(i, di, si);
else
m = new AliEveITSModule(i, di);
+
+ // Before 5.26 ROOT did not draw frames of empty quad-sets.
+ // Bypass until we move there.
+ if (!di->HasData(i, det_id))
+ {
+ m->AddQuad(0,0,0,0);
+ m->RefitPlex();
+ }
+
if (parent)
parent->AddElement(m);
}
Bool_t check_empty = kTRUE,
Bool_t scaled_modules = kFALSE)
{
+ const TString bsSector = "Sector";
+ const TString bsStave = "Stave";
+ const TString bsLadder = "Ladder";
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;
+ Int_t i=0;
+ Long_t nsec, nstave, nlad, nMod;
gEve->DisableRedraw();
AliEveDigitScaleInfo* si = 0;
if (scaled_modules)
+ {
si = new AliEveDigitScaleInfo;
+ }
- if (mode & 1) {
+ if (mode & 1)
+ {
TEveElementList* l = new TEveElementList("SPD0");
l->SetTitle("SPDs' first layer");
- l->SetMainColor(Color_t(kRed));
+ l->SetMainColor(kRed);
gEve->AddElement(l);
- for (nsec=0; nsec<10; nsec++) {
- sSector = bsSector;
- sSector += nsec;
- TEveElementList* relSector = new TEveElementList(sSector.Data());
- relSector->SetMainColor(Color_t(kRed));
- gEve->AddElement(relSector, l);
- for (nstave=0; nstave<2; nstave++){
- sStave = bsStave;
- sStave += nstave;
- TEveElementList* relStave = new TEveElementList(sStave.Data());
- relStave->SetMainColor(Color_t(kRed));
- gEve->AddElement(relStave, relSector);
+
+ for (nsec=0; nsec<10; nsec++)
+ {
+ TEveElementList* relSector = new TEveElementList(bsSector + nsec);
+ relSector->SetMainColor(kRed);
+ l->AddElement(relSector);
+
+ for (nstave=0; nstave<2; nstave++)
+ {
+ TEveElementList* relStave = new TEveElementList(bsStave + nstave);
+ relStave->SetMainColor(kRed);
+ relSector->AddElement(relStave);
+
for (nMod=0; nMod<4; ++nMod, ++i)
{
its_make_module(i, relStave, di, si, check_empty, scaled_modules);
}
}
}
- } else {
+ }
+ else
+ {
i += 10*2*4;
}
- if (mode & 2) {
+ if (mode & 2)
+ {
TEveElementList* l = new TEveElementList("SPD1");
l->SetTitle("SPDs' second layer");
- l->SetMainColor(Color_t(kRed));
+ l->SetMainColor(kRed);
gEve->AddElement(l);
- for (nsec=0; nsec<10; nsec++) {
- sSector = bsSector;
- sSector += nsec;
- TEveElementList* relSector = new TEveElementList(sSector.Data());
- relSector->SetMainColor(Color_t(kRed));
- gEve->AddElement(relSector, l);
- for (nstave=0; nstave<4; nstave++){
- sStave = bsStave;
- sStave += nstave;
- TEveElementList* relStave = new TEveElementList(sStave.Data());
- relStave->SetMainColor(Color_t(kRed));
- gEve->AddElement(relStave, relSector);
+ for (nsec=0; nsec<10; nsec++)
+ {
+ TEveElementList* relSector = new TEveElementList(bsSector + nsec);
+ relSector->SetMainColor(kRed);
+ l->AddElement(relSector);
+
+ for (nstave=0; nstave<4; nstave++)
+ {
+ TEveElementList* relStave = new TEveElementList(bsStave + nstave);
+ relStave->SetMainColor(kRed);
+ relSector->AddElement(relStave);
+
for (nMod=0; nMod<4; ++nMod, ++i)
{
its_make_module(i, relStave, di, si, check_empty, scaled_modules);
}
}
}
- } else {
+ }
+ else
+ {
i += 10*4*4;
}
- if (mode & 4) {
+ if (mode & 4)
+ {
TEveElementList* l = new TEveElementList("SDD2");
l->SetTitle("SDDs' first layer");
- l->SetMainColor(Color_t(kBlue));
+ l->SetMainColor(kBlue);
gEve->AddElement(l);
- for (nlad=0; nlad<14; nlad++) {
- sLadder = bsLadder;
- sLadder += nlad;
- TEveElementList* relLadder = new TEveElementList(sLadder.Data());
- relLadder->SetMainColor(Color_t(kBlue));
- gEve->AddElement(relLadder, l);
+ for (nlad=0; nlad<14; nlad++)
+ {
+ TEveElementList* relLadder = new TEveElementList(bsLadder + nlad);
+ relLadder->SetMainColor(kBlue);
+ l->AddElement(relLadder);
for (nMod=0; nMod<6; ++nMod, ++i)
{
its_make_module(i, relLadder, di, si, check_empty, scaled_modules);
}
}
- } else {
+ }
+ else
+ {
i += 14*6;
}
- if (mode & 8) {
+ if (mode & 8)
+ {
TEveElementList* l = new TEveElementList("SDD3");
l->SetTitle("SDDs' second layer");
- l->SetMainColor(Color_t(kBlue));
+ l->SetMainColor(kBlue);
gEve->AddElement(l);
- for (nlad=0; nlad<22; nlad++) {
- sLadder = bsLadder;
- sLadder += nlad;
- TEveElementList* relLadder = new TEveElementList(sLadder.Data());
- relLadder->SetMainColor(Color_t(kBlue));
- gEve->AddElement(relLadder, l);
+
+ for (nlad=0; nlad<22; nlad++)
+ {
+ TEveElementList* relLadder = new TEveElementList(bsLadder + nlad);
+ relLadder->SetMainColor(kBlue);
+ l->AddElement(relLadder);
for (nMod=0; nMod<8; ++nMod, ++i)
{
its_make_module(i, relLadder, di, si, check_empty, scaled_modules);
}
}
- } else {
+ }
+ else
+ {
i += 22*8;
}
- if (mode & 16) {
+ if (mode & 16)
+ {
TEveElementList* l = new TEveElementList("SSD4");
l->SetTitle("SSDs' first layer");
- l->SetMainColor(Color_t(kGreen));
+ l->SetMainColor(kGreen);
gEve->AddElement(l);
- for (nlad=0; nlad<34; nlad++) {
- sLadder = bsLadder;
- sLadder += nlad;
- TEveElementList* relLadder = new TEveElementList(sLadder.Data());
- relLadder->SetMainColor(Color_t(kGreen));
- gEve->AddElement(relLadder, l);
+
+ for (nlad=0; nlad<34; nlad++)
+ {
+ TEveElementList* relLadder = new TEveElementList(bsLadder + nlad);
+ relLadder->SetMainColor(kGreen);
+ l->AddElement(relLadder);
for (nMod=0; nMod<22; ++nMod, ++i)
{
its_make_module(i, relLadder, di, si, check_empty, scaled_modules);
}
}
- } else {
+ }
+ else
+ {
i += 34*22;
}
- if (mode & 32) {
+ if (mode & 32)
+ {
TEveElementList* l = new TEveElementList("SSD5");
l->SetTitle("SSDs' second layer");
- l->SetMainColor(Color_t(kGreen));
+ l->SetMainColor(kGreen);
gEve->AddElement(l);
- for (nlad=0; nlad<38; nlad++) {
- sLadder = bsLadder;
- sLadder += nlad;
- TEveElementList* relLadder = new TEveElementList(sLadder.Data());
- relLadder->SetMainColor(Color_t(kGreen));
- gEve->AddElement(relLadder, l);
+
+ for (nlad=0; nlad<38; nlad++)
+ {
+ TEveElementList* relLadder = new TEveElementList(bsLadder + nlad);
+ relLadder->SetMainColor(kGreen);
+ l->AddElement(relLadder);
for (nMod=0; nMod<25; ++nMod, ++i)
{
its_make_module(i, relLadder, di, si, check_empty, scaled_modules);
}
}
- } else {
+ }
+ else
+ {
i += 38*25;
}