X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=FMD%2FAliFMDQADataMakerRec.cxx;h=91d54350c00e81266ea77d5d0bb79f068c4730eb;hb=182e56d0b40586b4709255fb0fdaceb786c866f9;hp=7f8da63b0892d8a2df43f72393d889750bb81e3d;hpb=44ed7a669ab9cf51d3f37f1f6736443b71c54926;p=u%2Fmrichter%2FAliRoot.git diff --git a/FMD/AliFMDQADataMakerRec.cxx b/FMD/AliFMDQADataMakerRec.cxx index 7f8da63b089..91d54350c00 100644 --- a/FMD/AliFMDQADataMakerRec.cxx +++ b/FMD/AliFMDQADataMakerRec.cxx @@ -31,6 +31,7 @@ #include "AliFMDRawReader.h" #include "AliRawReader.h" #include "AliFMDAltroMapping.h" +#include "AliFMDDebug.h" //_____________________________________________________________________ // This is the class that collects the QA data for the FMD during @@ -52,7 +53,6 @@ ClassImp(AliFMDQADataMakerRec) AliFMDQADataMakerRec::AliFMDQADataMakerRec() : AliQADataMakerRec(AliQAv1::GetDetName(AliQAv1::kFMD), "FMD Quality Assurance Data Maker"), - fDigitsArray("AliFMDDigit", 0), fRecPointsArray("AliFMDRecPoint", 1000) { // ctor @@ -63,7 +63,6 @@ AliFMDQADataMakerRec::AliFMDQADataMakerRec() : AliFMDQADataMakerRec::AliFMDQADataMakerRec(const AliFMDQADataMakerRec& qadm) : AliQADataMakerRec(AliQAv1::GetDetName(AliQAv1::kFMD), "FMD Quality Assurance Data Maker"), - fDigitsArray(qadm.fDigitsArray), fRecPointsArray(qadm.fRecPointsArray) { // copy ctor @@ -72,9 +71,9 @@ AliFMDQADataMakerRec::AliFMDQADataMakerRec(const AliFMDQADataMakerRec& qadm) } //_____________________________________________________________________ -AliFMDQADataMakerRec& AliFMDQADataMakerRec::operator = (const AliFMDQADataMakerRec& qadm ) +AliFMDQADataMakerRec& +AliFMDQADataMakerRec::operator = (const AliFMDQADataMakerRec& qadm ) { - fDigitsArray = qadm.fDigitsArray; fRecPointsArray = qadm.fRecPointsArray; return *this; @@ -122,8 +121,9 @@ void AliFMDQADataMakerRec::InitDigits() const Bool_t expert = kTRUE ; const Bool_t image = kTRUE ; - TH1I* hADCCounts = new TH1I("hADCCounts","Dist of ADC counts",1024,0,1024); - hADCCounts->SetXTitle("ADC counts"); + TH1I* hADCCounts = new TH1I("hADCCounts", + "Dist of ADC counts;ADC counts;Counts", + 1024,0,1024); Add2DigitsList(hADCCounts, 0, !expert, image); } @@ -138,7 +138,7 @@ void AliFMDQADataMakerRec::InitRecPoints() TH1F* hEnergyOfRecpoints = new TH1F("hEnergyOfRecpoints", "Energy Distribution",100,0,3); hEnergyOfRecpoints->SetXTitle("Edep/Emip"); - hEnergyOfRecpoints->SetYTitle(""); + hEnergyOfRecpoints->SetYTitle("Counts"); Add2RecPointsList(hEnergyOfRecpoints,0, !expert, image); } @@ -149,18 +149,22 @@ void AliFMDQADataMakerRec::InitRaws() const Bool_t expert = kTRUE ; const Bool_t saveCorr = kTRUE ; const Bool_t image = kTRUE ; - + Int_t colors[3] = {kRed,kGreen,kBlue}; TH1I* hADCCounts; for(Int_t det = 1; det<=3; det++) { Int_t firstring = (det==1 ? 1 : 0); for(Int_t iring = firstring;iring<=1;iring++) { Char_t ring = (iring == 1 ? 'I' : 'O'); - hADCCounts = new TH1I(Form("hADCCounts_FMD%d%c", - det, ring), "ADC counts", - 1024,0,1023); - + hADCCounts = + new TH1I(Form("hADCCounts_FMD%d%c", det, ring), + Form("FMD%d%c ADC counts;Amplitude [ADC counts];Counts", + det,ring),1024,0,1023); + hADCCounts->SetFillStyle(3001); + hADCCounts->SetFillColor(colors[det-1]+2+iring); + hADCCounts->SetDrawOption("LOGY"); + Int_t index1 = GetHalfringIndex(det, ring, 0,1); - Add2RawsList(hADCCounts, index1, expert, !image, !saveCorr); + Add2RawsList(hADCCounts, index1, !expert, image, !saveCorr); for(Int_t b = 0; b<=1;b++) { @@ -169,19 +173,41 @@ void AliFMDQADataMakerRec::InitRaws() board = board + b*16; - hADCCounts = new TH1I(Form("hADCCounts_FMD%d%c_board%d", - det, ring, board), "ADC counts", - 1024,0,1023); + hADCCounts = + new TH1I(Form("hADCCounts_FMD%d%c_0x%02x", det, ring, board), + Form("FMD%d%c_0x%x ADC counts;Amplitude [ADC counts];Counts", + det,ring, board),1024,0,1023); hADCCounts->SetXTitle("ADC counts"); hADCCounts->SetYTitle(""); + hADCCounts->SetFillStyle(3001); + hADCCounts->SetFillColor(colors[det-1]+2+iring); + hADCCounts->SetDrawOption("LOGY"); Int_t index2 = GetHalfringIndex(det, ring, board/16,0); - Add2RawsList(hADCCounts, index2, !expert, image, !saveCorr); + Add2RawsList(hADCCounts, index2, expert, !image, !saveCorr); } } } } +#if 0 +struct FillESDHist : public AliESDFMD::ForOne +{ + FillESDHist(AliFMDQADataMakerRec* m) : fM(m) {} + FillESDHist(const FillESDHist& o) : fM(o.fM) {} + FillESDHist& operator=(const FillESDHist& o) { fM = o.fM; return *this; } + Bool_t operator()(UShort_t, Char_t, UShort_t, UShort_t, Float_t m, Float_t) + { + // Float_t mult = fmd->Multiplicity(det,ring,sec,strip); + if(m == AliESDFMD::kInvalidMult) return true; + + fM->GetESDsData(0)->Fill(m); + return true; + } + AliFMDQADataMakerRec* fM; +}; +#endif + //_____________________________________________________________________ void AliFMDQADataMakerRec::MakeESDs(AliESDEvent * esd) { @@ -189,11 +215,22 @@ void AliFMDQADataMakerRec::MakeESDs(AliESDEvent * esd) AliError("FMD ESD object not found!!") ; return; } + AliFMDDebug(2, ("Will loop over ESD data and fill histogram")); + AliESDFMD* fmd = esd->GetFMDData(); if (!fmd) return; - + +#if 0 + FillESDHist f(this); + fmd->ForEach(f); +#else + + + + // FIXME - we should use AliESDFMD::ForOne subclass to do this! for(UShort_t det=1;det<=3;det++) { - for (UShort_t ir = 0; ir < 2; ir++) { + UShort_t nrng = (det == 1 ? 1 : 2); + for (UShort_t ir = 0; ir < nrng; ir++) { Char_t ring = (ir == 0 ? 'I' : 'O'); UShort_t nsec = (ir == 0 ? 20 : 40); UShort_t nstr = (ir == 0 ? 512 : 256); @@ -207,20 +244,22 @@ void AliFMDQADataMakerRec::MakeESDs(AliESDEvent * esd) } } } +#endif } //_____________________________________________________________________ -void AliFMDQADataMakerRec::MakeDigits(TClonesArray * digits) +void AliFMDQADataMakerRec::MakeDigits() { // makes data from Digits - if(!digits) { + if(!fDigitsArray) { AliError("FMD Digit object not found!!") ; return; } - for(Int_t i=0;iGetEntriesFast();i++) { + + for(Int_t i=0;iGetEntriesFast();i++) { //Raw ADC counts - AliFMDDigit* digit = static_cast(digits->At(i)); + AliFMDDigit* digit = static_cast(fDigitsArray->At(i)); GetDigitsData(0)->Fill(digit->Counts()); } } @@ -229,24 +268,33 @@ void AliFMDQADataMakerRec::MakeDigits(TClonesArray * digits) void AliFMDQADataMakerRec::MakeDigits(TTree * digitTree) { - fDigitsArray.Clear(); + if (fDigitsArray) + fDigitsArray->Clear(); + else + fDigitsArray = new TClonesArray("AliFMDDigit", 1000); + TBranch* branch = digitTree->GetBranch("FMD"); if (!branch) { AliWarning("FMD branch in Digit Tree not found") ; return; } - TClonesArray* digitsAddress = &fDigitsArray; - branch->SetAddress(&digitsAddress); + branch->SetAddress(&fDigitsArray); branch->GetEntry(0); - MakeDigits(digitsAddress); + MakeDigits(); } //_____________________________________________________________________ void AliFMDQADataMakerRec::MakeRaws(AliRawReader* rawReader) { - AliFMDRawReader fmdReader(rawReader,0); - TClonesArray* digitsAddress = &fDigitsArray; + AliFMDRawReader fmdReader(rawReader,0); + + if (fDigitsArray) + fDigitsArray->Clear(); + else + fDigitsArray = new TClonesArray("AliFMDDigit", 1000); + + TClonesArray* digitsAddress = fDigitsArray; rawReader->Reset(); @@ -274,7 +322,8 @@ void AliFMDQADataMakerRec::MakeRaws(AliRawReader* rawReader) void AliFMDQADataMakerRec::MakeRecPoints(TTree* clustersTree) { // makes data from RecPoints - AliFMDParameters* pars = AliFMDParameters::Instance(); + + AliFMDParameters* pars = AliFMDParameters::Instance(); fRecPointsArray.Clear(); TBranch *fmdbranch = clustersTree->GetBranch("FMD"); if (!fmdbranch) {