Bool_t AliEveITSModule::fgStaticInitDone = kFALSE;
-TEveFrameBox* AliEveITSModule::fgSPDFrameBox = 0;
-TEveFrameBox* AliEveITSModule::fgSDDFrameBox = 0;
-TEveFrameBox* AliEveITSModule::fgSSDFrameBox = 0;
+TEveFrameBox* AliEveITSModule::fgSPDFrameBox = 0;
+TEveFrameBox* AliEveITSModule::fgSPDFrameBoxDead = 0;
+TEveFrameBox* AliEveITSModule::fgSDDFrameBox = 0;
+TEveFrameBox* AliEveITSModule::fgSDDFrameBoxDead = 0;
+TEveFrameBox* AliEveITSModule::fgSSDFrameBox = 0;
+TEveFrameBox* AliEveITSModule::fgSSDFrameBoxDead = 0;
TEveRGBAPalette* AliEveITSModule::fgSPDPalette = 0;
TEveRGBAPalette* AliEveITSModule::fgSDDPalette = 0;
{
// Destructor.
- if(fInfo) fInfo->DecRefCount();
+ if (fInfo) fInfo->DecRefCount();
}
/******************************************************************************/
fgSPDFrameBox = new TEveFrameBox();
fgSPDFrameBox->SetAAQuadXZ(-dx, 0, -dz, 2*dx, 2*dz);
- fgSPDFrameBox->SetFrameColor(31);
+ fgSPDFrameBox->SetFrameColor(Color_t(31));
fgSPDFrameBox->SetFrameFill(kTRUE);
fgSPDFrameBox->IncRefCount();
fgSPDPalette = new TEveRGBAPalette(info->fSPDMinVal,info->fSPDMaxVal);
fgSPDPalette->IncRefCount();
+
+ fgSPDFrameBoxDead = new TEveFrameBox();
+ fgSPDFrameBoxDead->SetAAQuadXZ(-dx, 0, -dz, 2*dx, 2*dz);
+ fgSPDFrameBoxDead->SetFrameColor(kRed);
+ fgSPDFrameBoxDead->SetFrameFill(kTRUE);
+ fgSPDFrameBoxDead->IncRefCount();
}
{
fgSDDFrameBox = new TEveFrameBox();
fgSDDFrameBox->SetAAQuadXZ(-dx, 0, -dz, 2*dx, 2*dz);
- fgSDDFrameBox->SetFrameColor(32);
+ fgSDDFrameBox->SetFrameColor(Color_t(32));
fgSDDFrameBox->SetFrameFill(kTRUE);
fgSDDFrameBox->IncRefCount();
fgSDDPalette = new TEveRGBAPalette(info->fSDDMinVal,info->fSDDMaxVal);
fgSDDPalette->SetLimits(0, info->fSDDHighLim); // Set proper ADC range.
fgSDDPalette->IncRefCount();
+
+ fgSDDFrameBoxDead = new TEveFrameBox();
+ fgSDDFrameBoxDead->SetAAQuadXZ(-dx, 0, -dz, 2*dx, 2*dz);
+ fgSDDFrameBoxDead->SetFrameColor(kRed);
+ fgSDDFrameBoxDead->SetFrameFill(kTRUE);
+ fgSDDFrameBoxDead->IncRefCount();
}
{
fgSSDFrameBox = new TEveFrameBox();
fgSSDFrameBox->SetAAQuadXZ(-dx, 0, -dz, 2*dx, 2*dz);
- fgSSDFrameBox->SetFrameColor(33);
+ fgSSDFrameBox->SetFrameColor(Color_t(33));
fgSSDFrameBox->SetFrameFill(kTRUE);
fgSSDFrameBox->IncRefCount();
fgSSDPalette = new TEveRGBAPalette(info->fSSDMinVal,info->fSSDMaxVal);
fgSSDPalette->SetLimits(0, info->fSSDHighLim); // Set proper ADC range.
fgSSDPalette->IncRefCount();
+
+ fgSSDFrameBoxDead = new TEveFrameBox();
+ fgSSDFrameBoxDead->SetAAQuadXZ(-dx, 0, -dz, 2*dx, 2*dz);
+ fgSSDFrameBoxDead->SetFrameColor(kRed);
+ fgSSDFrameBoxDead->SetFrameFill(kTRUE);
+ fgSSDFrameBoxDead->IncRefCount();
}
}
fID = gid;
- if (!fgStaticInitDone) {
+ if (!fgStaticInitDone)
+ {
InitStatics(fInfo);
-
- fgSPDFrameBox->IncRefCount(this);
- fgSPDPalette->IncRefCount();
-
- fgSDDFrameBox->IncRefCount(this);
- fgSDDPalette->IncRefCount();
-
- fgSSDFrameBox->IncRefCount(this);
- fgSSDPalette->IncRefCount();
}
AliITSgeomTGeo::GetModuleId(fID, fLayer, fLadder, fDet);
{
// SPD
- SetFrame(fgSPDFrameBox);
+ fDetID = 0;
+
+ SetFrame(fInfo->IsDead(fID, fDetID) ? fgSPDFrameBoxDead : fgSPDFrameBox);
SetPalette(fgSPDPalette);
symname += strLadder;
rest -= 4*nstave;
symname += rest;
SetName(symname);
- fDetID = 0;
fDx = fInfo->fSegSPD->Dx()*0.00005;
fDz = 3.50;
fDy = fInfo->fSegSPD->Dy()*0.00005;
-
}
else if (fID <= (AliITSgeomTGeo::GetModuleIndex(5,1,1) - 1))
{
// SDD
- SetFrame(fgSDDFrameBox);
+ fDetID = 1;
+
+ SetFrame(fInfo->IsDead(fID, fDetID) ? fgSDDFrameBoxDead : fgSDDFrameBox);
SetPalette(fgSDDPalette);
symname += strSensor;
}
symname += rest;
SetName(symname);
- fDetID = 1;
fDx = fInfo->fSegSDD->Dx()*0.0001;
fDz = fInfo->fSegSDD->Dz()*0.00005;
fDy = fInfo->fSegSDD->Dy()*0.00005;
-
}
else
{
// SSD
- SetFrame(fgSSDFrameBox);
+ fDetID = 2;
+
+ SetFrame(fInfo->IsDead(fID, fDetID) ? fgSSDFrameBoxDead : fgSSDFrameBox);
SetPalette(fgSSDPalette);
symname += strSensor;
}
symname += rest;
SetName(symname);
- fDetID = 2;
fInfo->fSegSSD->SetLayer(fLayer);
fDx = fInfo->fSegSSD->Dx()*0.00005;
fDz = fInfo->fSegSSD->Dz()*0.00005;
fDy = fInfo->fSegSSD->Dy()*0.00005;
-
}
LoadQuads();
+ RefitPlex();
ComputeBBox();
InitMainTrans();
if (trans)
SetTrans();
+
}
void AliEveITSModule::LoadQuads()
// visualization - called quads.
TClonesArray *digits = fInfo->GetDigits(fID, fDetID);
- if (!digits) return;
-
Int_t ndigits = digits ? digits->GetEntriesFast() : 0;
Float_t x, z, dpx, dpz;
switch(fDetID)
{
-
- case 0: { // SPD
+ case 0:
+ {
AliITSsegmentationSPD* seg = fInfo->fSegSPD;
Reset(kQT_RectangleXZFixedY, kFALSE, 32);
break;
}
- case 1: { // SDD
+ case 1:
+ {
AliITSsegmentationSDD *seg = fInfo->fSegSDD;
Reset(kQT_RectangleXZFixedY, kFALSE, 32);
{
AliITSdigit* d = (AliITSdigit*) digits->UncheckedAt(k);
- // if (d->GetSignal() > fgSDDThreshold)
- {
- j = d->GetCoord1();
- i = d->GetCoord2();
- seg->DetToLocal(i, j, x, z);
- dpx = seg->Dpx(i)*0.0001;
- dpz = seg->Dpz(j)*0.0001;
-
- AddQuad(x-2*dpx, z - dpz*0.5, 4*dpx, dpz);
- QuadValue(d->GetSignal());
- QuadId(d);
- }
+ j = d->GetCoord1();
+ i = d->GetCoord2();
+ seg->DetToLocal(i, j, x, z);
+ dpx = seg->Dpx(i)*0.0001;
+ dpz = seg->Dpz(j)*0.0001;
+
+ AddQuad(x-2*dpx, z - dpz*0.5, 4*dpx, dpz);
+ QuadValue(d->GetSignal());
+ QuadId(d);
}
break;
}
- case 2: { // SSD
+ case 2:
+ {
AliITSsegmentationSSD* seg = fInfo->fSegSSD;
Reset(kQT_LineXZFixedY, kFALSE, 32);
for (Int_t k=0; k<ndigits; ++k)
{
AliITSdigit *d = (AliITSdigit*) digits->UncheckedAt(k);
- // if(d->GetSignal() > fgSSDThreshold)
- {
- j = d->GetCoord1();
- i = d->GetCoord2();
- seg->DetToLocal(i,j,x,z);
-
- Float_t a = ( d->GetCoord1() == 1) ? ap : an;
-
- AddLine(x-a, -fDz, 2*a, 2*fDz);
- QuadValue(d->GetSignal());
- QuadId(d);
- // printf("%3d -> %3d -> %8x\n", d->GetSignal(), ci, fQuads.back().color);
- }
+
+ j = d->GetCoord1();
+ i = d->GetCoord2();
+ // !!!! The following function complains about not being verified.
+ // !!!! Experts should check.
+ seg->DetToLocal(i,j,x,z);
+
+ Float_t a = (d->GetCoord1() == 1) ? ap : an;
+
+ AddLine(x-a, -fDz, 2*a, 2*fDz);
+ QuadValue(d->GetSignal());
+ QuadId(d);
+ // printf("%3d -> %3d -> %8x\n", d->GetSignal(), ci, fQuads.back().color);
}
break;
}
} // end switch
-
- RefitPlex();
}
/******************************************************************************/
// Override secondary select (alt-click) from TEveQuadSet.
DigitBase_t *qb = GetDigit(idx);
- TObject *obj = qb->fId.GetObject();
+ TObject *obj = GetId(idx);
AliITSdigit *d = dynamic_cast<AliITSdigit*>(obj);
printf("AliEveITSModule::QuadSelected "); Print();
printf(" idx=%d, value=%d, obj=0x%lx, digit=0x%lx\n",