X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;ds=sidebyside;f=ITS%2FAliITSQASSDChecker.cxx;h=4ea3aed1872d082369da993eb53e776c8444e2fb;hb=ff7f662866547dcccdf38b3b952d324436791f61;hp=8b25f8f9e0b5b370ebf62a82983c249cac3fa945;hpb=1b7242640eaf4d38deb5aa1055321198efb0fb1c;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSQASSDChecker.cxx b/ITS/AliITSQASSDChecker.cxx index 8b25f8f9e0b..4ea3aed1872 100644 --- a/ITS/AliITSQASSDChecker.cxx +++ b/ITS/AliITSQASSDChecker.cxx @@ -24,10 +24,14 @@ // --- ROOT system --- #include "TH1.h" #include "TString.h" -#include "Riostream.h" +#include "TCanvas.h" +#include "TStyle.h" +#include "TPad.h" +//#include "Riostream.h" // --- AliRoot header files --- #include "AliITSQASSDChecker.h" +#include "AliITSQADataMakerRec.h" #include "AliLog.h" ClassImp(AliITSQASSDChecker) @@ -41,7 +45,7 @@ AliITSQASSDChecker& AliITSQASSDChecker::operator = (const AliITSQASSDChecker& qa } void AliITSQASSDChecker::CheckRaws(TH1* histo) { - + // checker for RAWS Double_t minSSDDataSize = 0; Double_t maxSSDDataSize = 200; Double_t minDDLDataSize = 0; @@ -87,12 +91,12 @@ void AliITSQASSDChecker::CheckRaws(TH1* histo) { AliWarning("Data size per LDC histogram is empty"); } else { - AliInfo(Form("Data size per LDC histogram has %i entries",histo->GetEntries())); + AliInfo(Form("Data size per LDC histogram has %f entries",histo->GetEntries())); for(Int_t i = 170; i < 178; i++) { if(histo->GetBinContent(histo->FindBin(i))==0) { AliWarning(Form("Data size / LDC histogram: bin for LDC %i is empty",i)); } - else if(histo->GetBinContent(histo->FindBin(i))==minLDCDataSize||histo->GetBinContent(histo->FindBin(i))>maxLDCDataSize) AliWarning(Form("Data size LDC %i is %-.2g kB",i,histo->GetBinContent(i))); + else if(AliITSQADataMakerRec::AreEqual(histo->GetBinContent(histo->FindBin(i)),minLDCDataSize) ||histo->GetBinContent(histo->FindBin(i))>maxLDCDataSize) AliWarning(Form("Data size LDC %i is %-.2g kB",i,histo->GetBinContent(i))); } } } @@ -173,14 +177,86 @@ void AliITSQASSDChecker::CheckRaws(TH1* histo) { } -void AliITSQASSDChecker::CheckRecPoints(TH1* /*histo*/) { +//__________________________________________________________________ +Bool_t AliITSQASSDChecker::MakeSSDImage( TObjArray ** list, AliQAv1::TASKINDEX_t task, AliQAv1::MODE_t mode) { + //create the image for raws and recpoints. In the other case, the default methodof CheckerBase class will be used // + gStyle->SetPalette(1,0); + Bool_t rval=kFALSE; + fImage=(TCanvas**)AliQAChecker::Instance()->GetDetQAChecker(0)->GetImage(); + + if(task == AliQAv1::kRAWS) + rval = MakeSSDRawsImage(list, task,mode); + else rval=kFALSE; + + return rval; +} +//_______________________________________________________________________ +Bool_t AliITSQASSDChecker::MakeSSDRawsImage(TObjArray ** list, AliQAv1::TASKINDEX_t task, AliQAv1::MODE_t mode ) { + // MakeSSDRawsImage: raw data QA plots + for (Int_t esIndex = 0 ; esIndex < AliRecoParam::kNSpecies ; esIndex++) { + //printf("-------------------------> %i \n", esIndex); + if (! AliQAv1::Instance(AliQAv1::GetDetIndex(GetName()))->IsEventSpecieSet(AliRecoParam::ConvertIndex(esIndex)) || list[esIndex]->GetEntries() == 0) continue; + else { + const Char_t * title = Form("QA_%s_%s_%s", GetName(), AliQAv1::GetTaskName(task).Data(), AliRecoParam::GetEventSpecieName(esIndex)) ; + if ( !fImage[esIndex] ) fImage[esIndex] = new TCanvas(title, title,1280,980) ; + + fImage[esIndex]->Clear() ; + fImage[esIndex]->SetTitle(title) ; + fImage[esIndex]->cd(); + + //TPaveText someText(0.015, 0.015, 0.98, 0.98); + //someText.AddText(title); + //someText.Draw(); + fImage[esIndex]->Print(Form("%s%s%d.%s", AliQAv1::GetImageFileName(), AliQAv1::GetModeName(mode), AliQAChecker::Instance()->GetRunNumber(), AliQAv1::GetImageFileFormat()), "ps") ; + fImage[esIndex]->Clear() ; + Int_t nx =2; //TMath::Nint(TMath::Sqrt(nImages)); + Int_t ny =2; // nx ; + + fImage[esIndex]->Divide(nx, ny) ; + TIter nexthist(list[esIndex]) ; + TH1* hist = NULL ; + Int_t npad = 1 ; + fImage[esIndex]->cd(npad); + fImage[esIndex]->cd(npad)->SetBorderMode(0) ; + while ( (hist=static_cast(nexthist())) ) { + //gPad=fImage[esIndex]->cd(npad)->GetPad(npad); + TString cln(hist->ClassName()) ; + if ( ! cln.Contains("TH") ) continue ; + + if(hist->TestBit(AliQAv1::GetImageBit())) { + //Printf("Histo name: %s - Class: %s",hist->GetName(),hist->ClassName()); + hist->GetXaxis()->SetTitleSize(0.02); + hist->GetYaxis()->SetTitleSize(0.02); + hist->GetXaxis()->SetLabelSize(0.02); + hist->GetYaxis()->SetLabelSize(0.02); + if(cln.Contains("TH2")) { + gPad->SetRightMargin(0.15); + gPad->SetLeftMargin(0.05); + hist->SetStats(0); + hist->SetOption("colz") ; + //hist->GetListOfFunctions()->FindObject("palette")->SetLabelSize(0.025); + //gPad->Update(); + } + hist->DrawCopy() ; + fImage[esIndex]->cd(++npad) ; + fImage[esIndex]->cd(npad)->SetBorderMode(0) ; + } + } + fImage[esIndex]->Print(Form("%s%s%d.%s", AliQAv1::GetImageFileName(), AliQAv1::GetModeName(mode), AliQAChecker::Instance()->GetRunNumber(), AliQAv1::GetImageFileFormat()), "ps") ; + } + } + + return kTRUE; } //__________________________________________________________________ -Double_t AliITSQASSDChecker::Check(AliQAv1::ALITASK_t /*index*/, TObjArray * list) { +Double_t AliITSQASSDChecker::Check(AliQAv1::ALITASK_t /*index*/, const TObjArray * list, const AliDetectorRecoParam * /*recoParam*/) { + // main checker method AliDebug(AliQAv1::GetQADebugLevel(),Form("AliITSQASSDChecker called with offset: %d\n", fSubDetOffset)); + + AliInfo(Form("AliITSQASSDChecker called with offset: %d\n", fSubDetOffset) ); //cout<<"(AliITSQASSDChecker::Check): List name "<GetName()<