X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONTriggerQADataMakerRec.cxx;h=7d0ec7b3b5f65c99d3316d4b76f81aa0c78957d6;hb=7ee2edd02598e63298bc1ffcee62d35a5e5ee6ad;hp=8035c60186c4375cf95e1ebb0ee5e27c2a70aac0;hpb=25bf7c782cd90ec69f1edc5077a13f6e09380411;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONTriggerQADataMakerRec.cxx b/MUON/AliMUONTriggerQADataMakerRec.cxx index 8035c60186c..7d0ec7b3b5f 100644 --- a/MUON/AliMUONTriggerQADataMakerRec.cxx +++ b/MUON/AliMUONTriggerQADataMakerRec.cxx @@ -72,8 +72,6 @@ namespace //____________________________________________________________________________ AliMUONTriggerQADataMakerRec::AliMUONTriggerQADataMakerRec(AliQADataMakerRec* master) : AliMUONVQADataMakerRec(master), -fNumberOf34Dec(0x0), -fNumberOf44Dec(0x0), fDigitMaker(new AliMUONDigitMaker(kFALSE)), fCalibrationData(new AliMUONCalibrationData(AliCDBManager::Instance()->GetRun())), fTriggerProcessor(new AliMUONTriggerElectronics(fCalibrationData)), @@ -91,8 +89,6 @@ AliMUONTriggerQADataMakerRec::~AliMUONTriggerQADataMakerRec() delete fDigitStore; delete fTriggerProcessor; delete fCalibrationData; - delete fNumberOf34Dec; - delete fNumberOf44Dec; } //____________________________________________________________________________ @@ -153,18 +149,21 @@ void AliMUONTriggerQADataMakerRec::EndOfDetectorCycleRaws(Int_t /*specie*/, TObj TH1* hSummary = GetRawsData(AliMUONQAIndices::kTriggerErrorSummary); hSummary->SetBinContent(AliMUONQAIndices::kAlgoLocalYCopy+1,mean/192.); //put the mean of the % of YCopy error in the kTriggerError's corresponding bin - ((TH1F*)GetRawsData(AliMUONQAIndices::kTriggerLocalRatio4434))->Divide(fNumberOf44Dec,fNumberOf34Dec); + TH1F* hTriggerRatio = (TH1F*)GetRawsData(AliMUONQAIndices::kTriggerLocalRatio4434); + if ( hTriggerRatio ){ + hTriggerRatio->Divide(((TH1F*)GetRawsData(AliMUONQAIndices::kTriggerNumberOf44Dec)),((TH1F*)GetRawsData(AliMUONQAIndices::kTriggerNumberOf34Dec))); - FillRatio4434Histos(1); + FillRatio4434Histos(1); - //reset bins temporary used to store informations - ((TH1F*)GetRawsData(AliMUONQAIndices::kTriggerRatio4434AllEvents))->SetBinContent(0,0); - Int_t nbins = ((TH1F*)GetRawsData(AliMUONQAIndices::kTriggerRatio4434AllEvents))->GetNbinsX(); - ((TH1F*)GetRawsData(AliMUONQAIndices::kTriggerRatio4434AllEvents))->SetBinContent(nbins+1,0); + //reset bins temporary used to store informations + ((TH1F*)GetRawsData(AliMUONQAIndices::kTriggerRatio4434AllEvents))->SetBinContent(0,0); + Int_t nbins = ((TH1F*)GetRawsData(AliMUONQAIndices::kTriggerRatio4434AllEvents))->GetNbinsX(); + ((TH1F*)GetRawsData(AliMUONQAIndices::kTriggerRatio4434AllEvents))->SetBinContent(nbins+1,0); - ((TH1F*)GetRawsData(AliMUONQAIndices::kTriggerLocalRatio4434))->SetMaximum(1.1); - ((TH1F*)GetRawsData(AliMUONQAIndices::kTriggerRatio4434AllEvents))->SetMaximum(1.1); - ((TH1F*)GetRawsData(AliMUONQAIndices::kTriggerRatio4434SinceLastUpdate))->SetMaximum(1.1); + ((TH1F*)GetRawsData(AliMUONQAIndices::kTriggerLocalRatio4434))->SetMaximum(1.1); + ((TH1F*)GetRawsData(AliMUONQAIndices::kTriggerRatio4434AllEvents))->SetMaximum(1.1); + ((TH1F*)GetRawsData(AliMUONQAIndices::kTriggerRatio4434SinceLastUpdate))->SetMaximum(1.1); + } } //____________________________________________________________________________ @@ -232,7 +231,7 @@ void AliMUONTriggerQADataMakerRec::InitRaws() // Copy of previous histo for scaling purposes TH1F* histoCalibNorm = (TH1F*)histoCalib->Clone("hTriggerCalibSummary"); histoCalibNorm->SetTitle("MTR calibration summary"); - histoCalibNorm->SetOption("bar2"); + histoCalibNorm->SetOption("bartext0"); histoCalibNorm->GetYaxis()->SetTitle("Percentage per event (%)"); // Adding both histos after cloning to avoid problems with the expert bit Add2RawsList(histoCalib, AliMUONQAIndices::kTriggerCalibSummary, expert, !image, !saveCorr); @@ -290,19 +289,21 @@ void AliMUONTriggerQADataMakerRec::InitRaws() histo1D->GetYaxis()->SetTitle(errorAxisTitle.Data()); Add2RawsList(histo1D, AliMUONQAIndices::kTriggerErrorLocalTrigY, expert, !image, !saveCorr); - histo1D = new TH1F("hTriggerRatio4434Local", "Ratio4434Local",nbLocalBoard,0.5,(Float_t)nbLocalBoard+0.5); - histo1D->GetXaxis()->SetTitle(boardName.Data()); - histo1D->GetYaxis()->SetTitle("ratio 44/34"); - Add2RawsList(histo1D, AliMUONQAIndices::kTriggerLocalRatio4434, expert, !image, !saveCorr); - histo1D = new TH1F("hTriggerRatio4434AllEvents", "Ratio4434AllEvents",1,0,1); - histo1D->GetXaxis()->SetTitle("Event number"); - histo1D->GetYaxis()->SetTitle("ratio 44/34"); - histo1D->SetLineColor(4); - Add2RawsList(histo1D, AliMUONQAIndices::kTriggerRatio4434AllEvents, expert, !image, !saveCorr); - histo1D = new TH1F("hTriggerRatio4434SinceLastUpdate", "Ratio4434SinceLastUpdate",1,0,1); - histo1D->GetXaxis()->SetTitle("Event number"); - histo1D->GetYaxis()->SetTitle("ratio 44/34"); - Add2RawsList(histo1D, AliMUONQAIndices::kTriggerRatio4434SinceLastUpdate, expert, !image, !saveCorr); + if ( GetRecoParam()->GetEventSpecie() != AliRecoParam::kCalib ) { + histo1D = new TH1F("hTriggerRatio4434Local", "Ratio4434Local",nbLocalBoard,0.5,(Float_t)nbLocalBoard+0.5); + histo1D->GetXaxis()->SetTitle(boardName.Data()); + histo1D->GetYaxis()->SetTitle("ratio 44/34"); + Add2RawsList(histo1D, AliMUONQAIndices::kTriggerLocalRatio4434, expert, !image, !saveCorr); + histo1D = new TH1F("hTriggerRatio4434AllEvents", "Ratio4434AllEvents",1,0,1); + histo1D->GetXaxis()->SetTitle("Event number"); + histo1D->GetYaxis()->SetTitle("ratio 44/34"); + histo1D->SetLineColor(4); + Add2RawsList(histo1D, AliMUONQAIndices::kTriggerRatio4434AllEvents, expert, !image, !saveCorr); + histo1D = new TH1F("hTriggerRatio4434SinceLastUpdate", "Ratio4434SinceLastUpdate",1,0,1); + histo1D->GetXaxis()->SetTitle("Event number"); + histo1D->GetYaxis()->SetTitle("ratio 44/34"); + Add2RawsList(histo1D, AliMUONQAIndices::kTriggerRatio4434SinceLastUpdate, expert, !image, !saveCorr); + } histo1D = new TH1F("hTriggerErrorLocal2RegionalLPtLSB", "ErrorLocal2RegionalLPtLSB",nbLocalBoard,0.5,(Float_t)nbLocalBoard+0.5); histo1D->GetXaxis()->SetTitle(boardName.Data()); @@ -346,7 +347,7 @@ void AliMUONTriggerQADataMakerRec::InitRaws() histoAlgoErr->SetFillColor(kBlue); // Copy of previous histo for scaling purposes TH1F* histoAlgoErrNorm = (TH1F*)histoAlgoErr->Clone("hTriggerAlgoErrors"); - histoAlgoErrNorm->SetOption("bar2"); + histoAlgoErrNorm->SetOption("bartext0"); histoAlgoErrNorm->SetTitle("Trigger algorithm errors"); histoAlgoErrNorm->GetYaxis()->SetTitle("% of events with errors"); // Adding both histos after cloning to avoid problems with the expert bit @@ -384,7 +385,7 @@ void AliMUONTriggerQADataMakerRec::InitRaws() // Copy of previous histo for scaling purposes TH1F* histoROerrNorm = (TH1F*)histoROerr->Clone("hTriggerReadoutErrors"); histoROerrNorm->SetTitle("Trigger Read-Out errors"); - histoROerrNorm->SetOption("bar2"); + histoROerrNorm->SetOption("bartext0"); histoROerrNorm->GetYaxis()->SetTitle("% of errors per event"); // Adding both histos after cloning to avoid problems with the expert bit Add2RawsList(histoROerr, AliMUONQAIndices::kTriggerReadOutErrors, expert, !image, !saveCorr); @@ -400,9 +401,9 @@ void AliMUONTriggerQADataMakerRec::InitRaws() // Copy of previous histo for scaling purposes TH1F* histoGlobalMultNorm = (TH1F*)histoGlobalMult->Clone("hTriggerGlobalOutMultiplicityPerEvt"); histoGlobalMultNorm->SetTitle("Trigger global outputs multiplicity per event"); - histoGlobalMultNorm->SetOption("bar2"); - histoGlobalMultNorm->SetBarWidth(0.5); - histoGlobalMultNorm->SetBarOffset(0.25); + histoGlobalMultNorm->SetOption("bartext0"); + //histoGlobalMultNorm->SetBarWidth(0.5); + //histoGlobalMultNorm->SetBarOffset(0.25); histoGlobalMultNorm->GetYaxis()->SetTitle("Triggers per event"); // Adding both histos after cloning to avoid problems with the expert bit Add2RawsList(histoGlobalMult, AliMUONQAIndices::kTriggerGlobalOutput, expert, !image, !saveCorr); @@ -414,10 +415,20 @@ void AliMUONTriggerQADataMakerRec::InitRaws() histo1D->GetYaxis()->SetTitle("Number of analyzed events"); Add2RawsList(histo1D, AliMUONQAIndices::kTriggerRawNAnalyzedEvents, expert, !image, !saveCorr); - fNumberOf34Dec = new TH1F("hTriggerNumberOf34Dec", "hNumberOf34Dec",nbLocalBoard,0.5,(Float_t)nbLocalBoard+0.5); - fNumberOf34Dec->SetDirectory(0); // Detach histo from file to avoid double delete - fNumberOf44Dec = new TH1F("hTriggerNumberOf44Dec", "hNumberOf44Dec",nbLocalBoard,0.5,(Float_t)nbLocalBoard+0.5); - fNumberOf44Dec->SetDirectory(0); // Detach histo from file to avoid double delete + if ( GetRecoParam()->GetEventSpecie() != AliRecoParam::kCalib ) { + histo1D = new TH1F("hTriggerNumberOf34Dec", "Number of 3/4",nbLocalBoard,0.5,(Float_t)nbLocalBoard+0.5); + histo1D->GetXaxis()->SetTitle(boardName.Data()); + histo1D->GetYaxis()->SetTitle("Number of 3/4"); + Add2RawsList(histo1D, AliMUONQAIndices::kTriggerNumberOf34Dec, expert, !image, !saveCorr); + + histo1D = new TH1F("hTriggerNumberOf44Dec", "Number of 4/4",nbLocalBoard,0.5,(Float_t)nbLocalBoard+0.5); + histo1D->GetXaxis()->SetTitle(boardName.Data()); + histo1D->GetYaxis()->SetTitle("Number of 4/4"); + Add2RawsList(histo1D, AliMUONQAIndices::kTriggerNumberOf44Dec, expert, !image, !saveCorr); + } + + Add2RawsList(new TH1F("hTriggerIsThere","trigger is there",1,0,1),AliMUONQAIndices::kTriggerIsThere,kTRUE,kFALSE,kFALSE); + } //__________________________________________________________________ @@ -683,6 +694,7 @@ void AliMUONTriggerQADataMakerRec::MakeRaws(AliRawReader* rawReader) } // NextDDL if ( ! containTriggerData ) return; + GetRawsData(AliMUONQAIndices::kTriggerRawNAnalyzedEvents)->Fill(1.); nDeadLocal += AliMUONConstants::NTriggerCircuit() - countNotifiedBoards; @@ -1090,8 +1102,8 @@ UChar_t AliMUONTriggerQADataMakerRec::RawTriggerInGlobal2OutGlobal(UInt_t global } //____________________________________________________________________________ -void AliMUONTriggerQADataMakerRec::RawTriggerMatchOutLocal(AliMUONVTriggerStore& inputTriggerStore, - AliMUONVTriggerStore& recoTriggerStore) +void AliMUONTriggerQADataMakerRec::RawTriggerMatchOutLocal(const AliMUONVTriggerStore& inputTriggerStore, + const AliMUONVTriggerStore& recoTriggerStore) { // /// Match data and reconstructed Local Trigger decision @@ -1158,8 +1170,8 @@ void AliMUONTriggerQADataMakerRec::RawTriggerMatchOutLocal(AliMUONVTriggerStore& if ( GetRecoParam()->GetEventSpecie() != AliRecoParam::kCalib ) { Bool_t is34 = ( recoLocalTrigger->GetLoDecision() != 0 ); Bool_t is44 = fTriggerProcessor->ModifiedLocalResponse(loCircuit, respBendPlane, respNonBendPlane, kTRUE); - if ( is34 ) fNumberOf34Dec->Fill(loCircuit); - if ( is44 ) fNumberOf44Dec->Fill(loCircuit); + if ( is34 ) ((TH1F*)GetRawsData(AliMUONQAIndices::kTriggerNumberOf34Dec))->Fill(loCircuit); + if ( is44 ) ((TH1F*)GetRawsData(AliMUONQAIndices::kTriggerNumberOf44Dec))->Fill(loCircuit); if ( is44 && ! is34 ) AliWarning("Event satisfies the 4/4 conditions but not the 3/4"); @@ -1309,13 +1321,14 @@ void AliMUONTriggerQADataMakerRec::FillRatio4434Histos(Int_t evtInterval) if (numEvent % evtInterval != 0) return; - Float_t totalNumberOf44 = fNumberOf44Dec->GetSumOfWeights(); - Float_t totalNumberOf34 = fNumberOf34Dec->GetSumOfWeights(); + Float_t totalNumberOf44 = ((TH1F*)GetRawsData(AliMUONQAIndices::kTriggerNumberOf44Dec))->GetSumOfWeights(); + Float_t totalNumberOf34 = ((TH1F*)GetRawsData(AliMUONQAIndices::kTriggerNumberOf34Dec))->GetSumOfWeights(); if ( totalNumberOf34 == 0 ) return; TH1F* histoAllEvents = (TH1F*)GetRawsData(AliMUONQAIndices::kTriggerRatio4434AllEvents); + if ( ! histoAllEvents ) return; Int_t nbins = histoAllEvents->GetNbinsX(); Float_t maxBin = histoAllEvents->GetXaxis()->GetBinLowEdge(nbins+1); @@ -1329,7 +1342,9 @@ void AliMUONTriggerQADataMakerRec::FillRatio4434Histos(Int_t evtInterval) Float_t numOf34Update = totalNumberOf34 - previousNumOf34; Float_t numOf44Update = totalNumberOf44 - previousNumOf44; - if ( numOf34Update == 0 && numOf44Update == 0 ) + // Not enough new tracks since last update + //if ( numOf34Update == 0 && numOf44Update == 0 ) + if ( numOf34Update < evtInterval - 1 ) return; Int_t newNbins = ( (Int_t)maxBin % fgkUpdateRatio4434 ) ? nbins : nbins+1; @@ -1366,11 +1381,12 @@ void AliMUONTriggerQADataMakerRec::FillRatio4434Histos(Int_t evtInterval) if(numOf34Update!=0){ ratio4434Update = numOf44Update/numOf34Update; - if ( numOf44Update > numOf34Update ) - AliWarning("Number of 4/4 is higher than number of 3/4"); + if ( numOf44Update > numOf34Update ){ + AliWarning(Form("Number of 4/4 (%f) is higher than number of 3/4 (%f)", numOf44Update, numOf34Update)); + } errorRatio4434Update = ProtectedSqrt(numOf44Update*(1-ratio4434Update))/numOf34Update; } - + ((TH1F*)GetRawsData(AliMUONQAIndices::kTriggerRatio4434SinceLastUpdate))->SetBinContent(newNbins,ratio4434Update); ((TH1F*)GetRawsData(AliMUONQAIndices::kTriggerRatio4434SinceLastUpdate))->SetBinError(newNbins,errorRatio4434Update);