Introduced the checking of QA results from previous step before entering the event...
authorschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 14 Oct 2007 21:08:10 +0000 (21:08 +0000)
committerschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 14 Oct 2007 21:08:10 +0000 (21:08 +0000)
PHOS/AliPHOSDigitizer.cxx
PHOS/AliPHOSSDigitizer.cxx
STEER/AliQA.cxx
STEER/AliReconstruction.cxx
STEER/AliReconstruction.h

index af82d50..944d1db 100644 (file)
@@ -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()) ;
 
index a2575c9..9f9d44a 100644 (file)
@@ -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
index a4c5de4..6ea84d8 100644 (file)
@@ -1,3 +1,4 @@
+
 /**************************************************************************
  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  *                                                                        *
index 7249cd8..7822568 100644 (file)
@@ -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 ; 
 }
 
 //_____________________________________________________________________________
index d65d9e7..46c6549 100644 (file)
@@ -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