From: schutz Date: Sun, 14 Oct 2007 21:08:10 +0000 (+0000) Subject: Introduced the checking of QA results from previous step before entering the event... X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=commitdiff_plain;h=8661738e6ccd58aecb87fdc00e1c1ec45058aa10 Introduced the checking of QA results from previous step before entering the event loop --- diff --git a/PHOS/AliPHOSDigitizer.cxx b/PHOS/AliPHOSDigitizer.cxx index af82d504d6b..944d1dbe8c3 100644 --- a/PHOS/AliPHOSDigitizer.cxx +++ b/PHOS/AliPHOSDigitizer.cxx @@ -18,6 +18,9 @@ /* History of cvs commits: * * $Log$ + * Revision 1.100 2007/10/10 09:05:10 schutz + * Changing name QualAss to QA + * * Revision 1.99 2007/09/30 17:08:20 schutz * Introducing the notion of QA data acquisition cycle (needed by online) * @@ -622,8 +625,20 @@ void AliPHOSDigitizer::Exec(Option_t *option) return ; } - if(strstr(option,"tim")) - gBenchmark->Start("PHOSDigitizer"); + // check the QA result for Hits and SDigits + AliQA * qa = AliQA::Instance(AliQA::kPHOS) ; + if ( qa->IsSet(AliQA::kPHOS, AliQA::kSIM, AliQA::kFATAL)) { + AliFatal("QA status in Hits and/or SDIGITS was Fatal") ; + } else if ( qa->IsSet(AliQA::kPHOS, AliQA::kSIM, AliQA::kERROR)) { + AliError("QA status in Hits and/or SDIGITS was Error") ; + } else if ( qa->IsSet(AliQA::kPHOS, AliQA::kSIM, AliQA::kWARNING) ) { + AliWarning("QA status in Hits and/or SDIGITS was Warning") ; + } else if ( qa->IsSet(AliQA::kPHOS, AliQA::kSIM, AliQA::kINFO) ) { + AliInfo("QA status in Hits and/or SDIGITS was Info") ; + } + + if(strstr(option,"tim")) + gBenchmark->Start("PHOSDigitizer"); AliPHOSGetter * gime = AliPHOSGetter::Instance(GetTitle()) ; diff --git a/PHOS/AliPHOSSDigitizer.cxx b/PHOS/AliPHOSSDigitizer.cxx index a2575c99d0e..9f9d44a229e 100644 --- a/PHOS/AliPHOSSDigitizer.cxx +++ b/PHOS/AliPHOSSDigitizer.cxx @@ -18,6 +18,9 @@ /* History of cvs commits: * * $Log$ + * Revision 1.54 2007/10/10 09:05:10 schutz + * Changing name QualAss to QA + * * Revision 1.53 2007/09/30 17:08:20 schutz * Introducing the notion of QA data acquisition cycle (needed by online) * @@ -238,6 +241,18 @@ void AliPHOSSDigitizer::Exec(Option_t *option) if(strstr(option,"tim")) gBenchmark->Start("PHOSSDigitizer"); + // check the QA result for RAWS + AliQA * qa = AliQA::Instance(AliQA::kPHOS) ; + if ( qa->IsSet(AliQA::kPHOS, AliQA::kRAW, AliQA::kFATAL)) { + AliFatal("QA status in RAW was Fatal") ; + } else if ( qa->IsSet(AliQA::kPHOS, AliQA::kRAW, AliQA::kERROR)) { + AliError("QA status in RAW was Error") ; + } else if ( qa->IsSet(AliQA::kPHOS, AliQA::kRAW, AliQA::kWARNING) ) { + AliWarning("QA status in RAW was Warning") ; + } else if ( qa->IsSet(AliQA::kPHOS, AliQA::kRAW, AliQA::kINFO) ) { + AliInfo("QA status in RAW was Info") ; + } + AliPHOSGetter * gime = AliPHOSGetter::Instance() ; //switch off reloading of this task while getting event diff --git a/STEER/AliQA.cxx b/STEER/AliQA.cxx index a4c5de4f92a..6ea84d8b68e 100644 --- a/STEER/AliQA.cxx +++ b/STEER/AliQA.cxx @@ -1,3 +1,4 @@ + /************************************************************************** * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * * diff --git a/STEER/AliReconstruction.cxx b/STEER/AliReconstruction.cxx index 7249cd8622e..7822568b967 100644 --- a/STEER/AliReconstruction.cxx +++ b/STEER/AliReconstruction.cxx @@ -691,6 +691,10 @@ Bool_t AliReconstruction::Run(const char* input) ProcInfo_t ProcInfo; gSystem->GetProcInfo(&ProcInfo); AliInfo(Form("Current memory usage %d %d", ProcInfo.fMemResident, ProcInfo.fMemVirtual)); + + // checking the QA of previous steps + CheckQA() ; + for (Int_t iEvent = 0; iEvent < fRunLoader->GetNumberOfEvents(); iEvent++) { if (fRawReader) fRawReader->NextEvent(); if ((iEvent < fFirstEvent) || ((fLastEvent >= 0) && (iEvent > fLastEvent))) { @@ -2767,7 +2771,39 @@ Bool_t AliReconstruction::RunQA(const char* detectors, AliESDEvent *& esd) return kTRUE; +} + +//_____________________________________________________________________________ +void AliReconstruction::CheckQA() +{ +// check the QA of SIM for this run and remove the detectors +// with status Fatal + + TString newDetList ; + for (Int_t iDet = 0; iDet < AliQA::kNDET; iDet++) { + TString detName(AliQA::GetDetName(iDet)) ; + if ( fRunLocalReconstruction.Contains(AliQA::GetDetName(iDet)) || + fRunLocalReconstruction.Contains("ALL") ) { + AliQA * qa = AliQA::Instance(AliQA::DETECTORINDEX(iDet)) ; + if ( qa->IsSet(AliQA::DETECTORINDEX(iDet), AliQA::kSIM, AliQA::kFATAL)) { + AliInfo(Form("QA status for %s in Hits and/or SDIGITS and/or Digits was Fatal; No reconstruction performed", detName.Data())) ; + } else if ( qa->IsSet(AliQA::DETECTORINDEX(iDet), AliQA::kSIM, AliQA::kERROR)) { + AliError(Form("QA status for %s in Hits and/or SDIGITS and/or Digits was ERROR", detName.Data())) ; + newDetList += detName ; + newDetList += " " ; + } else if ( qa->IsSet(AliQA::DETECTORINDEX(iDet), AliQA::kSIM, AliQA::kWARNING) ) { + AliWarning(Form("QA status for %s in Hits and/or SDIGITS and/or Digits was WARNING", detName.Data())) ; + newDetList += detName ; + newDetList += " " ; + } else if ( qa->IsSet(AliQA::DETECTORINDEX(iDet), AliQA::kSIM, AliQA::kINFO) ) { + AliInfo(Form("QA status for %s in Hits and/or SDIGITS and/or Digits was INFO", detName.Data())) ; + newDetList += detName ; + newDetList += " " ; + } + } + } + fRunLocalReconstruction = newDetList ; } //_____________________________________________________________________________ diff --git a/STEER/AliReconstruction.h b/STEER/AliReconstruction.h index d65d9e74b60..46c65498e7a 100644 --- a/STEER/AliReconstruction.h +++ b/STEER/AliReconstruction.h @@ -144,6 +144,7 @@ private: Int_t GetDetIndex(const char * detector); AliQADataMaker* GetQADataMaker(Int_t iDet); const Int_t GetQACycles(const char * detector) { return fQACycles[GetDetIndex(detector)] ; } + void CheckQA() ; //*** Global reconstruction flags ******************* Bool_t fUniformField; // uniform field tracking flag