]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
correct handling of status word (unset before set) and conversion form int to EventSp...
authorschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 4 Nov 2009 14:28:34 +0000 (14:28 +0000)
committerschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 4 Nov 2009 14:28:34 +0000 (14:28 +0000)
STEER/AliQACheckerBase.cxx
STEER/AliQAv1.cxx
STEER/AliQAv1.h

index 9237bbb84c6169c4ed81d1c3798a887639c8e7e0..94bdc55012e4f452a63c187fa6ede4ebf517426a 100644 (file)
@@ -395,13 +395,13 @@ void AliQACheckerBase::SetQA(AliQAv1::ALITASK_t index, Double_t * value) const
       qa->Set(AliQAv1::kFATAL, specie) ; 
     } else {
       if ( value[specie] >= fLowTestValue[AliQAv1::kFATAL] && value[specie] < fUpTestValue[AliQAv1::kFATAL] ) 
-        qa->Set(AliQAv1::kFATAL, specie) ; 
+        qa->Set(AliQAv1::kFATAL, AliRecoParam::ConvertIndex(specie)) ; 
       else if ( value[specie] > fLowTestValue[AliQAv1::kERROR] && value[specie] <= fUpTestValue[AliQAv1::kERROR]  )
-        qa->Set(AliQAv1::kERROR, specie) ; 
+        qa->Set(AliQAv1::kERROR, AliRecoParam::ConvertIndex(specie)) ; 
       else if ( value[specie] > fLowTestValue[AliQAv1::kWARNING] && value[specie] <= fUpTestValue[AliQAv1::kWARNING]  )
-        qa->Set(AliQAv1::kWARNING, specie) ;
+        qa->Set(AliQAv1::kWARNING, AliRecoParam::ConvertIndex(specie)) ;
       else if ( value[specie] > fLowTestValue[AliQAv1::kINFO] && value[specie] <= fUpTestValue[AliQAv1::kINFO] ) 
-        qa->Set(AliQAv1::kINFO, specie) ;      
+        qa->Set(AliQAv1::kINFO, AliRecoParam::ConvertIndex(specie)) ;  
     }
   }
 }
index 887aac30dc0c0bb6a8627d820d9d7fbf7faf914d..c94b7ea34699762a2a42535d5b81e359a2442971 100644 (file)
@@ -725,6 +725,23 @@ ULong_t AliQAv1::Offset(ALITASK_t tsk) const
   return offset ;
 }
 
+//_______________________________________________________________
+void AliQAv1::Reset(DETECTORINDEX_t det, ALITASK_t tsk, AliRecoParam::EventSpecie_t es)
+{
+    // resets all the bits for a given tsk and event specie
+  CheckRange(det) ; 
+  CheckRange(tsk) ;
+  CheckRange(es) ;
+       
+  ULong_t offset = Offset(tsk) ;
+  ULong_t status = GetStatus(det, es) ;
+       for ( Int_t bit = 0 ; bit < kNBIT ; bit++) {
+               offset+= bit ;
+               status = status & ~1 << offset ;                
+       }  
+  SetStatus(det, es, status) ;
+}
+
 //_______________________________________________________________
 void AliQAv1::ResetStatus(DETECTORINDEX_t det) 
 { 
@@ -791,7 +808,9 @@ void AliQAv1::SetStatusBit(DETECTORINDEX_t det, ALITASK_t tsk, AliRecoParam::Eve
   CheckRange(tsk) ;
   CheckRange(bit) ;
   CheckRange(es) ;
-
+  
+  Reset(det, tsk, es) ; 
+  
   ULong_t offset = Offset(tsk) ;
   ULong_t status = GetStatus(det, es) ;
   offset+= bit ;
index df101522751fa69dbd5eb5d10d22c328b0b67411..ea524ba4be8ea1c050860e8e2032d11b46b58814 100644 (file)
@@ -115,14 +115,16 @@ private:
   Bool_t                CheckRange(QABIT_t bit) const ;
   Bool_t                CheckRange(AliRecoParam::EventSpecie_t es) const ;
   const char *          GetBitName(QABIT_t bit) const ;
-  ULong_t               GetStatus(DETECTORINDEX_t det, AliRecoParam::EventSpecie_t es) const  { return fQA[det*fNEventSpecies+(Int_t)TMath::Log2(es)] ;}
+  ULong_t               GetStatus(DETECTORINDEX_t det, AliRecoParam::EventSpecie_t es) const  { return fQA[det*fNEventSpecies+AliRecoParam::AConvert(es)] ;}
   void                  Finish() const ;  
   ULong_t               Offset(ALITASK_t tsk) const ;
   void                  ShowASCIIStatus(AliRecoParam::EventSpecie_t es, DETECTORINDEX_t det, ALITASK_t tsk, ULong_t status) const ; 
+  void                  Reset(DETECTORINDEX_t det, ALITASK_t tsk, AliRecoParam::EventSpecie_t es) ;  
+
   void                  ResetStatus(DETECTORINDEX_t det) ; 
   void                  Set(DETECTORINDEX_t det) { fDet = det ;}
   void                  Set(ALITASK_t tsk) { fTask = tsk ; AliDebug(GetQADebugLevel(), Form("Ready to set QA status in %s", GetAliTaskName(tsk) )) ; }
-  void                  SetStatus(DETECTORINDEX_t det, AliRecoParam::EventSpecie_t es, ULong_t status) { fQA[det*fNEventSpecies+(Int_t)TMath::Log2(es)] = status ; }
+  void                  SetStatus(DETECTORINDEX_t det, AliRecoParam::EventSpecie_t es, ULong_t status) { fQA[det*fNEventSpecies+AliRecoParam::AConvert(es)] = status ; }
   void                  SetStatusBit(DETECTORINDEX_t det, ALITASK_t tsk, AliRecoParam::EventSpecie_t es, QABIT_t bit) ;
   void                  UnSetStatusBit(DETECTORINDEX_t det, ALITASK_t tsk, AliRecoParam::EventSpecie_t es, QABIT_t bit) ;