X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=T0%2FAliT0QADataMaker.cxx;h=e1d635e75c57cdb8c4048e34c7c32cc20ac28653;hb=92664bc8534e1609e8f484efaa16df714ebc0978;hp=83bd0ca91dffefb9bece0ce0056e02e4313f2f12;hpb=740f08399a641b535cd912d870723b897cc5f7d3;p=u%2Fmrichter%2FAliRoot.git diff --git a/T0/AliT0QADataMaker.cxx b/T0/AliT0QADataMaker.cxx index 83bd0ca91df..e1d635e75c5 100644 --- a/T0/AliT0QADataMaker.cxx +++ b/T0/AliT0QADataMaker.cxx @@ -18,50 +18,33 @@ //--- // Produces the data needed to calculate the quality assurance. -// All data must be mergeable objects. -// A. Mastroserio +// T0 QA for Hits, Digits, RAW and RecPoints +// Alla.Maevskaya@cern.ch +// //--- // --- ROOT system --- #include #include #include -#include -#include #include -#include // --- Standard library --- // --- AliRoot header files --- -#include "AliESDCaloCluster.h" #include "AliESDEvent.h" #include "AliLog.h" -#include "AliT0digit.h" +#include "AliT0digit.h" #include "AliT0hit.h" #include "AliT0RecPoint.h" #include "AliT0QADataMaker.h" #include "AliQAChecker.h" +#include "AliT0RawReader.h" ClassImp(AliT0QADataMaker) //____________________________________________________________________________ AliT0QADataMaker::AliT0QADataMaker() : - AliQADataMaker(AliQA::GetDetName(AliQA::kT0), "T0 Quality Assurance Data Maker") - // fhHitsTime(0x0), - // fhHitsAmp(0x0), - // fhHitsEff(0x0), - // fhDigCFD(0x0), - // fhDigLEDamp(0x0), - // fhDigQTC(0x0), - // fhDigMean(0x0), - // fhDigEff(0x0), - // fhRecCFD(0x0), - // fhRecLEDamp(0x0), - // fhRecQTC(0x0), - // fhRecMean(0x0), - // fhRecEff(0x0), - // fhESDMean(0x0), - // fhESDVertex(0x0) + AliQADataMaker(AliQAv1::GetDetName(AliQAv1::kT0), "T0 Quality Assurance Data Maker") { // ctor @@ -83,20 +66,6 @@ ClassImp(AliT0QADataMaker) //____________________________________________________________________________ AliT0QADataMaker::AliT0QADataMaker(const AliT0QADataMaker& qadm) : AliQADataMaker() - // fhHitsTime(0x0), - // fhHitsEff(0x0), - // fhDigCFD(0x0), - // fhDigLEDamp(0x0), - // fhDigQTC(0x0), - // fhDigMean(0x0), - // fhDigEff(0x0), - // fhRecCFD(0x0), - // fhRecLEDamp(0x0), - // fhRecQTC(0x0), - // fhRecMean(0x0), - // fhRecEff(0x0), - // // fhESDMean(0x0), - // fhESDVertex(0x0) { //copy ctor /* @@ -122,11 +91,11 @@ AliT0QADataMaker& AliT0QADataMaker::operator = (const AliT0QADataMaker& qadm ) return *this; } //____________________________________________________________________________ -void AliT0QADataMaker::EndOfDetectorCycle(AliQA::TASKINDEX task, TList * list) +void AliT0QADataMaker::EndOfDetectorCycle(AliQAv1::TASKINDEX task, TObjArray * list) { //Detector specific actions at end of cycle // do the QA checking - AliQAChecker::Instance()->Run(AliQA::kT0, task, list) ; + AliQAChecker::Instance()->Run(AliQAv1::kT0, task, list) ; } //____________________________________________________________________________ @@ -149,7 +118,7 @@ void AliT0QADataMaker::InitHits() if(i<12) fhHitsTime[i] = new TH1F(timename.Data(),timename.Data(),100,2000,3000); else fhHitsTime[i] = new TH1F(timename.Data(),timename.Data(),100,12000,13000); - Add2HitsList( fhHitsTime[i],i); + Add2HitsList( fhHitsTime[i],i); } /* TH2F *fhHitsEffA = new TH2F("hHitsEffA", "Hits Efficiency A side", 25,-0.5,24.5, 100,12,13 ); @@ -157,6 +126,8 @@ void AliT0QADataMaker::InitHits() TH2F *fhHitsEffC = new TH2F("hHitsEffC", "Hits Efficiency C side", 25,-0.5,24.5, 100,2,3 ); Add2HitsList(fhHitsEffC,1); */ + // + ClonePerTrigClass(AliQAv1::kHITS); // this should be the last line } //____________________________________________________________________________ @@ -199,7 +170,39 @@ void AliT0QADataMaker::InitDigits() Add2DigitsList( fhDigEff,72); TH1F* fhDigMean = new TH1F("hDigMean","online mean signal", 100,500,600); Add2DigitsList( fhDigMean,73); + // + ClonePerTrigClass(AliQAv1::kDIGITS); // this should be the last line +} + +//____________________________________________________________________________ +void AliT0QADataMaker::InitRaws() +{ + // create Raw histograms in Raw subdir + printf(" AliT0QADataMaker::InitRaws() started\n"); + TString timename, ampname, qtcname; + + TH1F *fhRawCFD[24]; TH1F * fhRawLEDamp[24]; TH1F *fhRawQTC[24]; + + for (Int_t i=0; i<24; i++) + { + timename ="hRawCFD"; + ampname = "hRawLED"; + qtcname = "hRawQTC"; + timename += i; + ampname += i; + qtcname += i; + fhRawCFD[i] = new TH1F(timename.Data(), timename.Data(),100,100,5000); + Add2RawsList( fhRawCFD[i],i); + fhRawLEDamp[i] = new TH1F(ampname.Data(), ampname.Data(),100,120000,150000); + Add2RawsList( fhRawLEDamp[i],i+24); + fhRawQTC[i] = new TH1F(qtcname.Data(), qtcname.Data(),100,100,500); + Add2RawsList( fhRawQTC[i],i+48); + } + TH1F* fhRawMean = new TH1F("hRawMean","online mean signal", 100,500,600); + Add2RawsList( fhRawMean,72); + // + ClonePerTrigClass(AliQAv1::kRAWS); // this should be the last line } //____________________________________________________________________________ @@ -208,14 +211,14 @@ void AliT0QADataMaker::InitRecPoints() { // create cluster histograms in RecPoint subdir /* - TH2F * fhRecCFD = new TH2F("fhRecCFD", " CFD reconstructed",25,-0.5,24.5,100,12,13); - Add2DigitsList( fhRecCFD,0); - TH2F *fhRecLEDamp = new TH2F("fhRecLEDamp", " amplitude LED reconstructed",25,-0.5,24.5,100,1000,1000); - Add2DigitsList( fhRecLEDamp,1); - TH2F * fhRecQTC = new TH2F("fhRecQTC", " amplitude QTC reconstructed",25,-0.5,24.5,100,1000,1000); - Add2DigitsList( fhRecQTC,2); - TH1F * fhRecMean = new TH1F("hRecMean"," reconstructed mean signal",100,500,600); - Add2DigitsList( fhRecMean,3); + TH2F * fhRecCFD = new TH2F("fhRecCFD", " CFD reconstructed",25,-0.5,24.5,100,12,13); + Add2DigitsList( fhRecCFD,0); + TH2F *fhRecLEDamp = new TH2F("fhRecLEDamp", " amplitude LED reconstructed",25,-0.5,24.5,100,1000,1000); + Add2DigitsList( fhRecLEDamp,1); + TH2F * fhRecQTC = new TH2F("fhRecQTC", " amplitude QTC reconstructed",25,-0.5,24.5,100,1000,1000); + Add2DigitsList( fhRecQTC,2); + TH1F * fhRecMean = new TH1F("hRecMean"," reconstructed mean signal",100,500,600); + Add2DigitsList( fhRecMean,3); */ TString timename,ampname, qtcname; @@ -235,12 +238,13 @@ void AliT0QADataMaker::InitRecPoints() fhRecQTC[i] = new TH1F(qtcname.Data(), qtcname.Data(),100,0,200); Add2RecPointsList ( fhRecQTC[i],i+48); } - + TH1F *fhRecEff = new TH1F("hRecEff","Efficiency rec.points",25,-0.5,24.5); - Add2RecPointsList ( fhRecEff,72); + Add2RecPointsList ( fhRecEff,72); TH1F * fhRecMean = new TH1F("hRecMean"," reconstructed mean signal",100,500,600); - Add2RecPointsList( fhRecMean,73); - + Add2RecPointsList( fhRecMean,73); + // + ClonePerTrigClass(AliQAv1::kRECPOINTS); // this should be the last line } //____________________________________________________________________________ void AliT0QADataMaker::InitESDs() @@ -248,10 +252,10 @@ void AliT0QADataMaker::InitESDs() //create ESDs histograms in ESDs subdir TH1F *fhESDMean = new TH1F("hESDmean"," ESD mean",100,0,100); Add2ESDsList(fhESDMean, 0) ; - TH1F * fhESDVertex = new TH1F("hESDvertex","EAD vertex",100,-50,50); + TH1F * fhESDVertex = new TH1F("hESDvertex","EAD vertex",100,-50,50); Add2ESDsList(fhESDVertex, 1) ; - - + // + ClonePerTrigClass(AliQAv1::kESDS); // this should be the last line } //____________________________________________________________________________ @@ -286,10 +290,14 @@ void AliT0QADataMaker::MakeHits(TTree *hitTree) break; } Int_t pmt=startHit->Pmt(); - GetHitsData(pmt)->Fill(startHit->Time()) ; + FillHitsData(pmt-1,startHit->Time()) ; } } } + // + IncEvCountCycleHits(); + IncEvCountTotalHits(); + // } //____________________________________________________________________________ @@ -309,7 +317,11 @@ void AliT0QADataMaker::MakeDigits( TTree *digitsTree) brDigits->SetAddress(&fDigits); }else{ AliError(Form("EXEC Branch T0 digits not found")); - return; + delete digCFD; + delete digLED; + delete digQT0; + delete digQT1; + return; } digitsTree->GetEvent(0); @@ -324,9 +336,9 @@ void AliT0QADataMaker::MakeDigits( TTree *digitsTree) { if (digCFD->At(i)>0) { Int_t cfd=digCFD->At(i)- refpoint; - GetDigitsData(i) ->Fill(cfd); - GetDigitsData(i+24) -> Fill(digLED->At(i) - digCFD->At(i)); - GetDigitsData(i+48) -> Fill(digQT1->At(i) - digQT0->At(i)); + FillDigitsData(i,cfd); + FillDigitsData(i+24, digLED->At(i) - digCFD->At(i)); + FillDigitsData(i+48, digQT1->At(i) - digQT0->At(i)); } } @@ -334,10 +346,62 @@ void AliT0QADataMaker::MakeDigits( TTree *digitsTree) delete digLED; delete digQT0; delete digQT1; - + // + IncEvCountCycleDigits(); + IncEvCountTotalDigits(); + // } +//____________________________________________________________________________ +void AliT0QADataMaker::MakeRaws( AliRawReader* rawReader) +{ + Int_t allData[110][5]; + for (Int_t i0=0; i0<105; i0++) + { + for (Int_t j0=0; j0<5; j0++) allData[i0][j0]=0; + } + //fills QA histos for RAW + + AliT0RawReader *start = new AliT0RawReader(rawReader); + start->Next(); + for (Int_t i=0; i<105; i++) + for (Int_t iHit=0; iHit<5; iHit++) + allData[i][iHit]= start->GetData(i,iHit); + + + for (Int_t ik = 0; ik<24; ik+=2){ + for (Int_t iHt=0; iHt<5; iHt++){ + Int_t cc = ik/2; + if(allData[cc+1][iHt]!=0){ + FillRawsData(cc,allData[cc+1][iHt]-allData[0][0]); + if(allData[ik+25][iHt]!=0 && allData[ik+26][iHt]!=0) + FillRawsData(cc+48,allData[ik+26][iHt]-allData[ik+25][iHt]); + if(allData[cc+13][iHt]!=0 ) + FillRawsData(cc+24,allData[cc+13][iHt]-allData[cc+1][iHt]); + } + } + } + + for (Int_t ik = 24; ik<48; ik+=2) { + for (Int_t iHt=0; iHt<5; iHt++) { + Int_t cc = ik/2; + if(allData[cc+45][iHt]!=0) { + FillRawsData(cc,allData[cc+1][iHt]-allData[0][0]); + if(allData[ik+57][iHt]!=0 && allData[ik+58][iHt]!=0) + FillRawsData(cc+48,allData[ik+57][iHt]-allData[ik+58][iHt]); + if(allData[cc+57][iHt]!=0 ) + FillRawsData(cc+48,allData[cc+57][iHt]-allData[cc+45][iHt]); + } + } + } + delete start; + // + IncEvCountCycleRaws(); + IncEvCountTotalRaws(); + // +} + //____________________________________________________________________________ void AliT0QADataMaker::MakeRecPoints(TTree * clustersTree) { @@ -352,21 +416,23 @@ void AliT0QADataMaker::MakeRecPoints(TTree * clustersTree) if (brRec) { brRec->SetAddress(&frecpoints); }else{ - cerr<<"EXEC Branch T0 rec not found"<GetEntry(0); for ( Int_t i=0; i<24; i++) { - GetRecPointsData(i) -> Fill(frecpoints -> GetTime(i)); - GetRecPointsData(i+24) -> Fill(frecpoints -> GetAmp(i)); - GetRecPointsData(i+48) -> Fill(frecpoints->AmpLED(i)); + FillRecPointsData(i,frecpoints -> GetTime(i)); + FillRecPointsData(i+24,frecpoints -> GetAmp(i)); + FillRecPointsData(i+48,frecpoints->AmpLED(i)); // if(frecpoints -> GetTime(i) > 0) fhRecEff->Fill(i); } - GetRecPointsData(72) ->Fill(frecpoints->GetMeanTime()); - + FillRecPointsData(72,frecpoints->GetMeanTime()); + // + IncEvCountCycleRecPoints(); + IncEvCountTotalRecPoints(); + // } //____________________________________________________________________________ @@ -374,8 +440,10 @@ void AliT0QADataMaker::MakeESDs(AliESDEvent * esd) { //fills QA histos for ESD - GetESDsData(0) -> Fill(esd->GetT0()); - GetESDsData(1)-> Fill(esd->GetT0zVertex()); - + FillESDsData(0,esd->GetT0()); + FillESDsData(1,esd->GetT0zVertex()); + // + IncEvCountCycleESDs(); + IncEvCountTotalESDs(); }