Add dead module handling for SDD and SSD.
authormtadel <mtadel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 17 Dec 2009 11:23:36 +0000 (11:23 +0000)
committermtadel <mtadel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 17 Dec 2009 11:23:36 +0000 (11:23 +0000)
EVE/EveDet/AliEveITSDigitsInfo.cxx
EVE/EveDet/AliEveITSDigitsInfo.h
EVE/EveDet/AliEveITSModule.cxx
EVE/EveDet/AliEveITSModule.h
EVE/alice-macros/its_common_foos.C

index 26b525c244fcdfb95544edac34b481b296bb685f..bc3341511e65386bad1d08044293cda9b4d1e0c2 100644 (file)
@@ -18,8 +18,9 @@
 #include <AliITSsegmentationSSD.h>
 #include <AliITSDDLModuleMapSDD.h>
 
-#include <AliITSCalibrationSDD.h>
 #include <AliITSCalibrationSPD.h>
+#include <AliITSCalibrationSDD.h>
+#include <AliITSCalibrationSSD.h>
 #include <AliITSdigit.h>
 #include <AliITSdigitSPD.h>
 
@@ -76,6 +77,8 @@ ClassImp(AliEveITSDigitsInfo)
 
 AliITSDDLModuleMapSDD *AliEveITSDigitsInfo::fgDDLMapSDD  = 0;
 TObjArray             *AliEveITSDigitsInfo::fgDeadModSPD = 0;
+TObjArray             *AliEveITSDigitsInfo::fgDeadModSDD = 0;
+TObjArray             *AliEveITSDigitsInfo::fgDeadModSSD = 0;
 
 /******************************************************************************/
 
@@ -199,6 +202,40 @@ void AliEveITSDigitsInfo::InitInternals()
       fgDeadModSPD->SetOwner(kTRUE);
     }
   }
+
+  if (fgDeadModSDD == 0)
+  {
+    AliCDBManager *cdb = AliCDBManager::Instance();
+
+    AliCDBEntry *deadSDD = cdb->Get("ITS/Calib/SDDDead");
+
+    if (!deadSDD)
+    {
+      AliWarning("SDD Calibration object retrieval failed!");
+    }
+    else
+    {
+      fgDeadModSDD = (TObjArray*)deadSDD->GetObject();
+      fgDeadModSDD->SetOwner(kTRUE);
+    }
+  }
+
+  if (fgDeadModSSD == 0)
+  {
+    AliCDBManager *cdb = AliCDBManager::Instance();
+
+    AliCDBEntry *deadSSD = cdb->Get("ITS/Calib/SSDDead");
+
+    if (!deadSSD)
+    {
+      AliWarning("SSD Calibration object retrieval failed!");
+    }
+    else
+    {
+      fgDeadModSSD = (TObjArray*)deadSSD->GetObject();
+      fgDeadModSSD->SetOwner(kTRUE);
+    }
+  }
 }
 
 /******************************************************************************/
@@ -501,6 +538,10 @@ Bool_t AliEveITSDigitsInfo::IsDead (Int_t module, Int_t det_id) const
 
   if (det_id == 0 && fgDeadModSPD)
     return ((AliITSCalibrationSPD*) fgDeadModSPD->At(module))->IsBad();
+  if (det_id == 1 && fgDeadModSDD)
+    return ((AliITSCalibrationSDD*) fgDeadModSDD->At(module))->IsBad();
+  if (det_id == 2 && fgDeadModSSD)
+    return ((AliITSCalibrationSSD*) fgDeadModSSD->At(module))->IsBad();
   return kFALSE;
 }
 
index 8a27ca23a2b9e23886a7c5efdac1862d170bfe26..4ff87236e099425b0483e62d20e511ff846399cd 100644 (file)
@@ -97,6 +97,8 @@ public:
   static AliITSDDLModuleMapSDD *fgDDLMapSDD;  // Mapping DDL/module to SDD-module number.
 
   static TObjArray             *fgDeadModSPD; // Dead modules of SPD.
+  static TObjArray             *fgDeadModSDD; // Dead modules of SDD.
+  static TObjArray             *fgDeadModSSD; // Dead modules of SSD.
 
   AliEveITSDigitsInfo();
   virtual ~AliEveITSDigitsInfo();
index 3cab233831dc0bae350a6821c9efb3ba197d34fb..e2b897b46e693a260555dff208372bea8a99dd29 100644 (file)
@@ -31,10 +31,12 @@ ClassImp(AliEveITSModule)
 
 Bool_t AliEveITSModule::fgStaticInitDone = kFALSE;
 
-TEveFrameBox*    AliEveITSModule::fgSPDFrameBox = 0;
+TEveFrameBox*    AliEveITSModule::fgSPDFrameBox     = 0;
 TEveFrameBox*    AliEveITSModule::fgSPDFrameBoxDead = 0;
-TEveFrameBox*    AliEveITSModule::fgSDDFrameBox = 0;
-TEveFrameBox*    AliEveITSModule::fgSSDFrameBox = 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;
@@ -115,6 +117,12 @@ void AliEveITSModule::InitStatics(AliEveITSDigitsInfo* info)
     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();
   }
 
   {
@@ -129,6 +137,12 @@ void AliEveITSModule::InitStatics(AliEveITSDigitsInfo* info)
     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();
   }
 
 }
@@ -214,7 +228,7 @@ void AliEveITSModule::SetID(Int_t gid, Bool_t trans)
 
     fDetID = 1;
 
-    SetFrame(fgSDDFrameBox);
+    SetFrame(fInfo->IsDead(fID, fDetID) ? fgSDDFrameBoxDead : fgSDDFrameBox);
     SetPalette(fgSDDPalette);
 
     symname += strSensor;
@@ -242,7 +256,7 @@ void AliEveITSModule::SetID(Int_t gid, Bool_t trans)
 
     fDetID = 2;
 
-    SetFrame(fgSSDFrameBox);
+    SetFrame(fInfo->IsDead(fID, fDetID) ? fgSSDFrameBoxDead : fgSSDFrameBox);
     SetPalette(fgSSDPalette);
 
     symname += strSensor;
index 68252073a59d9417d15d6abedfd004d33d54e6f5..e8005f98201bf41b3c069bed7e39f81d032ec840 100644 (file)
@@ -38,10 +38,12 @@ public:
 
   virtual void Print(Option_t* opt="") const;
 
-  static TEveFrameBox    *fgSPDFrameBox; // Module frame for SPD.
-  static TEveFrameBox    *fgSPDFrameBoxDead; // Module frame for SPD.
-  static TEveFrameBox    *fgSDDFrameBox; // Module frame for SDD.
-  static TEveFrameBox    *fgSSDFrameBox; // Module frame for SSD.
+  static TEveFrameBox    *fgSPDFrameBox;     // Module frame for SPD.
+  static TEveFrameBox    *fgSPDFrameBoxDead; // Dead-module frame for SPD.
+  static TEveFrameBox    *fgSDDFrameBox;     // Module frame for SDD.
+  static TEveFrameBox    *fgSDDFrameBoxDead; // Dead-module frame for SPD.
+  static TEveFrameBox    *fgSSDFrameBox;     // Module frame for SSD.
+  static TEveFrameBox    *fgSSDFrameBoxDead; // Dead-module frame for SPD.
 
   static TEveRGBAPalette *fgSPDPalette;  // Signal to color mapping for SPD.
   static TEveRGBAPalette *fgSDDPalette;  // Signal to color mapping for SDD.
index 0f953a3a9d0b0cb93407c899557241610ef2ed56..36e03b93d556263ebdefb9a1da789fc284ee7f15 100644 (file)
@@ -22,11 +22,8 @@ AliEveITSModule* its_make_module(Int_t i, TEveElement* parent,
   if (i > 239 && i < 500) det_id = 1;
   else if (i >= 500)      det_id = 2;
 
-  printf("Mod %d, %d %d\n", i, di->HasData(i, det_id), di->IsDead(i, det_id));
-
   if (!check_empty || di->HasData(i, det_id) || di->IsDead(i, det_id))
   {
-    printf("Creating module: %d\n", i);
     if (scaled_modules)
       m = new AliEveITSScaledModule(i, di, si);
     else