From 105fb267d6c45f396a59053b869469488c825d7a Mon Sep 17 00:00:00 2001 From: mtadel Date: Thu, 17 Dec 2009 11:23:36 +0000 Subject: [PATCH] Add dead module handling for SDD and SSD. --- EVE/EveDet/AliEveITSDigitsInfo.cxx | 43 +++++++++++++++++++++++++++++- EVE/EveDet/AliEveITSDigitsInfo.h | 2 ++ EVE/EveDet/AliEveITSModule.cxx | 24 +++++++++++++---- EVE/EveDet/AliEveITSModule.h | 10 ++++--- EVE/alice-macros/its_common_foos.C | 3 --- 5 files changed, 69 insertions(+), 13 deletions(-) diff --git a/EVE/EveDet/AliEveITSDigitsInfo.cxx b/EVE/EveDet/AliEveITSDigitsInfo.cxx index 26b525c244f..bc3341511e6 100644 --- a/EVE/EveDet/AliEveITSDigitsInfo.cxx +++ b/EVE/EveDet/AliEveITSDigitsInfo.cxx @@ -18,8 +18,9 @@ #include #include -#include #include +#include +#include #include #include @@ -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; } diff --git a/EVE/EveDet/AliEveITSDigitsInfo.h b/EVE/EveDet/AliEveITSDigitsInfo.h index 8a27ca23a2b..4ff87236e09 100644 --- a/EVE/EveDet/AliEveITSDigitsInfo.h +++ b/EVE/EveDet/AliEveITSDigitsInfo.h @@ -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(); diff --git a/EVE/EveDet/AliEveITSModule.cxx b/EVE/EveDet/AliEveITSModule.cxx index 3cab233831d..e2b897b46e6 100644 --- a/EVE/EveDet/AliEveITSModule.cxx +++ b/EVE/EveDet/AliEveITSModule.cxx @@ -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; diff --git a/EVE/EveDet/AliEveITSModule.h b/EVE/EveDet/AliEveITSModule.h index 68252073a59..e8005f98201 100644 --- a/EVE/EveDet/AliEveITSModule.h +++ b/EVE/EveDet/AliEveITSModule.h @@ -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. diff --git a/EVE/alice-macros/its_common_foos.C b/EVE/alice-macros/its_common_foos.C index 0f953a3a9d0..36e03b93d55 100644 --- a/EVE/alice-macros/its_common_foos.C +++ b/EVE/alice-macros/its_common_foos.C @@ -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 -- 2.31.1