//---
// 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 ---
// --- AliRoot header files ---
#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 "AliRawReaderFile.h"
#include "AliT0RawReader.h"
ClassImp(AliT0QADataMaker)
return *this;
}
//____________________________________________________________________________
-void AliT0QADataMaker::EndOfDetectorCycle(AliQA::TASKINDEX task, TList * list)
+void AliT0QADataMaker::EndOfDetectorCycle(AliQA::TASKINDEX task, TObjArray * list)
{
//Detector specific actions at end of cycle
// do the QA checking
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 );
}
TH1F* fhRawMean = new TH1F("hRawMean","online mean signal", 100,500,600);
- Add2DigitsList( fhRawMean,72);
+ Add2RawsList( fhRawMean,72);
}
{
// 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;
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);
}
//____________________________________________________________________________
//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) ;
-
+
}
//____________________________________________________________________________
break;
}
Int_t pmt=startHit->Pmt();
- GetHitsData(pmt)->Fill(startHit->Time()) ;
+ GetHitsData(pmt-1)->Fill(startHit->Time()) ;
}
}
}
for (Int_t j0=0; j0<5; j0++) allData[i0][j0]=0;
}
//fills QA histos for RAW
- // sprintf(filename,"/home/t0/alice/testSep07/raw/t0%i.001.raw",fRunNumber);
- // AliRawReader *reader = new AliRawReaderDate(filename);
- //if(!reader) AliFatal(Form("Can not opne file ",filename));
- rawReader = new AliRawReaderFile();
- rawReader->LoadEquipmentIdsMap("T0map.txt");
- // reader->RequireHeader(kFALSE);
- rawReader->RequireHeader(kTRUE);
- AliT0RawReader *start = new AliT0RawReader(rawReader);
-
- while (rawReader->NextEvent()) {
- 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);
-
+
+ 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;
+ 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){
GetRawsData(cc) -> Fill(allData[cc+1][iHt]-allData[0][0]);
if(allData[ik+25][iHt]!=0 && allData[ik+26][iHt]!=0)
if(allData[cc+13][iHt]!=0 )
GetRawsData(cc+24)->Fill(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) {
- GetRawsData(cc)->Fill(allData[cc+1][iHt]-allData[0][0]);
- if(allData[ik+57][iHt]!=0 && allData[ik+58][iHt]!=0)
- GetRawsData(cc+48)->Fill(allData[ik+57][iHt]-allData[ik+58][iHt]);
- if(allData[cc+57][iHt]!=0 )
- GetRawsData(cc+48)->Fill(allData[cc+57][iHt]-allData[cc+45][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) {
+ GetRawsData(cc)->Fill(allData[cc+1][iHt]-allData[0][0]);
+ if(allData[ik+57][iHt]!=0 && allData[ik+58][iHt]!=0)
+ GetRawsData(cc+48)->Fill(allData[ik+57][iHt]-allData[ik+58][iHt]);
+ if(allData[cc+57][iHt]!=0 )
+ GetRawsData(cc+48)->Fill(allData[cc+57][iHt]-allData[cc+45][iHt]);
}
- }
- }
-
- }
-
+ }
+ }
+ delete start;
}
//____________________________________________________________________________