From: alla Date: Wed, 21 Nov 2007 11:51:13 +0000 (+0000) Subject: now QA writes correct hist in T0.QA.file X-Git-Url: http://git.uio.no/git/?a=commitdiff_plain;h=740f08399a641b535cd912d870723b897cc5f7d3;hp=c7500daef15860d686cf2c0bd901226bcc70fc90;p=u%2Fmrichter%2FAliRoot.git now QA writes correct hist in T0.QA.file --- diff --git a/T0/AliT0.cxx b/T0/AliT0.cxx index b9403ee889e..23c791d655a 100644 --- a/T0/AliT0.cxx +++ b/T0/AliT0.cxx @@ -135,7 +135,7 @@ void AliT0::AddHit(Int_t track, Int_t *vol, Float_t *hits) //_____________________________________________________________________________ void AliT0::AddDigit(Int_t besttimeright, Int_t besttimeleft, Int_t meantime, - Int_t timediff, Int_t sumMult, + Int_t timediff, Int_t sumMult, Int_t refpoint, TArrayI *timeCFD, TArrayI *qt0, TArrayI *timeLED, TArrayI *qt1) { @@ -154,6 +154,7 @@ void AliT0::AddDigit(Int_t besttimeright, Int_t besttimeleft, Int_t meantime, fDigits->SetTimeLED(*timeLED); fDigits->SetQT0(*qt0); fDigits->SetQT1(*qt1); + fDigits->SetRefPoint(refpoint); } diff --git a/T0/AliT0.h b/T0/AliT0.h index 89fc7f32b13..ed7cc44683b 100644 --- a/T0/AliT0.h +++ b/T0/AliT0.h @@ -33,7 +33,7 @@ public: virtual void AddHit(Int_t track, Int_t *vol, Float_t *hits); virtual void AddDigit(Int_t *, Int_t *) {}; virtual void AddDigit(Int_t besttimeright, Int_t besttimeleft, Int_t meantime, - Int_t timediff, Int_t sumMult, + Int_t timediff, Int_t sumMult, Int_t refpoint, TArrayI *time, TArrayI *adc, TArrayI *timeAmp, TArrayI *adcAmp); virtual void BuildGeometry(); virtual void CreateGeometry(){} @@ -57,7 +57,8 @@ public: void Raw2Digits (AliRawReader *reader,TTree* digitsTree); virtual AliTriggerDetector* CreateTriggerDetector() const { return new AliT0Trigger(); } - + + virtual void Raw2Digits() {} protected: Int_t fIdSens; // Sensetive Cherenkov photocathode diff --git a/T0/AliT0Digitizer.cxx b/T0/AliT0Digitizer.cxx index 3caa76804ac..1a27aec889e 100644 --- a/T0/AliT0Digitizer.cxx +++ b/T0/AliT0Digitizer.cxx @@ -160,6 +160,7 @@ void AliT0Digitizer::Exec(Option_t* /*option*/) Int_t threshold =50; //photoelectrons Float_t zdetA, zdetC; Int_t sumMultCoeff = 100; + Int_t refpoint=0; TH1F *hr; @@ -333,10 +334,11 @@ void AliT0Digitizer::Exec(Option_t* /*option*/) sumMult, fSumMult, fSumMult*channelWidth)); } - fT0->AddDigit(bestATDC,bestCTDC,meanTime,timeDiff,fSumMult, + fT0->AddDigit(bestATDC,bestCTDC,meanTime,timeDiff,fSumMult, refpoint, ftimeCFD,fADC0,ftimeLED,fADC); - AliDebug(10,Form(" Digits wrote bestATDC %i bestCTDC %i meanTime %i timeDiff %i fSumMult %i ", bestATDC,bestCTDC,meanTime,timeDiff,fSumMult )); + + AliDebug(10,Form(" Digits wrote refpoint %i bestATDC %i bestCTDC %i meanTime %i timeDiff %i fSumMult %i ",refpoint ,bestATDC,bestCTDC,meanTime,timeDiff,fSumMult )); pOutStartLoader->UnloadHits(); } //input streams loop diff --git a/T0/AliT0QADataMaker.cxx b/T0/AliT0QADataMaker.cxx index 356de0ee567..83bd0ca91df 100644 --- a/T0/AliT0QADataMaker.cxx +++ b/T0/AliT0QADataMaker.cxx @@ -141,14 +141,14 @@ void AliT0QADataMaker::InitHits() { // create Hits histograms in Hits subdir TString timename; - timename ="hHitTime"; TH1F * fhHitsTime[24]; for (Int_t i=0; i<24; i++) { + timename ="hHitTime"; timename += i; - if(i<12) fhHitsTime[i] = new TH1F(timename.Data(),timename.Data(),100,2,3); + if(i<12) fhHitsTime[i] = new TH1F(timename.Data(),timename.Data(),100,2000,3000); else - fhHitsTime[i] = new TH1F(timename.Data(),timename.Data(),100,12,13); + fhHitsTime[i] = new TH1F(timename.Data(),timename.Data(),100,12000,13000); Add2HitsList( fhHitsTime[i],i); } /* @@ -176,22 +176,22 @@ void AliT0QADataMaker::InitDigits() */ TString timename, ampname, qtcname; - timename ="hDigCFD"; - ampname = "hDigLED"; - qtcname = "hDigQTC"; TH1F *fhDigCFD[24]; TH1F * fhDigLEDamp[24]; TH1F *fhDigQTC[24]; for (Int_t i=0; i<24; i++) { + timename ="hDigCFD"; + ampname = "hDigLED"; + qtcname = "hDigQTC"; timename += i; ampname += i; qtcname += i; - fhDigCFD[i] = new TH1F(timename.Data(), timename.Data(),100,100,1000); + fhDigCFD[i] = new TH1F(timename.Data(), timename.Data(),100,100,5000); Add2DigitsList( fhDigCFD[i],i); - fhDigLEDamp[i] = new TH1F(ampname.Data(), ampname.Data(),100,100,1000); + fhDigLEDamp[i] = new TH1F(ampname.Data(), ampname.Data(),100,120000,150000); Add2DigitsList( fhDigLEDamp[i],i+24); - fhDigQTC[i] = new TH1F(qtcname.Data(), qtcname.Data(),100,100,1000); + fhDigQTC[i] = new TH1F(qtcname.Data(), qtcname.Data(),100,100,500); Add2DigitsList( fhDigQTC[i],i+48); } @@ -219,20 +219,20 @@ void AliT0QADataMaker::InitRecPoints() */ TString timename,ampname, qtcname; - timename ="hRecCFD"; - ampname = "hRecLED"; - qtcname = "hRecQTC"; TH1F *fhRecCFD[24]; TH1F *fhRecLEDAmp[24]; TH1F * fhRecQTC[24]; for (Int_t i=0; i<24; i++) { + timename ="hRecCFD"; + ampname = "hRecLED"; + qtcname = "hRecQTC"; timename += i; ampname += i; qtcname += i; - fhRecCFD[i] = new TH1F(timename.Data(), timename.Data(),100,100,1000); + fhRecCFD[i] = new TH1F(timename.Data(), timename.Data(),100,0,1000); Add2RecPointsList ( fhRecCFD[i],i); - fhRecLEDAmp[i] = new TH1F(ampname.Data(), ampname.Data(),100,100,1000); + fhRecLEDAmp[i] = new TH1F(ampname.Data(), ampname.Data(),100,0,200); Add2RecPointsList ( fhRecLEDAmp[i],i+24); - fhRecQTC[i] = new TH1F(qtcname.Data(), qtcname.Data(),100,100,1000); + fhRecQTC[i] = new TH1F(qtcname.Data(), qtcname.Data(),100,0,200); Add2RecPointsList ( fhRecQTC[i],i+48); } @@ -246,7 +246,7 @@ void AliT0QADataMaker::InitRecPoints() void AliT0QADataMaker::InitESDs() { //create ESDs histograms in ESDs subdir - TH1F *fhESDMean = new TH1F("hESDmean"," ESD mean",100,500,600); + TH1F *fhESDMean = new TH1F("hESDmean"," ESD mean",100,0,100); Add2ESDsList(fhESDMean, 0) ; TH1F * fhESDVertex = new TH1F("hESDvertex","EAD vertex",100,-50,50); Add2ESDsList(fhESDVertex, 1) ; @@ -254,24 +254,46 @@ void AliT0QADataMaker::InitESDs() } //____________________________________________________________________________ -void AliT0QADataMaker::MakeHits(TObject * data) + +void AliT0QADataMaker::MakeHits(TTree *hitTree) { //fills QA histos for Hits - TClonesArray * hits = dynamic_cast(data) ; - if (!hits){ - AliError("Wrong type of hits container") ; + TClonesArray * hits = new TClonesArray("AliT0hit", 1000); + + TBranch * branch = hitTree->GetBranch("T0") ; + if ( ! branch ) { + AliWarning("T0 branch in Hit Tree not found") ; } else { - TIter next(hits); - AliT0hit * hit ; - while ( (hit = dynamic_cast(next())) ) { - Int_t pmt=hit->Pmt(); - GetHitsData(pmt)->Fill(pmt,hit->Time()) ; + + if (branch) { + branch->SetAddress(&hits); + }else{ + AliError("Branch T0 hit not found"); + exit(111); + } + Int_t ntracks = (Int_t) hitTree->GetEntries(); + + if (ntracks<=0) return; + // Start loop on tracks in the hits containers + for (Int_t track=0; trackGetEntry(track); + Int_t nhits = hits->GetEntriesFast(); + for (Int_t ihit=0;ihitUncheckedAt(ihit); + if (!startHit) { + AliError("The unchecked hit doesn't exist"); + break; + } + Int_t pmt=startHit->Pmt(); + GetHitsData(pmt)->Fill(startHit->Time()) ; + } } - } + } } //____________________________________________________________________________ -void AliT0QADataMaker::MakeDigits( TObject * data) +void AliT0QADataMaker::MakeDigits( TTree *digitsTree) { //fills QA histos for Digits @@ -281,31 +303,33 @@ void AliT0QADataMaker::MakeDigits( TObject * data) TArrayI *digQT1 = new TArrayI(24); Int_t refpoint=0; - TClonesArray * digits = dynamic_cast(data) ; - - if ( !digits) { - AliError("Wrong type of digits container") ; - } else { - TIter next(digits) ; - AliT0digit * digit ; - while ( (digit = dynamic_cast(next())) ) { - digit->GetTimeCFD(*digCFD); - digit->GetTimeLED(*digLED); - digit->GetQT0(*digQT0); - digit->GetQT1(*digQT1); - refpoint = digit->RefPoint(); - for (Int_t i=0; i<24; i++) - { - if (digCFD->At(i)>0) { - Int_t cfd=digCFD->At(i)- refpoint; - GetDigitsData(i) ->Fill(i,cfd); - GetDigitsData(i+24) -> Fill(i, digLED->At(i) - digCFD->At(i)); - GetDigitsData(i+48) -> Fill(i, digQT1->At(i) - digQT0->At(i)); - // fhDigEff->Fill(i); - } - } - } + TBranch *brDigits=digitsTree->GetBranch("T0"); + AliT0digit *fDigits = new AliT0digit() ; + if (brDigits) { + brDigits->SetAddress(&fDigits); + }else{ + AliError(Form("EXEC Branch T0 digits not found")); + return; } + + digitsTree->GetEvent(0); + digitsTree->GetEntry(0); + brDigits->GetEntry(0); + fDigits->GetTimeCFD(*digCFD); + fDigits->GetTimeLED(*digLED); + fDigits->GetQT0(*digQT0); + fDigits->GetQT1(*digQT1); + refpoint = fDigits->RefPoint(); + for (Int_t i=0; i<24; i++) + { + 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)); + } + } + delete digCFD; delete digLED; delete digQT0; diff --git a/T0/AliT0QADataMaker.h b/T0/AliT0QADataMaker.h index b36b15eaeba..0eccd0fb205 100644 --- a/T0/AliT0QADataMaker.h +++ b/T0/AliT0QADataMaker.h @@ -18,6 +18,7 @@ class TH1F ; class TH2F ; +class TClonesArray; // --- Standard library --- #include @@ -38,8 +39,9 @@ private: virtual void InitDigits() ; //book Digit QA histo virtual void InitRecPoints(); //book cluster QA histo virtual void InitESDs() ; //book ESD QA histo - virtual void MakeHits(TObject * hits) ; //Fill hit QA histo - virtual void MakeDigits(TObject * digits) ; //Fill Digit QA histo + // virtual void MakeHits(TClonesArray * hits) ; //Fill hit QA histo + virtual void MakeHits(TTree * hits) ; //Fill hit QA histo + virtual void MakeDigits(TTree* digitsTree) ; //Fill Digit QA histo virtual void MakeRecPoints(TTree * clusters) ; //Fill cluster QA histo virtual void MakeESDs(AliESDEvent * esd) ; //Fill hit QA histo virtual void EndOfDetectorCycle(AliQA::TASKINDEX, TList * list) ;