+ // offset for online histogram numbering
+ Int_t shift = fGenRawsOffset[fAliITSQADataMakerRec->GetEventSpecie()];
+
+
+ Float_t range[2] = {-0.5,1199.5};
+
+// ********** online histo booking (shift is added) *********************
+
+ //0
+ TH1F *hFiredChips = new TH1F("SPDFiredChips_OnlineSPD","FiredChips - SPD",fgkSPDchips,range[0],range[1]);
+ hFiredChips->GetXaxis()->SetTitle("chip index (eq*60 + hs*10 + chip)");
+ hFiredChips->GetYaxis()->SetTitle("Fired Chip yield");
+ rv = fAliITSQADataMakerRec->Add2RawsList(hFiredChips, 0+shift, expert, !image, !saveCorr);
+ fSPDhRawsTask++;
+ // 1
+ TH1F *hFastOrFiredChips = new TH1F("SPDFastOrFiredChips_OnlineSPD","FastOr-Fired Chips (if pixel hit present) - SPD",fgkSPDchips,range[0],range[1]);
+ hFastOrFiredChips->GetXaxis()->SetTitle("chip index (eq*60 + hs*10 + chip)");
+ hFastOrFiredChips->GetYaxis()->SetTitle("FastOr-Fired Chip yield (per event)");
+ rv = fAliITSQADataMakerRec->Add2RawsList(hFastOrFiredChips, 1+shift, expert, !image, !saveCorr);
+ fSPDhRawsTask++;
+// 2
+ TH1F *hFastOrMissing = new TH1F("SPDFastOrMissing_OnlineSPD","Missing FastOr signal - SPD",fgkSPDchips,range[0],range[1]);
+ hFastOrMissing->GetXaxis()->SetTitle("chip index (eq*60 + hs*10 + chip)");
+ hFastOrMissing->GetYaxis()->SetTitle("Missing Fast Or yield");
+ rv = fAliITSQADataMakerRec->Add2RawsList(hFastOrMissing, 2+shift, expert, !image, !saveCorr);
+ fSPDhRawsTask++;
+// 3
+ TH1F *hFastOrNoisy = new TH1F("SPDFastOrNoisy_OnlineSPD","Noisy (no pixel hit present) FastOr signal - SPD",fgkSPDchips,range[0],range[1]);
+ hFastOrNoisy->GetXaxis()->SetTitle("chipkey");
+ hFastOrNoisy->GetYaxis()->SetTitle("Noisy Fast Or");
+ rv = fAliITSQADataMakerRec->Add2RawsList(hFastOrNoisy, 3+shift, expert, !image, !saveCorr);
+ fSPDhRawsTask++;
+// 4
+ TH1F *hFastOrCumulative = new TH1F("SPDFastOrCumulative_OnlineSPD","Cumulative FastOr signal - SPD",fgkSPDchips,range[0],range[1]);
+ hFastOrCumulative->GetXaxis()->SetTitle("chipkey");
+ hFastOrCumulative->GetYaxis()->SetTitle("Cumulative Fast Or yield");
+ rv = fAliITSQADataMakerRec->Add2RawsList(hFastOrCumulative, 4+shift, expert, !image, !saveCorr);
+ fSPDhRawsTask++;
+// 5
+
+ TH2I *hSPDChipsMEB = new TH2I("SPDChipsMEB_OnlineSPD","Chips with MEB problem - SPD",60,-0.5,59.5,20,-0.2,19.5);
+ // hSPDChipsMEB->GetXaxis()->SetTitle("Stave");
+ hSPDChipsMEB->GetXaxis()->SetNdivisions(60,kFALSE);
+ hSPDChipsMEB->GetYaxis()->SetTitle("SIDE C -> SIDE A Chip");
+ hSPDChipsMEB->GetYaxis()->SetNdivisions(20,kFALSE);
+ //hSPDChipsMEB->SetOption("COLZ");
+ hSPDChipsMEB->SetOption("text");
+ hSPDChipsMEB->UseCurrentStyle();
+ for(Int_t ibinx =0; ibinx< hSPDChipsMEB->GetNbinsX(); ibinx++){
+ if(ibinx%6==0) hSPDChipsMEB->GetXaxis()->SetBinLabel(ibinx+1,Form("Sector %i__%i",ibinx/6,ibinx%6));
+ else hSPDChipsMEB->GetXaxis()->SetBinLabel(ibinx+1,Form("%i",ibinx%6));
+ }
+ for(Int_t ibiny =0; ibiny< hSPDChipsMEB->GetNbinsY(); ibiny++){
+ if(ibiny < 10) hSPDChipsMEB->GetYaxis()->SetBinLabel(ibiny+1,Form("%i",ibiny));
+ else hSPDChipsMEB->GetYaxis()->SetBinLabel(ibiny+1,Form("%i",19-ibiny));
+ }
+ rv = fAliITSQADataMakerRec->Add2RawsList(hSPDChipsMEB, 5+shift, !expert, image, !saveCorr);
+ fSPDhRawsTask++;
+// 6
+ TH2F *hFastOrCorrelation = new TH2F("SPDFastOrCorrelation_OnlineSPD","Fast Or multiplicity correlation - SPD",100,0.,100.,100,0,100);
+ hFastOrCorrelation->GetXaxis()->SetTitle("Layer 1");
+ hFastOrCorrelation->GetYaxis()->SetTitle("Layer 2");
+ hFastOrCorrelation->SetOption("COLZ");
+ hFastOrCorrelation->UseCurrentStyle();
+ rv = fAliITSQADataMakerRec->Add2RawsList(hFastOrCorrelation, 6+shift, !expert, image, !saveCorr);
+ fSPDhRawsTask++;
+// 7
+ TH1F *hFastOrEfficiency, *hFastOrMissingRatio, *hFastOrNoisyRatio;
+
+ hFastOrEfficiency = new TH1F("SPDFastOrEfficiency_OnlineSPD","FastOr Efficiency : FastOr / fired chips (per event) - SPD",fgkSPDchips,range[0],range[1]);
+ hFastOrEfficiency->SetFillColor(kBlue);
+ hFastOrEfficiency->SetMaximum(1.05);
+ hFastOrEfficiency->GetXaxis()->SetTitle("chip index [eq*60+hs*10+chip]");
+ hFastOrEfficiency->GetYaxis()->SetTitle("FastOr Efficiency (per event)");
+ rv = fAliITSQADataMakerRec->Add2RawsList(hFastOrEfficiency, 7+shift, expert, !image, !saveCorr);
+ fSPDhRawsTask++;
+// 8
+ hFastOrMissingRatio = new TH1F("SPDFastOrMissingRatio_OnlineSPD"," Missing FastOr / fired chips (per event) - SPD)",fgkSPDchips,range[0],range[1]);
+ hFastOrMissingRatio->SetFillColor(kBlue);
+ hFastOrMissingRatio->SetMaximum(1.05);
+ hFastOrMissingRatio->GetXaxis()->SetTitle("chip index [eq*60+hs*10+chip]");
+ hFastOrMissingRatio->GetYaxis()->SetTitle("ratio of Missing FastOr (per event)");
+ rv = fAliITSQADataMakerRec->Add2RawsList(hFastOrMissingRatio, 8+shift, expert, !image, !saveCorr);
+ fSPDhRawsTask++;
+// 9
+ hFastOrNoisyRatio = new TH1F("SPDFastOrNoisyRatio_OnlineSPD","Noisy Fast Or / fired chips (per event) - SPD",fgkSPDchips,range[0],range[1]);
+ hFastOrNoisyRatio->SetFillColor(kBlue);
+ hFastOrNoisyRatio->SetMaximum(1.05);
+ hFastOrNoisyRatio->GetXaxis()->SetTitle("chip index [eq*60+hs*10+chip]");
+ hFastOrNoisyRatio->GetYaxis()->SetTitle("ratio of Noisy FastOr (per event)");
+ rv = fAliITSQADataMakerRec->Add2RawsList(hFastOrNoisyRatio, 9+shift, expert, !image, !saveCorr);
+ fSPDhRawsTask++;
+// 10
+ TH2F *herrorsAll = new TH2F("SPDErrorsAll_OnlineSPD","Error codes - SPD",20,-0.5,19.5,22,-0.5,21.5);
+ herrorsAll->GetXaxis()->SetTitle("DDL");
+ herrorsAll->GetYaxis()->SetTitle("Error Type");
+// herrorsAll->SetOption("COLZ");
+ herrorsAll->SetOption("text");
+ herrorsAll->UseCurrentStyle();
+ rv = fAliITSQADataMakerRec->Add2RawsList(herrorsAll, kAmoreFoOffset+shift, !expert, image, !saveCorr);
+ fSPDhRawsTask++;
+//11-30
+ TH1F * herrors[20];
+ for (Int_t iEq=0; iEq<20; iEq++) {
+ snprintf(name,49,"SPDErrors_Eq%d_OnlineSPD",iEq+1);
+ snprintf(title,49,"Error codes - SPD Eq %d",iEq+1);
+ herrors[iEq] = new TH1F (name,title,fAdvLogger->GetNrErrorCodes(),0,fAdvLogger->GetNrErrorCodes());
+ herrors[iEq]->SetXTitle("Error Code");
+ herrors[iEq]->SetYTitle("Nr of errors");
+ rv = fAliITSQADataMakerRec->Add2RawsList(herrors[iEq], 11+shift+iEq, expert, !image, !saveCorr);
+ fSPDhRawsTask++;
+ }
+// ********* offline histo booking (offset is added) ****************************