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)) ;
}
}
}
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)
{
CheckRange(tsk) ;
CheckRange(bit) ;
CheckRange(es) ;
-
+
+ Reset(det, tsk, es) ;
+
ULong_t offset = Offset(tsk) ;
ULong_t status = GetStatus(det, es) ;
offset+= bit ;
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) ;