* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id$ */
+/* $Id $ */
// *****************************************
// Checks the quality assurance
// INFN Torino
// --- ROOT system ---
+#include "TH1.h"
+#include "TString.h"
// --- AliRoot header files ---
#include "AliITSQASPDChecker.h"
+#include "AliLog.h"
ClassImp(AliITSQASPDChecker)
-
//__________________________________________________________________
AliITSQASPDChecker& AliITSQASPDChecker::operator = (const AliITSQASPDChecker& qac )
{
return *this;
}
+
//__________________________________________________________________
-const Double_t AliITSQASPDChecker::Check(AliQA::ALITASK_t /*index*/)
+const Double_t AliITSQASPDChecker::Check(AliQA::ALITASK_t /*index*/, TObjArray * list)
{
-/*
- TObjArray * list
- Double_t test = 0.0 ;
- Int_t count = 0 ;
+ AliDebug(1,Form("AliITSQASPDChecker called with offset: %d\n", fSubDetOffset));
- if (list->GetEntries() == 0){
- test = 1. ; // nothing to check
+ Double_t test = 0.0;
+ Int_t count = 0;
+
+ if (list->GetEntries() == 0) {
+ test = 1.; // nothing to check
}
else {
- TIter next(list) ;
- TH1 * hdata ;
- count = 0 ;
+ TIter next(list);
+ TH1 * hdata;
+ count = 0;
while ( (hdata = dynamic_cast<TH1 *>(next())) ) {
if (hdata) {
+ TString histName = hdata->GetName();
+ if (!histName.Contains("_SPD")) continue;
Double_t rv = 0.;
- if(hdata->GetEntries()>0)rv=1;
- AliInfo(Form("%s -> %f", hdata->GetName(), rv)) ;
- count++ ;
- test += rv ;
+ if (hdata->GetEntries()>0) rv = 1;
+ if (histName.Contains("LayPattern")) {
+ if (hdata->GetBinContent(1)) {
+ Double_t ratio=hdata->GetBinContent(2)/hdata->GetBinContent(1);
+ AliInfo(Form("%s: ratio RecPoints lay2 / lay1 = %f", hdata->GetName(), ratio));
+ }
+ else
+ AliInfo("No RecPoints in lay1");
+ }
+ else if(histName.Contains("ModPattern")) {
+ Int_t ndead=0;
+ for(Int_t ibin=0;ibin<hdata->GetNbinsX();ibin++) {
+ if(histName.Contains("SPD1") && ibin<80 && hdata->GetBinContent(ibin+1)>0) ndead++;
+ if(histName.Contains("SPD2") && ibin>79 && hdata->GetBinContent(ibin+1)>0) ndead++;
+ }
+ AliInfo(Form("%s: Entries = %d number of empty modules = %d",
+ hdata->GetName(),(Int_t)hdata->GetEntries(),ndead));
+ }
+ else if(histName.Contains("SizeYvsZ")) {
+ Double_t meanz=hdata->GetMean(1);
+ Double_t meany=hdata->GetMean(2);
+ Double_t rmsz=hdata->GetRMS(1);
+ Double_t rmsy=hdata->GetRMS(2);
+ AliInfo(Form("%s: Cluster sizeY mean = %f rms = %f", hdata->GetName(),meany,rmsy));
+ AliInfo(Form("%s: Cluster sizeZ mean = %f rms = %f", hdata->GetName(),meanz,rmsz));
+ }
+ else if(histName.Contains("Multiplicity")) {
+ AliInfo(Form("%s: Events = %d mean = %f rms = %f",
+ hdata->GetName(),(Int_t)hdata->GetEntries(),hdata->GetMean(),hdata->GetRMS()));}
+
+ // else AliInfo(Form("%s -> %f", hdata->GetName(), rv));
+ count++;
+ test += rv;
}
- else{
+ else {
AliError("Data type cannot be processed") ;
}
-
}
+
if (count != 0) {
if (test==0) {
AliWarning("Histograms are there, but they are all empty: setting flag to kWARNING");
test = 0.5; //upper limit value to set kWARNING flag for a task
}
else {
- test /= count ;
+ test /= count;
}
}
}
- AliInfo(Form("Test Result = %f", test)) ;
+ AliInfo(Form("Test Result = %f", test));
return test ;
-*/
- return 0.;
-}
+
+}
+
+//__________________________________________________________________
+void AliITSQASPDChecker::SetTaskOffset(Int_t TaskOffset)
+{
+ fSubDetOffset = TaskOffset;
+}