]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Changes for Pb-Pb DQM QA
authorcoppedis <coppedis@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 30 Sep 2011 12:46:23 +0000 (12:46 +0000)
committercoppedis <coppedis@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 30 Sep 2011 12:46:23 +0000 (12:46 +0000)
ZDC/AliZDCQAChecker.cxx
ZDC/AliZDCQADataMakerRec.cxx

index 109afdefd717953b2784045d59f2603f342823da..c6a4a9cbe24cf9b99813d5e7454385731248fcd6 100644 (file)
@@ -73,6 +73,7 @@ void AliZDCQAChecker::Check(Double_t *  test, AliQAv1::ALITASK_t index, TObjArra
       Float_t sumADCZNA=0., sumADCZNC=0., sumADCZPA=0., sumADCZPC=0.;
       Float_t adcCZNA=0., adcCZNC=0., adcCZPA=0., adcCZPC=0.;
       Float_t adcQZNA=0., adcQZNC=0., adcQZPA=0., adcQZPC=0.;
+      Int_t nentries = -99;
       
       while((hdata = dynamic_cast<TH1 *>(next()))){
         if(hdata){ 
@@ -198,6 +199,7 @@ void AliZDCQAChecker::Check(Double_t *  test, AliQAv1::ALITASK_t index, TObjArra
            
            Bool_t iDetPM = kTRUE;
            // --- Checks
+           if(irawHisto==16) nentries = Int_t (hdata->GetEntries());
            if(irawHisto==18){ 
              Float_t resADC=0.;
              for(int ibin=1; ibin<=hdata->GetNbinsX(); ibin++){
@@ -215,13 +217,15 @@ void AliZDCQAChecker::Check(Double_t *  test, AliQAv1::ALITASK_t index, TObjArra
                 test[specie] += res;
                 count++;
              }
+             if(nentries != -99) messages.Add(new TObjString(Form("#entries %d",nentries)));
+             else messages.Add(new TObjString("#entries not known"));
+             //
              Float_t rv=1.;
              if(hdata->GetNbinsX() != 0) rv = resADC/hdata->GetNbinsX();
              if(rv == 1.) messages.Add(new TObjString("ADCs are OK!")); 
              else if(iDetPM==kFALSE){
-               messages.Add(new TObjString("Problem with ADCs!"));
-                messages.Add(new TObjString("IF THIS IS NOT A TECHNICAL"));
-                messages.Add(new TObjString("OR A STANDALONE_PEDESTAL RUN"));
+               messages.Add(new TObjString("Problem with some ADC!"));
+                messages.Add(new TObjString("IF THIS IS A PHYSICS RUN"));
              }
              else if(iDetPM==kTRUE) messages.Add(new TObjString("Minor problem with ADCs"));
              SetupHisto(messages, *hdata, rv);
@@ -249,7 +253,7 @@ void AliZDCQAChecker::Check(Double_t *  test, AliQAv1::ALITASK_t index, TObjArra
              else if(rv<1. && rv>0.75) messages.Add(new TObjString("Minor problem with TDCs"));
              else{
                messages.Add(new TObjString("Serious problem in ZDC timing"));
-                messages.Add(new TObjString("IF THIS IS NOT A TECHNICAL RUN"));
+                messages.Add(new TObjString("IF THIS IS A PHYSICS RUN"));
              }
              SetupHisto(messages, *hdata, rv);
            }
@@ -379,7 +383,7 @@ void AliZDCQAChecker::Check(Double_t *  test, AliQAv1::ALITASK_t index, TObjArra
     // ====================================================================
     //         Checks for A-A events
     // ====================================================================
-    else if (AliRecoParam::ConvertIndex(specie) == AliRecoParam::kHighMult) {
+    if (AliRecoParam::ConvertIndex(specie) == AliRecoParam::kHighMult) {
       if(list[specie]->GetEntries()==0){  
         AliWarning("\t The list to be checked is empty!");
         return ;
@@ -397,6 +401,7 @@ void AliZDCQAChecker::Check(Double_t *  test, AliQAv1::ALITASK_t index, TObjArra
       Float_t sumADCZNA=0., sumADCZNC=0., sumADCZPA=0., sumADCZPC=0.;
       Float_t adcCZNA=0., adcCZNC=0., adcCZPA=0., adcCZPC=0.;
       Float_t adcQZNA=0., adcQZNC=0., adcQZPA=0., adcQZPC=0.;
+      Int_t nentries=-99;
       
       while((hdata = dynamic_cast<TH1 *>(next()))){
         if(hdata){ 
@@ -561,6 +566,7 @@ void AliZDCQAChecker::Check(Double_t *  test, AliQAv1::ALITASK_t index, TObjArra
            
            Bool_t iDetPM = kTRUE;
            // --- Checks
+           if(irawHisto==16) nentries = Int_t (hdata->GetEntries());
            if(irawHisto==18){ 
              Float_t resADC=0.;
              for(int ibin=1; ibin<=hdata->GetNbinsX(); ibin++){
@@ -577,26 +583,31 @@ void AliZDCQAChecker::Check(Double_t *  test, AliQAv1::ALITASK_t index, TObjArra
                 test[specie] += res;
                 count++;
              }
+             if(nentries != -99) messages.Add(new TObjString(Form("#entries %d",nentries)));
+             else messages.Add(new TObjString("#entries not known"));
+             //
              Float_t rv=1.;
              if(hdata->GetNbinsX() != 0) rv = resADC/hdata->GetNbinsX();
-             if(rv == 1.) messages.Add(new TObjString("ADCs are OK!")); 
+             if(rv > 0.98) messages.Add(new TObjString("ADCs are OK!")); 
              else if(iDetPM==kFALSE){
                messages.Add(new TObjString("Problem with ADCs!"));
-                messages.Add(new TObjString("IF THIS IS NOT A TECHNICAL RUN"));
+                messages.Add(new TObjString("IF THIS IS A PHYSICS RUN"));
              }
              else if(iDetPM==kTRUE) messages.Add(new TObjString("Minor problem with ADCs"));
              SetupHisto(messages, *hdata, rv);
            }
            else if(irawHisto==19){
-             Double_t refTDCs[6] = {-322.5,-319.1,-320.9,-319.2,-319.7,-319.2};
+             // Reference values from RUN 137161
+             Double_t refTDCs[6] = {-320.7,-319.0,-318.6,-319.9,-321.3,-320.8};
              Float_t resTDC=0.;
              for(int ibin=1; ibin<=hdata->GetNbinsX(); ibin++){
-                if(TMath::Abs((hdata->GetBinContent(ibin))-refTDCs[ibin-1])<4.){
+                if(TMath::Abs((hdata->GetBinContent(ibin))-refTDCs[ibin-1])<3.){
                   res=1.;
                 }
-                else{
-                  res=0.5;
+                else if(TMath::Abs((hdata->GetBinContent(ibin))-refTDCs[ibin-1])<4.){
+                  res=0.8;
                 }
+                else res=0.5;
                 //
                 resTDC += res;
                 test[specie] += res;
@@ -605,10 +616,10 @@ void AliZDCQAChecker::Check(Double_t *  test, AliQAv1::ALITASK_t index, TObjArra
              Float_t rv=1.;
              if(hdata->GetNbinsX() != 0) rv = resTDC/hdata->GetNbinsX();
              if(rv == 1.) messages.Add(new TObjString("TDCs are OK!")); 
-             else if(rv<1 && rv>0.9) messages.Add(new TObjString("Minor problem with TDCs"));
+             else if(rv<1 && rv>0.75) messages.Add(new TObjString("Minor problem with TDCs"));
              else{
                messages.Add(new TObjString("Serious problem in ZDC timing"));
-                messages.Add(new TObjString("IF THIS IS NOT A TECHNICAL RUN"));
+                messages.Add(new TObjString("IF THIS IS A PHYSICS RUN"));
              }
              SetupHisto(messages, *hdata, rv);
            }
@@ -779,15 +790,15 @@ void AliZDCQAChecker::Check(Double_t *  test, AliQAv1::ALITASK_t index, TObjArra
     // ====================================================================
     //         Checks for Calibration events
     // ====================================================================
-    else if (AliRecoParam::ConvertIndex(specie) == AliRecoParam::kCalib) {
-      AliWarning(Form("\n\t No check implemented in ZDC QA for %s task\n",taskName)); 
+    if (AliRecoParam::ConvertIndex(specie) == AliRecoParam::kCalib) {
+      AliWarning(Form("\n\t No check implemented in ZDC QA for %s task in CALIBRATION events\n",taskName)); 
       return ;
     } // Calibration
     // ====================================================================
     //         Checks for cosmic events
     // ====================================================================
     else if (AliRecoParam::ConvertIndex(specie) == AliRecoParam::kCosmic) {
-      AliWarning(Form("\n\t No check needed in ZDC QA for %s task\n",taskName)); 
+      AliWarning(Form("\n\t No check needed in ZDC QA for %s task in COSMIC events\n",taskName)); 
       return ; 
     } // Cosmic
     if(TMath::Abs(count)>1.e-10) test[specie] = test[specie]/count;
@@ -818,17 +829,17 @@ void AliZDCQAChecker::SetupHisto(const TObjArray& messages, TH1& histo, Float_t&
     color = kGreen;
     defaultText = "Everything is fine!";
   }  
-  else if(code<1. && code>=0.9){  
+  else if(code<1. && code>=0.85){  
     color = kYellow;
     defaultText = "To be monitored in next runs";
   }
-  else if(code<0.9 && code>=0.6){
+  else if(code<0.85 && code>=0.6){
     color = kOrange;
     defaultText = "notify the expert DURING THE DAY!";
   }
   else if(code<0.6){
     color = kRed;
-    defaultText = "CALL THE EXPERT!!!!";
+    defaultText = "PLEASE CALL THE EXPERT!!!!";
   }
 
 
index 75d3be00e6f21cf59f3b1d7fde0d08cab00da1da..08785e0472201d626b20274f5904b24502389f71 100644 (file)
@@ -147,6 +147,7 @@ void AliZDCQADataMakerRec::InitRaws()
   TH1F * hZPCSpectrum = new TH1F("hZPCSpectrum","ZPC spectrum;Amplitude [ADC counts];Counts",100,0.,1200.);
   TH1F * hZNASpectrum = new TH1F("hZNASpectrum","ZNA spectrum;Amplitude [ADC counts];Counts",100,0.,1200.);
   TH1F * hZPASpectrum = new TH1F("hZPASpectrum","ZPA spectrum;Amplitude [ADC counts];Counts",100,0.,1200.);
+  // Booking from ch. 8 for checked signals to avoid running QA on pedestals!
   TH1F * hZEM1Spectrum = new TH1F("hZEM1Spectrum","ZEM1 spectrum;Amplitude [ADC counts];Counts",100,8., 1208.);
   TH1F * hZEM2Spectrum = new TH1F("hZEM2Spectrum","ZEM2 spectrum;Amplitude [ADC counts];Counts",100,8., 1208.);
   Add2RawsList(hZNCSpectrum, 0, expert, !image);
@@ -173,9 +174,9 @@ void AliZDCQADataMakerRec::InitRaws()
   Add2RawsList(hRawSumQZPC, 12, expert, !image);
   Add2RawsList(hRawSumQZPA, 13, expert, !image);
   
-  TH1F * hRawTDCZEM1 = new TH1F("hRawTDCZEM1", "Raw TDC ZEM1;TDC [ns]",160, -350., -310.);
+  TH1F * hRawTDCZEM1 = new TH1F("hRawTDCZEM1", "TDC ZEM1;TDC [ns]",160, -350., -310.);
   Add2RawsList(hRawTDCZEM1, 14, expert, !image);
-  TH1F * hRawTDCZPC = new TH1F("hRawTDCZPC", "Raw TDC ZPC;TDC [ns]",160, -350., -310.);
+  TH1F * hRawTDCZPC = new TH1F("hRawTDCZPC", "TDC ZPC;TDC [ns]",160, -350., -310.);
   Add2RawsList(hRawTDCZPC, 15, expert, !image);
   
   TProfile * hRawADCProfs = new TProfile("hRawADCProfs", "ADC profiles;ADC id;Mean ADC values",22,-0.5,21.5,10.,1210.,"");
@@ -190,13 +191,13 @@ void AliZDCQADataMakerRec::InitRaws()
 //  hRawTDCs->SetMaximum(-300); hRawTDCs->SetMinimum(-340);
   Add2RawsList(hRawTDCs, 19, !expert, image);
   
-  TH2F *hZNCrawCentr  = new TH2F("hZNCrawCentr", "Centroid in ZNC;X (cm);Y(cm)", 100, -5.,5.,100,-5.,5.);
-  Add2RawsList(hZNCrawCentr, 20, expert, !image);
-  TH2F *hZNArawCentr  = new TH2F("hZNArawCentr", "Centroid in ZNA;X (cm);Y(cm)", 100, -5.,5.,100,-5.,5.);
-  Add2RawsList(hZNArawCentr, 21, expert, !image);
+  TH2F *hZNCrawCentr  = new TH2F("hZNCrawCentr", "ZNC centroid;X (cm);Y(cm)", 100,-3.5,3.5,100,-3.5,3.5);
+  Add2RawsList(hZNCrawCentr, 20, expert, image);
+  TH2F *hZNArawCentr  = new TH2F("hZNArawCentr", "ZNA centroid;X (cm);Y(cm)", 100,-3.5,3.5,100,-3.5,3.5);
+  Add2RawsList(hZNArawCentr, 21, expert, image);
   
-  TH2F *hTimeZDC = new TH2F("fTimeZDC", "ZDC;TDC timing A+C vs C-A; events", 20,-30,30,120,-100,-40);
-  Add2RawsList(hTimeZDC, 22, expert, !image);
+  TH2F *hTimeZDC = new TH2F("hTimeZDC", "ZDC timing;Z_{vertex}/c (ns);time (ns)", 60,-30.,30.,120,-60,-60);
+  Add2RawsList(hTimeZDC, 22, !expert, image);
   //
   ClonePerTrigClass(AliQAv1::kRAWS); // this should be the last line
 }
@@ -434,16 +435,17 @@ void AliZDCQADataMakerRec::MakeRaws(AliRawReader *rawReader)
         
         // Stuff for pedestal subtraction
         if(quad != 5){ // ZDCs (not reference PTMs)
-         Float_t pedSubVal=-99.;
+         Float_t rawVal=-99., pedSubVal=-99.;
          if(det == 1){    
            pedindex = quad;
            if(gain == 0){
-             pedSubVal = (Float_t) (stream.GetADCValue()-meanPed[pedindex]); 
+             rawVal = (Float_t) (stream.GetADCValue());
+             pedSubVal = (Float_t) (rawVal-meanPed[pedindex]); 
              zncSignal  += pedSubVal; 
              isZNCFired = kTRUE;
              if(quad!=0){
                zncSumQ += pedSubVal;
-               if(pedSubVal>0.&& zncpmC>50.){
+               if(pedSubVal>0.&& zncpmC>7.){
                  wZNC = TMath::Power(pedSubVal, alpha);
                  numXZNC += x[quad-1]*wZNC;
                  numYZNC += y[quad-1]*wZNC;
@@ -462,7 +464,8 @@ void AliZDCQADataMakerRec::MakeRaws(AliRawReader *rawReader)
          else if(det == 2){ 
            pedindex = quad+5;
            if(gain == 0){
-             pedSubVal = (Float_t) (stream.GetADCValue()-meanPed[pedindex]); 
+             rawVal = (Float_t) (stream.GetADCValue());
+             pedSubVal = (Float_t) (rawVal-meanPed[pedindex]); 
              zpcSignal += pedSubVal; 
              isZPCFired = kTRUE;
              if(quad!=0) zpcSumQ += pedSubVal;
@@ -479,14 +482,16 @@ void AliZDCQADataMakerRec::MakeRaws(AliRawReader *rawReader)
            pedindex = quad+9;
            if(quad==1){     
              if(gain == 0){
-               pedSubVal = (Float_t) (stream.GetADCValue()-meanPed[pedindex]); 
+               rawVal = (Float_t) (stream.GetADCValue());
+               pedSubVal = (Float_t) (rawVal-meanPed[pedindex]); 
                FillRawsData(4,pedSubVal);
                FillRawsData(16,pedindex, pedSubVal);
              }
            }
            else if(quad==2){ 
              if(gain == 0){
-               pedSubVal = (Float_t) (stream.GetADCValue()-meanPed[pedindex]); 
+               rawVal = (Float_t) (stream.GetADCValue());
+               pedSubVal = (Float_t) (rawVal-meanPed[pedindex]); 
                FillRawsData(5,pedSubVal); 
                FillRawsData(16,pedindex, pedSubVal);
              }
@@ -495,12 +500,13 @@ void AliZDCQADataMakerRec::MakeRaws(AliRawReader *rawReader)
          else if(det == 4){       
            pedindex = quad+12;
            if(gain == 0){
-             pedSubVal = (Float_t) (stream.GetADCValue()-meanPed[pedindex]); 
+             rawVal = (Float_t) (stream.GetADCValue());
+             pedSubVal = (Float_t) (rawVal-meanPed[pedindex]); 
              znaSignal  += pedSubVal; 
              isZNAFired = kTRUE;
              if(quad!=0){
                znaSumQ += pedSubVal;
-               if(pedSubVal>0.&& znapmC>50.) {
+               if(pedSubVal>0.&& znapmC>7.) {
                  wZNA = TMath::Power(pedSubVal, alpha);
                  numXZNA += x[quad-1]*wZNA;
                  numYZNA += y[quad-1]*wZNA;
@@ -514,15 +520,13 @@ void AliZDCQADataMakerRec::MakeRaws(AliRawReader *rawReader)
              indZNA++;
              
              FillRawsData(16,pedindex, pedSubVal);
-             // RS: invalid
-             //GetRawsData(22)->SetBinContent(pedindex+1, GetRawsData(20)->GetBinContent(pedindex+1));
-             //GetRawsData(22)->SetBinError(pedindex+1, GetRawsData(20)->GetBinError(pedindex+1));
            }
          }
          else if(det == 5){
            pedindex = quad+17;
            if(gain == 0){
-             pedSubVal = (Float_t) (stream.GetADCValue()-meanPed[pedindex]); 
+             rawVal = (Float_t) (stream.GetADCValue());
+             pedSubVal = (Float_t) (rawVal-meanPed[pedindex]); 
              zpaSignal  += pedSubVal; 
              isZPAFired = kTRUE;
              if(quad!=0) zpaSumQ += pedSubVal;
@@ -533,9 +537,6 @@ void AliZDCQADataMakerRec::MakeRaws(AliRawReader *rawReader)
              indZPA++;
              
              FillRawsData(16,pedindex, pedSubVal);
-             // RS: invalid
-             //GetRawsData(22)->SetBinContent(pedindex+1, GetRawsData(20)->GetBinContent(pedindex+1));
-             //GetRawsData(22)->SetBinError(pedindex+1, GetRawsData(20)->GetBinError(pedindex+1));
            }
          }
                         
@@ -842,15 +843,16 @@ void AliZDCQADataMakerRec::EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArr
        TH1* h17 = GetRawsData(17, itc);
        TH1* h18 = GetRawsData(18, itc);
        TH1* h19 = GetRawsData(19, itc);
-       //      TH1* h20 = GetRawsData(20, itc);
-       //      TH1* h21 = GetRawsData(21, itc);
-       if (!h16 || !h17 || !h18 || !h19) {
-        AliWarning("AliZDCQADataMaker Rec -> Not all histogram for DQM found!"); 
+       TH1* h20 = GetRawsData(20, itc);
+       TH1* h21 = GetRawsData(21, itc);
+       TH1* h22 = GetRawsData(22, itc);
+       if (!h16 || !h17 || !h18 || !h19){
+        AliWarning("AliZDCQADataMakerRec -> RAW histos 16||17||18||19 not found!"); 
         AliWarning(Form("for specie %s and trigger class %s",
                         AliRecoParam::GetEventSpecieName(specie), AliQADataMaker::GetTrigClassName(itc)));
        }
        else{
-         h16->Draw("");
+         //h16->Draw("");
          for(Int_t ibin=1; ibin<=h16->GetNbinsX(); ibin++){
            h18->SetBinContent(ibin, h16->GetBinContent(ibin)); 
            h18->SetBinError(ibin, h16->GetBinError(ibin));
@@ -861,7 +863,22 @@ void AliZDCQADataMakerRec::EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArr
          }
          h18->SetLineColor(kBlue); h18->SetLineWidth(2);
          h19->SetLineColor(kAzure-3); h19->SetLineWidth(2);
+        }
+       if(!h20){
+        AliWarning("AliZDCQADataMakerRec -> RAW histos 20||21 not found!"); 
+        AliWarning(Form("for specie %s and trigger class %s",
+                        AliRecoParam::GetEventSpecieName(specie), AliQADataMaker::GetTrigClassName(itc)));
+       }
+       else{
+        h20->SetMarkerColor(kPink+7); 
+        h21->SetMarkerColor(kBlue+2);
+       }
+       if(!h22) {
+        AliWarning("AliZDCQADataMakerRec -> RAW histo 22 not found!"); 
+        AliWarning(Form("for specie %s and trigger class %s",
+                        AliRecoParam::GetEventSpecieName(specie), AliQADataMaker::GetTrigClassName(itc)));
        }
+       else h22->SetMarkerColor(kAzure+7);
       }
     } // loop over t
   } //  loop over species