From f9ae77c6103a5efc709c3af821d029812c9f7cf7 Mon Sep 17 00:00:00 2001 From: cholm Date: Mon, 27 Jun 2011 14:12:40 +0000 Subject: [PATCH] Strips with R/O errors are marked as invalid. Eta always set to correct value --- FMD/AliFMDReconstructor.cxx | 21 +++++++++++++++++---- FMD/AliFMDReconstructor.h | 2 ++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/FMD/AliFMDReconstructor.cxx b/FMD/AliFMDReconstructor.cxx index 03f378f2ddf..c6bac941397 100644 --- a/FMD/AliFMDReconstructor.cxx +++ b/FMD/AliFMDReconstructor.cxx @@ -291,13 +291,18 @@ AliFMDReconstructor::MarkDeadChannels(AliESDFMD* esd) const for (UShort_t s = 0; s < nS; s++) { for (UShort_t t = 0; t < nT; t++) { + if (fBad(d, r, s, t)) { + AliDebug(5, Form("Marking FMD%d%c[%2d,%3d] as bad", d, r, s, t)); + esd->SetMultiplicity(d, r, s, t, AliESDFMD::kInvalidMult); + } if (param->IsDead(d, r, s, t)) { AliDebug(5, Form("Marking FMD%d%c[%2d,%3d] as dead", d, r, s, t)); esd->SetMultiplicity(d, r, s, t, AliESDFMD::kInvalidMult); - esd->SetEta(d, r, s, t, AliESDFMD::kInvalidEta); + // esd->SetEta(d, r, s, t, AliESDFMD::kInvalidEta); } else if (esd->Multiplicity(d, r, s, t) == AliESDFMD::kInvalidMult) { - AliDebug(10, Form("Setting null signal in FMD%d%c[%2d,%3d]", d, r, s, t)); + AliDebug(10, Form("Setting null signal in FMD%d%c[%2d,%3d]", + d, r, s, t)); esd->SetMultiplicity(d, r, s, t, 0); } } @@ -318,7 +323,7 @@ AliFMDReconstructor::Reconstruct(AliRawReader* reader, TTree*) const // ctree Not used - 'cluster tree' to store rec-points in. AliFMDDebug(1, ("Reconstructing from raw reader")); AliFMDRawReader rawReader(reader, 0); - + fBad.Reset(false); UShort_t det, sec, str, fac; Short_t adc, oldDet = -1; Bool_t zs; @@ -434,6 +439,7 @@ AliFMDReconstructor::ProcessDigits(TClonesArray* digits) const AliFMDDebug(2, ("Got %d digits", nDigits)); fESDObj->SetNoiseFactor(fNoiseFactor); fESDObj->SetAngleCorrected(fAngleCorrect); + fBad.Reset(false); for (Int_t i = 0; i < nDigits; i++) { AliFMDDigit* digit = static_cast(digits->At(i)); if (!digit) continue; @@ -477,10 +483,17 @@ AliFMDReconstructor::ProcessSignal(UShort_t det, // rng Strip ID // adc ADC counts // - AliFMDParameters* param = AliFMDParameters::Instance(); + if (adc >= AliFMDRawReader::kBadSignal) { + AliFMDDebug(1, ("FMD%d%c[%2d,%3d] is marked bad", det, rng, sec, str)); + fBad(det,rng,sec,str) = true; + return; + } + // Check that the strip is not marked as dead + AliFMDParameters* param = AliFMDParameters::Instance(); if (param->IsDead(det, rng, sec, str)) { AliFMDDebug(1, ("FMD%d%c[%2d,%3d] is dead", det, rng, sec, str)); + fBad(det,rng,sec,str) = true; return; } diff --git a/FMD/AliFMDReconstructor.h b/FMD/AliFMDReconstructor.h index 374a245c9ca..90bfea431c3 100644 --- a/FMD/AliFMDReconstructor.h +++ b/FMD/AliFMDReconstructor.h @@ -25,6 +25,7 @@ # include #endif #include "AliLog.h" +#include //____________________________________________________________________ class TTree; @@ -416,6 +417,7 @@ protected: TH1* fDiagAll; // Diagnostics histogram mutable Bool_t fZS[3]; // Zero-suppredded? mutable UShort_t fZSFactor[3]; // Noise factor for Zero-suppression + mutable AliFMDBoolMap fBad; // Strip marked bad private: ClassDef(AliFMDReconstructor, 3) // class for the FMD reconstruction -- 2.43.0