]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVE/EveDet/AliEveITSModule.cxx
CMake: removing qpythia from the depedencies
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveITSModule.cxx
index 1bd610158847812845bc7495de992a92ab34c08a..194cce894018ca1297601e8d728ae3c9a7f50712 100644 (file)
@@ -31,9 +31,12 @@ ClassImp(AliEveITSModule)
 
 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;
@@ -68,7 +71,7 @@ AliEveITSModule::~AliEveITSModule()
 {
   // Destructor.
 
-  if(fInfo) fInfo->DecRefCount();
+  if (fInfo) fInfo->DecRefCount();
 }
 
 /******************************************************************************/
@@ -89,11 +92,17 @@ void AliEveITSModule::InitStatics(AliEveITSDigitsInfo* info)
 
     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();
   }
 
   {
@@ -102,12 +111,18 @@ void AliEveITSModule::InitStatics(AliEveITSDigitsInfo* info)
 
     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();
   }
 
   {
@@ -116,12 +131,18 @@ void AliEveITSModule::InitStatics(AliEveITSDigitsInfo* info)
 
     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();
   }
 
 }
@@ -159,17 +180,9 @@ void AliEveITSModule::SetID(Int_t gid, Bool_t trans)
 
   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);
@@ -182,7 +195,9 @@ void AliEveITSModule::SetID(Int_t gid, Bool_t trans)
   {
     // SPD
 
-    SetFrame(fgSPDFrameBox);
+    fDetID = 0;
+
+    SetFrame(fInfo->IsDead(fID, fDetID) ? fgSPDFrameBoxDead : fgSPDFrameBox);
     SetPalette(fgSPDPalette);
 
     symname += strLadder;
@@ -203,17 +218,17 @@ void AliEveITSModule::SetID(Int_t gid, Bool_t trans)
     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;
@@ -231,17 +246,17 @@ void AliEveITSModule::SetID(Int_t gid, Bool_t trans)
     }
     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;
@@ -259,19 +274,19 @@ void AliEveITSModule::SetID(Int_t gid, Bool_t trans)
     }
     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()
@@ -280,8 +295,6 @@ 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;
@@ -289,8 +302,8 @@ void AliEveITSModule::LoadQuads()
 
   switch(fDetID)
   {
-
-    case 0: { // SPD
+    case 0:
+    {
       AliITSsegmentationSPD* seg =  fInfo->fSegSPD;
 
       Reset(kQT_RectangleXZFixedY, kFALSE, 32);
@@ -313,7 +326,8 @@ void AliEveITSModule::LoadQuads()
       break;
     }
 
-    case 1: { // SDD
+    case 1:
+    {
       AliITSsegmentationSDD *seg =  fInfo->fSegSDD;
 
       Reset(kQT_RectangleXZFixedY, kFALSE, 32);
@@ -322,23 +336,21 @@ void AliEveITSModule::LoadQuads()
       {
        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);
@@ -351,26 +363,24 @@ void AliEveITSModule::LoadQuads()
       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();
 }
 
 /******************************************************************************/
@@ -390,7 +400,7 @@ void AliEveITSModule::DigitSelected(Int_t idx)
   // 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",