From 5ed4146067c5c06b31ccc210e824b247943238f1 Mon Sep 17 00:00:00 2001 From: alla Date: Thu, 19 Jun 2008 07:52:16 +0000 Subject: [PATCH] improved QA --- T0/AliT0QAChecker.cxx | 55 ++++++++++++--------- T0/AliT0QADataMakerRec.cxx | 99 +++++++++++++++++++++++++++++++------- T0/AliT0RawReader.cxx | 8 +-- T0/AliT0RawReader.h | 2 +- 4 files changed, 119 insertions(+), 45 deletions(-) diff --git a/T0/AliT0QAChecker.cxx b/T0/AliT0QAChecker.cxx index d77e4e00f83..b230b33efb5 100644 --- a/T0/AliT0QAChecker.cxx +++ b/T0/AliT0QAChecker.cxx @@ -61,12 +61,15 @@ const Double_t AliT0QAChecker::Check(AliQA::ALITASK_t index,TObjArray * list) cout<<" GetAliTaskName "<(next())) ) { if (hdata) { nent[count] = hdata->GetEntries(); - AliDebug(10,Form("count %i %s -> %f",count, hdata->GetName(),nent[count])) ; - + cname = hdata->GetName(); + hname[count] = cname; + AliDebug(10,Form("count %i %s -> %f",count, hname[count].Data(),nent[count])) ; + if(index==2){ if(count>23 && count<48)fhRecLEDAmp[count-24] = hdata; if(count>47 && count<72)fhRecQTC[count-48] = hdata; if(count == 72) fhOnlineMean = hdata; if(count == 73) fhRecMean = hdata; } + count++ ; + Double_t rv = 0.; if(hdata->GetEntries()>0) rv = 1; // AliInfo(Form("%s -> %f", hdata->GetName(), rv)) ; test += rv ; + } 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"); @@ -119,26 +127,29 @@ const Double_t AliT0QAChecker::Check(AliQA::ALITASK_t index,TObjArray * list) meanLED = fhRecLEDAmp[idet]->GetMean(); meanQTC = fhRecQTC[idet]->GetMean(); if (TMath::Abs(meanLED-meanQTC)> 1.) - AliWarning(Form("Amplitude measurements are different in channel %i : Amp LED %f -> Amp QTC %f",idet,meanLED, meanQTC)) ; + AliWarning(Form("Amplitude measurements are different in channel %i : Amp LED %f -> Amp QTC %f",idet,meanLED, meanQTC)) ; } } - else - { - AliDebug(10,Form(" MaxElement %f ", TMath::MaxElement(count,nent))); - if(TMath::MaxElement(count,nent) > 1000) { - Double_t mean = TMath::Mean(count,nent,w); - AliDebug(10,Form(" Mean %f ", mean)); - for (Int_t i=0; i 0.1*mean ) - AliWarning(Form("Problem in Number of entried in hist %i is %f\n", i, nent[i])) ; - } + + + if (index == 0) { + Int_t realNumber = Int_t(nent[0]); + for (Int_t i=77; i 0.1*realNumber ) + AliWarning(Form("Problem in Number of entried in hist %s is %f\n",hname[i].Data() , nent[i])) ; + } } - } } + } + + } // if (list->GetEntries() != 0 + AliInfo(Form("Test Result = %f", test)) ; + return test ; } + diff --git a/T0/AliT0QADataMakerRec.cxx b/T0/AliT0QADataMakerRec.cxx index 450a07dd41a..2d7c199a82e 100644 --- a/T0/AliT0QADataMakerRec.cxx +++ b/T0/AliT0QADataMakerRec.cxx @@ -39,7 +39,7 @@ #include "AliQAChecker.h" #include "AliT0RawReader.h" -//#include "iostream.h" +#include "iostream.h" ClassImp(AliT0QADataMakerRec) //____________________________________________________________________________ @@ -111,11 +111,13 @@ void AliT0QADataMakerRec::InitRaws() // create Raw histograms in Raw subdir // printf(" AliT0QADataMakerRec::InitRaws() started\n"); TString timename, ampname, qtcname; + TString timeCalname, ampCalname, qtcCalname; TH1F* fhRefPoint = new TH1F("hRefPoint","Ref Point", 10,1252170, 1252180); Add2RawsList( fhRefPoint,0); TH1F *fhRawCFD[24]; TH1F * fhRawLEDamp[24]; TH1F *fhRawQTC[24]; + TH1F *fhRawCFDcal[24]; TH1F * fhRawLEDampcal[24]; TH1F *fhRawQTCcal[24]; for (Int_t i=0; i<24; i++) { @@ -141,7 +143,40 @@ void AliT0QADataMakerRec::InitRaws() Add2RawsList( fhRawORA,75); TH1F* fhRawORC = new TH1F("hRawORC","online OR C", 100,2000,2300); Add2RawsList( fhRawORC,76); - + for (Int_t i=0; i<24; i++) + { + // for events with trigger CALIBRATION_EVENT + timeCalname ="hRawCFDcal"; + ampCalname = "hRawLEDcal"; + qtcCalname = "hRawQTCcal"; + timeCalname += i; + ampCalname += i; + qtcCalname += i; + fhRawCFDcal[i] = new TH1F(timeCalname.Data(), timeCalname.Data(),1000,4000,6000); + Add2RawsList( fhRawCFDcal[i],76+i+1); + fhRawLEDampcal[i] = new TH1F(ampCalname.Data(), ampCalname.Data(),100,300,600); + Add2RawsList( fhRawLEDampcal[i],76+i+24+1); + fhRawQTCcal[i] = new TH1F(qtcCalname.Data(), qtcCalname.Data(),1000,0,7000); + Add2RawsList( fhRawQTCcal[i],76+i+48+1); + } + TH1F* fhRawMeanCal = new TH1F("hRawMeanCal","online mean signal, calibration event", + 1000,7000,8000); + Add2RawsList( fhRawMeanCal,149); + TH1F* fhRawVertexCal = new TH1F("hRawVertexCal","online vertex signal, calibration even ", + 1000,7000,8000); + Add2RawsList( fhRawVertexCal,150); + TH1F* fhRawORAcal = new TH1F("hRawORAcal","online OR A", 200,5000,7000); + Add2RawsList( fhRawORAcal,151); + TH1F* fhRawORCcal = new TH1F("hRawORCcal","online OR C", 200,5000,7000); + Add2RawsList( fhRawORCcal,152); + TH1F* fhMultcal = new TH1F("hMultcal","full mulltiplicity", 1000,0,10000); + Add2RawsList( fhMultcal,153); + TH1F* fhMultScal = new TH1F("hMultScal","full multiplicity with semi-central trigger", + 1000,0,10000); + Add2RawsList( fhMultScal,154); + TH1F* fhMultCcal = new TH1F("hMultCcal","full multiplicity with central trigger", + 1000,0,10000); + Add2RawsList( fhMultCcal,155); } //____________________________________________________________________________ @@ -205,12 +240,16 @@ void AliT0QADataMakerRec::InitESDs() void AliT0QADataMakerRec::MakeRaws( AliRawReader* rawReader) { //fills QA histos for RAW + Int_t shift=0; AliT0RawReader *start = new AliT0RawReader(rawReader); // start->Next(); if (! start->Next()) AliDebug(1,Form(" no raw data found!!")); else { + + UInt_t type =rawReader->GetType(); + // cout<<" !!!!! new event type = "< Fill( allData[0][0]); allData[0][0] = allData[0][0] - 5000; - + if (type == 8) shift=76; + if (type == 10) shift=0; + for (Int_t ik = 0; ik<12; ik++){ for (Int_t iHt=0; iHt<5; iHt++){ if(allData[ik+1][iHt]>0){ - GetRawsData(ik+1) -> Fill(allData[ik+1][iHt]-allData[0][0]); - if(allData[2*ik+25][iHt] > 0 && allData[2*ik+26][iHt] > 0) - GetRawsData(ik+48+1)->Fill(allData[2*ik+25][iHt]-allData[2*ik+26][iHt]); - if(allData[ik+13][iHt]!=0 ) - GetRawsData(ik+24+1)->Fill(allData[ik+13][iHt]-allData[ik+1][iHt]); - } + GetRawsData(shift+ik+1) -> Fill(allData[ik+1][iHt]-allData[0][0]); + // cout<<" type "< 0 && allData[2*ik+26][iHt] > 0) + GetRawsData(shift+ik+48+1)->Fill(allData[2*ik+25][iHt]-allData[2*ik+26][iHt]); + if(allData[ik+13][iHt]!=0 ) + GetRawsData(shift+ik+24+1)->Fill(allData[ik+13][iHt]-allData[ik+1][iHt]); + } } - + } for (Int_t ik = 12; ik<24; ik++) { for (Int_t iHt=0; iHt<5; iHt++) { if(allData[ik+45][iHt]>0) { - GetRawsData(ik+1)->Fill(allData[ik+45][iHt]-allData[0][0]); + GetRawsData(shift+ik+1)->Fill(allData[ik+45][iHt]-allData[0][0]); + // cout<<" type "<Fill(allData[2*ik+57][iHt]-allData[2*ik+58][iHt]); + GetRawsData(shift+ik+48+1)->Fill(allData[2*ik+57][iHt]-allData[2*ik+58][iHt]); if(allData[ik+57][iHt] > 0 ) - GetRawsData(ik+24+1)->Fill(allData[ik+57][iHt]-allData[ik+45][iHt]); + GetRawsData(shift+ik+24+1)->Fill(allData[ik+57][iHt]-allData[ik+45][iHt]); } } } + if(type == 10) + { + GetRawsData(73)->Fill(allData[49][0]-allData[0][0]); + GetRawsData(74)->Fill(allData[50][0]-allData[0][0]); + GetRawsData(75)->Fill(allData[51][0]-allData[0][0]); + GetRawsData(76)->Fill(allData[52][0]-allData[0][0]); + } + if(type == 8) + { + GetRawsData(149)->Fill(allData[49][0]-allData[0][0]); + GetRawsData(150)->Fill(allData[50][0]-allData[0][0]); + GetRawsData(151)->Fill(allData[51][0]-allData[0][0]); + GetRawsData(152)->Fill(allData[52][0]-allData[0][0]); + /* cout<<" and "<Fill(allData[49][0]-allData[0][0]); - GetRawsData(73)->Fill(allData[50][0]-allData[0][0]); - GetRawsData(74)->Fill(allData[51][0]-allData[0][0]); - GetRawsData(75)->Fill(allData[52][0]-allData[0][0]); - + GetRawsData(153)->Fill(allData[53][0]-allData[54][0]); + if(allData[55][0]) GetRawsData(154)->Fill(allData[53][0]-allData[54][0]); + if(allData[55][0]) GetRawsData(155)->Fill(allData[53][0]-allData[54][0]); + + } delete start; } diff --git a/T0/AliT0RawReader.cxx b/T0/AliT0RawReader.cxx index 34966418455..618324151fc 100644 --- a/T0/AliT0RawReader.cxx +++ b/T0/AliT0RawReader.cxx @@ -113,7 +113,7 @@ Bool_t AliT0RawReader::Next() Int_t fNTRM = fParam->GetNumberOfTRMs(); for ( Int_t k=0; k<110; k++) { koefhits[k]=0; - for ( Int_t jj=0; jj<50; jj++) { + for ( Int_t jj=0; jj<5; jj++) { fAllData[k][jj]=0; } } @@ -188,9 +188,9 @@ Bool_t AliT0RawReader::Next() } if(correct){ hit=koefhits[koef]; - if(hit>50) { - AliWarning(Form("Too many hits for %i channel ! ",koef)); - break; + if(hit>5) { + AliWarning(Form("Too many hits for %i channel - %i ! ",koef,koefhits[koef] )); + hit=5; } fAllData[koef][hit]=time; koefhits[koef]++; diff --git a/T0/AliT0RawReader.h b/T0/AliT0RawReader.h index 4d250c9be01..16a7367491f 100644 --- a/T0/AliT0RawReader.h +++ b/T0/AliT0RawReader.h @@ -62,7 +62,7 @@ class AliT0RawReader : public TTask { AliT0Parameters *fParam; // instanse of Parameters class Bool_t fIsOnline; // for case online DA usage - Int_t fAllData[110][50]; // container for raw data + Int_t fAllData[110][5]; // container for raw data ClassDef(AliT0RawReader,2) //class for reading T0 Raw data }; -- 2.43.0