32 #include <Riostream.h> 43 #include "AliEMCALGeometry.h" 45 #include "AliAODEvent.h" 46 #include "AliOADBContainer.h" 47 #include "AliDataFile.h" 58 gStyle->SetOptStat(0);
64 Int_t cellColumnAbs,cellRowAbs,trash,cellID;
65 TString summaryPDF=Form(
"./OADB_Summary.pdf");
69 cout<<
" o Open .txt file with run indices. Name = " << runList << endl;
70 TString RunPath = Form(
"./%s",runList.Data());
71 FILE *pFile = fopen(RunPath.Data(),
"r");
74 cout<<
"couldn't open file "<<RunPath<<
"!"<<endl;
80 std::vector<Int_t> RunIdVec;
83 ncols = fscanf(pFile,
" %d ",&q);
85 RunIdVec.push_back(q);
90 std::sort (RunIdVec.begin(), RunIdVec.end());
91 Int_t nRuns=RunIdVec.size();
96 cout<<
" o Alice path: "<<pathOADB<<endl;
97 cout<<
" o Alice path+: "<<pathOADB<<
"/OADB/EMCAL/EMCALBadChannels.root"<<endl;
100 AliOADBContainer *cont=
new AliOADBContainer(
"");
104 TFile *fbad=
new TFile(Form(
"%s/OADB/EMCAL/EMCALBadChannels.root",pathOADB.Data()),
"read");
105 if (!fbad || fbad->IsZombie())
107 cout<<
"couldn't find OADB container with help of pathOADB !"<<endl;
111 cont->InitFromFile(Form(
"%s/OADB/EMCAL/EMCALBadChannels.root",pathOADB.Data()),
"AliEMCALBadChannels");
116 TFile *fbad=
new TFile(AliDataFile::GetFileNameOADB(
"EMCAL/EMCALBadChannels.root").data(),
"read");
117 if (!fbad || fbad->IsZombie())
119 cout<<
"OADB/EMCAL/EMCALBadChannels.root was not found !"<<endl;
123 cont->InitFromFile(AliDataFile::GetFileNameOADB(
"EMCAL/EMCALBadChannels.root").data(),
"AliEMCALBadChannels");
133 cout<<
" o Geometry loaded for Run "<<RunIdVec.at(0)<<endl;
138 Int_t fNMaxCols = 48;
139 Int_t fNMaxRows = 24;
141 Int_t fNMaxColsAbs = 2*fNMaxCols;
144 histoName = Form(
"2DChannelMap_Flag_Bad");
145 TH2F *plot2D_Bad_OADB =
new TH2F(histoName,histoName,fNMaxColsAbs+1,-0.5,fNMaxColsAbs+0.5, fNMaxRowsAbs+1,-0.5,fNMaxRowsAbs+0.5);
147 plot2D_Bad_OADB->GetXaxis()->SetTitle(
"cell column (#eta direction)");
148 plot2D_Bad_OADB->GetYaxis()->SetTitle(
"cell row (#phi direction)");
149 histoName = Form(
"2DChannelMap_Flag_Dead");
150 TH2F *plot2D_Dead_OADB =
new TH2F(histoName,histoName,fNMaxColsAbs+1,-0.5,fNMaxColsAbs+0.5, fNMaxRowsAbs+1,-0.5,fNMaxRowsAbs+0.5);
152 plot2D_Dead_OADB->GetXaxis()->SetTitle(
"cell column (#eta direction)");
153 plot2D_Dead_OADB->GetYaxis()->SetTitle(
"cell row (#phi direction)");
154 histoName = Form(
"2DChannelMap_Flag_Good");
155 TH2F *plot2D_Good_OADB =
new TH2F(histoName,histoName,fNMaxColsAbs+1,-0.5,fNMaxColsAbs+0.5, fNMaxRowsAbs+1,-0.5,fNMaxRowsAbs+0.5);
157 plot2D_Good_OADB->GetXaxis()->SetTitle(
"cell column (#eta direction)");
158 plot2D_Good_OADB->GetYaxis()->SetTitle(
"cell row (#phi direction)");
162 TCanvas* C2 =
new TCanvas(
"CompareCanvas",
"Compare OADB to LocalFile",1400,500);
165 cout<<
" o Checking "<<nRuns<<
" runs: "<<endl;
166 std::vector<Int_t> RunsWithoutMap;
167 std::vector<Int_t> RunsWithMap;
169 Int_t dummyRun = 282367;
170 for(
Int_t iRun = 0; iRun < nRuns; iRun++)
173 if(iRun%5==0 && iRun!=0)cout<<
"."<<flush;
174 if(iRun%20==0)cout<<
" o Run No."<<RunIdVec.at(iRun)<<endl;
178 cout<<
"Error - No bad map for run Number "<<RunIdVec.at(iRun)<<
" online!!"<<endl;
179 cout<<
"Check if you have the latest EOS version and/or check the BadChannelTwiki"<<endl;
180 RunsWithoutMap.push_back(RunIdVec.at(iRun));
183 RunsWithMap.push_back(RunIdVec.at(iRun));
186 plot2D_Bad_OADB ->Reset();
187 plot2D_Dead_OADB->Reset();
188 plot2D_Good_OADB->Reset();
189 for(
Int_t iSM = 0; iSM < nSM; iSM++)
192 h[iSM]=(TH1C *)recal->FindObject(Form(
"EMCALBadChannelMap_Mod%d",iSM));
194 for(
Int_t column=0;column<48;column++)
196 for(
Int_t row=0;row<24;row++)
200 cellID=geom->GetAbsCellIdFromCellIndexes(iSM,inRow,inCol);
202 if(h[iSM]->GetBinContent(column,row)>1)
204 plot2D_Bad_OADB->SetBinContent(cellColumnAbs,cellRowAbs,1);
206 if(h[iSM]->GetBinContent(column,row)==1)
208 plot2D_Dead_OADB->SetBinContent(cellColumnAbs,cellRowAbs,1);
210 if(h[iSM]->GetBinContent(column,row)==0)
212 plot2D_Good_OADB->SetBinContent(cellColumnAbs,cellRowAbs,1);
218 TLatex*
text=
new TLatex(0.15,0.85,Form(
"Run Number %i",RunIdVec.at(iRun)));
219 text->SetTextSize(0.05);
221 text->SetTextColor(1);
222 text->SetTextAngle(0);
224 plot2D_Good_OADB->SetTitle(
"Good Cells OADB");
225 plot2D_Good_OADB->DrawCopy(
"colz");
228 plot2D_Dead_OADB->SetTitle(
"Dead Cells OADB");
229 plot2D_Dead_OADB->DrawCopy(
"colz");
231 plot2D_Bad_OADB->SetTitle(
"Bad Cells OADB");
232 plot2D_Bad_OADB->DrawCopy(
"colz");
237 if(iRun==0) C2 ->Print(Form(
"%s(",summaryPDF.Data()));
238 else if (iRun==nRuns-1) C2 ->Print(Form(
"%s)",summaryPDF.Data()));
239 else C2 ->Print(Form(
"%s",summaryPDF.Data()));
244 cout<<
"==Total Summary=="<<endl;
246 cout<<
"Runs with a bad map ("<<RunsWithMap.size()<<
"): "<<flush;
247 for(
Int_t i=0;i<(
Int_t)RunsWithMap.size();i++)
249 cout<<RunsWithMap.at(i)<<
","<<flush;
252 cout<<
"Runs without a bad map ("<<RunsWithoutMap.size()<<
"): "<<flush;
253 for(
Int_t i=0;i<(
Int_t)RunsWithoutMap.size();i++)
255 cout<<RunsWithoutMap.at(i)<<
","<<flush;
271 gStyle->SetOptStat(0);
277 Int_t cellColumnAbs,cellRowAbs,trash,cellID;
278 TString summaryPDF=Form(
"./AnalysisOutput/%s/Train_%i/OADB_Summary.pdf",period.Data(),trainNo);
282 cout<<
"o o o Open .txt file with run indices. Name = " << runList << endl;
283 TString RunPath = Form(
"./AnalysisInput/%s/Train_%i/%s",period.Data(),trainNo,runList.Data());
284 cout<<
"o o o Open .txt file with run indices = " << RunPath << endl;
285 FILE *pFile = fopen(RunPath.Data(),
"r");
288 cout<<
"couldn't open file "<<RunPath<<
"!"<<endl;
294 std::vector<Int_t> RunIdVec;
297 ncols = fscanf(pFile,
" %d ",&q);
299 RunIdVec.push_back(q);
304 std::sort (RunIdVec.begin(), RunIdVec.end());
305 Int_t nRuns=RunIdVec.size();
311 AliOADBContainer *cont=
new AliOADBContainer(
"");
312 cont->InitFromFile(Form(
"%s/EMCALBadChannels.root",fBasePath.Data()),
"AliEMCALBadChannels");
317 TString path = Form(
"./AnalysisOutput/%s/Train_%i/Version%s",period.Data(),trainNo,version.Data());
318 TString rootFileName= Form(
"%s_INT7_Histograms_V%s.root",period.Data(),version.Data());
319 TFile* outputRoot = TFile::Open(Form(
"%s/%s",path.Data(),rootFileName.Data()));
321 if(!outputRoot)cout<<
"File "<<outputRoot->GetName()<<
" does not exist"<<endl;
322 TH2F* h2DChannelMap_FlagBad =(
TH2F*)outputRoot->Get(
"2DChannelMap_Flag2");
323 TH2F* h2DChannelMap_FlagDead=(
TH2F*)outputRoot->Get(
"2DChannelMap_Flag1");
337 Int_t fNMaxCols = 48;
338 Int_t fNMaxRows = 24;
340 Int_t fNMaxColsAbs = 2*fNMaxCols;
343 histoName = Form(
"2DChannelMap_Flag_Bad");
344 TH2F *plot2D_Bad_OADB =
new TH2F(histoName,histoName,fNMaxColsAbs+1,-0.5,fNMaxColsAbs+0.5, fNMaxRowsAbs+1,-0.5,fNMaxRowsAbs+0.5);
346 plot2D_Bad_OADB->GetXaxis()->SetTitle(
"cell column (#eta direction)");
347 plot2D_Bad_OADB->GetYaxis()->SetTitle(
"cell row (#phi direction)");
348 histoName = Form(
"2DChannelMap_Flag_Dead");
349 TH2F *plot2D_Dead_OADB =
new TH2F(histoName,histoName,fNMaxColsAbs+1,-0.5,fNMaxColsAbs+0.5, fNMaxRowsAbs+1,-0.5,fNMaxRowsAbs+0.5);
351 plot2D_Dead_OADB->GetXaxis()->SetTitle(
"cell column (#eta direction)");
352 plot2D_Dead_OADB->GetYaxis()->SetTitle(
"cell row (#phi direction)");
356 TCanvas* C2 =
new TCanvas(
"CompareCanvas",
"Compare OADB to LocalFile",1400,800);
358 TLatex* textA =
new TLatex(0.5,0.8,
"If empty -> good!");
359 textA->SetTextSize(0.04);
360 textA->SetTextColor(1);
363 cout<<
"Checking "<<nRuns<<
" runs: "<<endl;
364 std::vector<Int_t> RunsWithoutMap;
365 std::vector<Int_t> RunsWithMap;
367 for(
Int_t iRun = 0; iRun < nRuns; iRun++)
370 if(iRun%5==0)cout<<
"."<<flush;
371 if(iRun%20==0)cout<<
"Run No."<<iRun<<endl;
375 cout<<
"Error - No bad map for run Number "<<RunIdVec.at(iRun)<<
" online!!"<<endl;
376 RunsWithoutMap.push_back(RunIdVec.at(iRun));
379 RunsWithMap.push_back(RunIdVec.at(iRun));
381 plot2D_Bad_OADB ->Reset();
382 plot2D_Dead_OADB->Reset();
383 for(
Int_t iSM = 0; iSM < nSM; iSM++)
386 h[iSM]=(TH1C *)recal->FindObject(Form(
"EMCALBadChannelMap_Mod%d",iSM));
388 for(
Int_t column=0;column<48;column++)
390 for(
Int_t row=0;row<24;row++)
394 cellID=geom->GetAbsCellIdFromCellIndexes(iSM,inRow,inCol);
396 if(h[iSM]->GetBinContent(column,row)>1)
398 plot2D_Bad_OADB->SetBinContent(cellColumnAbs,cellRowAbs,1);
400 if(h[iSM]->GetBinContent(column,row)==1)
402 plot2D_Dead_OADB->SetBinContent(cellColumnAbs,cellRowAbs,1);
408 TLatex*
text=
new TLatex(0.15,0.85,Form(
"Run Number %i",RunIdVec.at(iRun)));
409 text->SetTextSize(0.05);
411 text->SetTextColor(1);
412 text->SetTextAngle(0);
416 plot2D_Dead_OADB->SetTitle(
"Dead Cells OADB");
417 plot2D_Dead_OADB->DrawCopy(
"colz");
420 plot2D_Bad_OADB->SetTitle(
"Bad Cells OADB");
421 plot2D_Bad_OADB->DrawCopy(
"colz");
423 h2DChannelMap_FlagDead->SetTitle(
"Dead Cells LocalFile");
424 h2DChannelMap_FlagDead->DrawCopy(
"colz");
426 h2DChannelMap_FlagBad->SetTitle(
"Bad Cells LocalFile");
427 h2DChannelMap_FlagBad->DrawCopy(
"colz");
431 plot2D_Dead_OADB->SetTitle(
"OADB-Local File (Dead)");
432 plot2D_Dead_OADB->Add(h2DChannelMap_FlagDead,-1);
433 plot2D_Dead_OADB->DrawCopy(
"colz");
434 plot2D_Dead_OADB->Add(h2DChannelMap_FlagDead,+1);
437 plot2D_Bad_OADB->SetTitle(
"OADB-Local File (Bad)");
438 plot2D_Bad_OADB->Add(h2DChannelMap_FlagBad,-1);
439 plot2D_Bad_OADB->DrawCopy(
"colz");
440 plot2D_Bad_OADB->Add(h2DChannelMap_FlagBad,+1);
443 plot2D_Dead_OADB->SetTitle(
"OADB/Local File (Dead)");
444 plot2D_Dead_OADB->Divide(h2DChannelMap_FlagDead);
445 plot2D_Dead_OADB->DrawCopy(
"colz");
447 plot2D_Bad_OADB->SetTitle(
"OADB/Local File (Bad)");
448 plot2D_Bad_OADB->Divide(h2DChannelMap_FlagBad);
449 plot2D_Bad_OADB->DrawCopy(
"colz");
454 if(iRun==0) C2 ->Print(Form(
"%s(",summaryPDF.Data()));
455 else if (iRun==nRuns-1) C2 ->Print(Form(
"%s)",summaryPDF.Data()));
456 else C2 ->Print(Form(
"%s",summaryPDF.Data()));
458 cout<<
"==Total Summary=="<<endl;
460 cout<<
"Runs with a bad map ("<<RunsWithMap.size()<<
"): "<<flush;
461 for(
Int_t i=0;i<(
Int_t)RunsWithMap.size();i++)
463 cout<<RunsWithMap.at(i)<<
","<<flush;
466 cout<<
"Runs without a bad map ("<<RunsWithoutMap.size()<<
"): "<<flush;
467 for(
Int_t i=0;i<(
Int_t)RunsWithoutMap.size();i++)
469 cout<<RunsWithoutMap.at(i)<<
","<<flush;
482 gStyle->SetPadTopMargin(0.05);
483 gStyle->SetPadBottomMargin(0.18);
484 gStyle->SetPadRightMargin(0.05);
485 gStyle->SetPadLeftMargin(0.17);
486 gStyle->SetFrameFillColor(10);
491 const Int_t nBlocks=3;
505 TString ListName = Form(
"./AnalysisOutput/%s/Train_%i/%s",period.Data(),trainNo,cellList.Data());
506 cout<<
"o o o Open .txt suggested cell IDs. Name = " << ListName << endl;
507 FILE *pFile = fopen(ListName.Data(),
"r");
510 cout<<
"couldn't open file "<<ListName<<
"!"<<endl;
517 std::vector<Int_t> cellIdVec;
520 ncols = fscanf(pFile,
" %d ",&q);
523 cellIdVec.push_back(q);
528 std::sort (cellIdVec.begin(), cellIdVec.end());
529 Int_t nCells=cellIdVec.size();
530 cout<<
"o found "<<cellIdVec.size()<<
" cells in list"<<endl;
533 TString path = Form(
"./AnalysisOutput/%s/Train_%i",period.Data(),trainNo);
535 TFile* outputRoot[nBlocks];
536 TH2F* h2DAmp[nBlocks];
537 TH2F* h2DRatio[nBlocks];
538 TH2F* h2DCellTime[nBlocks];
540 for(
Int_t iBlock=0;iBlock<nBlocks;iBlock++)
565 if(iBlock==0)rootFileName[iBlock]= Form(
"Version0/%s_INT7_Histograms_V0.root",period.Data());
570 if(iBlock==0)rootFileName[iBlock]= Form(
"Version2/%s_INT7_Histograms_V2.root",period.Data());
574 if(iBlock==0)rootFileName[iBlock]=
"Version2/LHC16i_INT7_Histograms_V1.root";
575 if(iBlock==1)rootFileName[iBlock]=
"Version2/LHC16i_INT7_Histograms_V2.root";
579 if(iBlock==0)rootFileName[iBlock]=
"LHC16g_Block1_INT7_Histograms_V0.root";
580 if(iBlock==1)rootFileName[iBlock]=
"LHC16g_Block2_INT7_Histograms_V0.root";
581 if(iBlock==2)rootFileName[iBlock]=
"LHC16g_Block3_INT7_Histograms_V0.root";
583 cout<<
"Look for filename: "<<rootFileName[iBlock]<<endl;
584 cout<<
"in path: "<<path<<endl;
585 outputRoot[iBlock] = TFile::Open(Form(
"%s/%s",path.Data(),rootFileName[iBlock].Data()));
586 if(!outputRoot[iBlock])cout<<
"File "<<outputRoot[iBlock]->GetName()<<
" does not exist"<<endl;
587 else cout<<
"open File "<<outputRoot[iBlock]->GetName()<<endl;
588 h2DAmp[iBlock] =(
TH2F*)outputRoot[iBlock]->Get(
"hCellAmplitude");
589 h2DRatio[iBlock] =(
TH2F*)outputRoot[iBlock]->Get(
"ratio2DAmp");
590 h2DCellTime[iBlock]=(
TH2F*)outputRoot[iBlock]->Get(
"hCellTime");
591 if(!h2DAmp[iBlock])cout<<
"Problem 1"<<endl;
592 if(!h2DRatio[iBlock])cout<<
"Problem 2"<<endl;
593 if(!h2DCellTime[iBlock])cout<<
"Problem 3"<<endl;
596 TCanvas *c1 =
new TCanvas(1);
600 h2DAmp[0]->Draw(
"colz");
603 h2DRatio[0]->Draw(
"colz");
607 Int_t totalperCv = 5;
609 Int_t nPad = TMath::Sqrt(totalperCv);
610 Int_t nCv = nCells/totalperCv+1;
613 cout<<
" o create: "<<nCv<<
" Canvases with "<<nPad*nPad<<
" pads"<<endl;
615 TCanvas **cCompAll =
new TCanvas*[nCv];
616 for(
Int_t i=0;i<nCv;i++)
618 cCompAll[i] =
new TCanvas(TString::Format(
"CompareGoodAll%d", i), TString::Format(
"V) Both (%d/%d)", i+1, nCv), 1200,600);
622 TLegend *leg2 =
new TLegend(0.60,0.60,0.9,0.85);
623 cout<<
" o Fill Canvases with bad cells histograms"<<endl;
625 TH1D *htmpCellAllRuns[nBlocks];
626 TH1D *htmpCellTimeRuns[nBlocks];
627 TH1D *htmpCellRatioAllRuns[nBlocks];
628 cout<<
"cell number: "<<endl;
629 for(
Int_t icell = 0; icell < nCells; icell++)
631 Int_t cellID=cellIdVec.at(icell);
632 cout<<cellID<<
", "<<flush;
634 for(
Int_t iBlock=0;iBlock<nBlocks;iBlock++)
636 htmpCellAllRuns[iBlock] =h2DAmp[iBlock] ->ProjectionX(TString::Format(
"hIDProj%i_cell%d",iBlock, cellID), cellID+1, cellID+1);
637 SetHisto(htmpCellAllRuns[iBlock],Form(
"Energy [cell %i]",cellID),
"Number of Hits/Events");
638 htmpCellRatioAllRuns[iBlock] =h2DRatio[iBlock]->ProjectionX(TString::Format(
"hIDRProj%i_cell%d", iBlock, cellID), cellID+1, cellID+1);
639 SetHisto(htmpCellRatioAllRuns[iBlock],Form(
"Energy [cell %i]",cellID),
"No. Hits/av. No. Hits");
641 htmpCellTimeRuns[iBlock] =h2DCellTime[iBlock]->ProjectionX(TString::Format(
"hIDTimeProj%i_cell%d", iBlock, cellID), cellID+1, cellID+1);
642 SetHisto(htmpCellTimeRuns[iBlock],Form(
"Time, ns [cell %i]",cellID),
"Entries/Events");
645 cCompAll[(icell)/totalperCv]->cd(((icell)%5)+1)->SetLogy();
646 if(iBlock==0)htmpCellAllRuns[iBlock]->GetXaxis()->SetRangeUser(0,range);
647 if(iBlock==0)htmpCellAllRuns[iBlock]->Draw(
"hist");
648 if(iBlock==1)htmpCellAllRuns[iBlock]->SetLineColor(kBlue-7);
649 if(iBlock==2)htmpCellAllRuns[iBlock]->SetLineColor(kGreen-2);
650 if(iBlock==3)htmpCellAllRuns[iBlock]->SetLineColor(kViolet-1);
651 if(iBlock>0)htmpCellAllRuns[iBlock]->DrawCopy(
"same hist");
655 leg2->AddEntry(htmpCellAllRuns[iBlock],Form(
"Block%i",iBlock),
"l");
656 leg2->SetTextSize(0.07);
657 leg2->SetBorderSize(0);
658 leg2->SetFillColorAlpha(10, 0);
661 else if((icell)%5==0)
667 cCompAll[(icell)/totalperCv]->cd(((icell)%5)+6)->SetLogy();
668 if(iBlock==0)htmpCellRatioAllRuns[iBlock]->GetXaxis()->SetRangeUser(0,range);
669 if(iBlock==0)htmpCellRatioAllRuns[iBlock]->Draw(
"hist");
670 if(iBlock==1)htmpCellRatioAllRuns[iBlock]->SetLineColor(kBlue-7);
671 if(iBlock==2)htmpCellRatioAllRuns[iBlock]->SetLineColor(kGreen-2);
672 if(iBlock==3)htmpCellRatioAllRuns[iBlock]->SetLineColor(kViolet-1);
673 if(iBlock>0)htmpCellRatioAllRuns[iBlock]->DrawCopy(
"same hist");
676 cCompAll[(icell)/totalperCv]->cd(((icell)%5)+11)->SetLogy();
677 if(iBlock==0)htmpCellTimeRuns[iBlock]->GetXaxis()->SetRangeUser(tRange1,tRange2);
678 if(iBlock==0)htmpCellTimeRuns[iBlock]->Draw(
"hist");
679 if(iBlock==1)htmpCellTimeRuns[iBlock]->SetLineColor(kBlue-7);
680 if(iBlock==2)htmpCellTimeRuns[iBlock]->SetLineColor(kGreen-2);
681 if(iBlock==3)htmpCellTimeRuns[iBlock]->SetLineColor(kViolet-1);
682 if(iBlock>0)htmpCellTimeRuns[iBlock]->DrawCopy(
"same hist");
687 TString pdfName= Form(
"./AnalysisOutput/%s/Train_%i/%s_MoreBadCellsCandidates.pdf",period.Data(),trainNo,period.Data());
689 for(
Int_t can=0;can<nCv;can++)
697 cCompAll[can] ->Print(Form(
"%s(",pdfName.Data()));
701 cCompAll[can] ->Print(Form(
"%s",pdfName.Data()));
704 else if(can==(nCv-1))
707 cCompAll[can] ->Print(Form(
"%s)",pdfName.Data()));
712 cCompAll[can] ->Print(Form(
"%s",pdfName.Data()));
725 Histo->GetYaxis()->SetTitleOffset(1.1);
726 Histo->GetXaxis()->SetTitleOffset(1.1);
727 Histo->GetXaxis()->SetLabelSize(0.05);
728 Histo->GetYaxis()->SetLabelSize(0.05);
729 Histo->GetXaxis()->SetTitleSize(0.06);
730 Histo->GetYaxis()->SetTitleSize(0.06);
731 Histo->GetXaxis()->SetNdivisions(505);
732 Histo->GetYaxis()->SetNdivisions(505);
734 Histo->GetXaxis()->SetLabelFont(42);
735 Histo->GetYaxis()->SetLabelFont(42);
736 Histo->GetXaxis()->SetTitleFont(42);
737 Histo->GetYaxis()->SetTitleFont(42);
738 if(Xtitel!=
"")Histo->GetXaxis()->SetTitle(Xtitel);
739 if(Ytitel!=
"")Histo->GetYaxis()->SetTitle(Ytitel);
741 Histo->SetLineColor(1);
742 Histo->SetMarkerColor(1);
743 Histo->SetMarkerStyle(20);
744 Histo->SetMarkerSize(0.5);
756 C->Divide(Nx,Ny,0.000,0.000);
758 for (
Int_t i=0;i<Nx;i++)
760 C->cd(i+1)->SetLogy();
761 gPad->SetLeftMargin(lMargin);
762 gPad->SetRightMargin(rMargin);
763 gPad->SetBottomMargin(0);
764 gPad->SetTopMargin(tMargin);
768 for (
Int_t i=0;i<Nx;i++)
771 gPad->SetLeftMargin(lMargin);
772 gPad->SetRightMargin(rMargin);
773 gPad->SetBottomMargin(bMargin);
774 gPad->SetTopMargin(0);
777 for (
Int_t i=0;i<Nx;i++)
779 C->cd(i+1+2*Nx)->SetLogy();
780 gPad->SetLeftMargin(lMargin);
781 gPad->SetRightMargin(rMargin);
783 gPad->SetBottomMargin(bMargin);
784 gPad->SetTopMargin(tMargin);
void SetRunNumber(Int_t run)
TLatex * text[5]
option to what and if export to output file
void CanvasPartition(TCanvas *C, const Int_t Nx=2, const Int_t Ny=2, Float_t lMargin=0.15, Float_t rMargin=0.05, Float_t bMargin=0.15, Float_t tMargin=0.05)
void Test_OADB(TString period="LHC15n", Int_t trainNo=603, TString version="INT7Emc", TString runList="")
Bool_t Plot_BCMap(TString runList="", TString pathOADB="")
AliEMCALGeometry * GetEMCALGeometry() const
void SetHisto(TH1 *Histo, TString Xtitel, TString Ytitel)
void Plot_CellList(TString period="LHC15n", Int_t trainNo=603, TString cellList="")
Class with utils specific to calorimeter clusters/cells.
void AccessGeometry(AliVEvent *inputEvent)
Int_t GetModuleNumberCellIndexesAbsCaloMap(Int_t absId, Int_t calo, Int_t &icol, Int_t &irow, Int_t &iRCU, Int_t &icolAbs, Int_t &irowAbs) const