File indexing completed on 2024-04-06 12:03:27
0001 #include "TROOT.h"
0002 #include "TFile.h"
0003 #include "TCanvas.h"
0004 #include "TH1F.h"
0005 #include "TH2F.h"
0006 #include "TTree.h"
0007 #include "TBranch.h"
0008 #include "TTree.h"
0009 #include "TChain.h"
0010 #include "TLegend.h"
0011 #include "TGaxis.h"
0012
0013 #include <iostream>
0014 #include <algorithm>
0015 #include <vector>
0016 #include <map>
0017 #include <iostream>
0018 #include <iomanip> // std::setw
0019
0020
0021 void makeNicePlotStyle(TH1* hist)
0022
0023 {
0024 hist->SetStats(kFALSE);
0025 hist->SetLineWidth(2);
0026 hist->GetXaxis()->CenterTitle(true);
0027 hist->GetYaxis()->CenterTitle(true);
0028 hist->GetXaxis()->SetTitleFont(42);
0029 hist->GetYaxis()->SetTitleFont(42);
0030 hist->GetXaxis()->SetTitleSize(0.05);
0031 hist->GetYaxis()->SetTitleSize(0.05);
0032 hist->GetXaxis()->SetTitleOffset(0.9);
0033 hist->GetYaxis()->SetTitleOffset(1.3);
0034 hist->GetXaxis()->SetLabelFont(42);
0035 hist->GetYaxis()->SetLabelFont(42);
0036 hist->GetYaxis()->SetLabelSize(.05);
0037 hist->GetXaxis()->SetLabelSize(.05);
0038 }
0039
0040
0041 void makeNoisePedestalScatterPlot() {
0042
0043
0044 TGaxis::SetMaxDigits(4);
0045
0046 TFile* file = new TFile("idealNoise.root");
0047
0048 TH2F* h2_NoiseVsPedestal = (TH2F*)file->Get("h2_NoiseVsPedestal");
0049
0050 TH2F* h2_NoiseVsPedestalTIB = (TH2F*)file->Get("h2_NoiseVsPedestalTIB");
0051 TH2F* h2_NoiseVsPedestalTOB = (TH2F*)file->Get("h2_NoiseVsPedestalTOB");
0052 TH2F* h2_NoiseVsPedestalTID = (TH2F*)file->Get("h2_NoiseVsPedestalTID");
0053 TH2F* h2_NoiseVsPedestalTEC = (TH2F*)file->Get("h2_NoiseVsPedestalTEC");
0054
0055 std::map<std::string, TH2F*> scatters;
0056
0057 scatters["TIB"] = h2_NoiseVsPedestalTIB;
0058 scatters["TOB"] = h2_NoiseVsPedestalTOB;
0059 scatters["TID"] = h2_NoiseVsPedestalTID;
0060 scatters["TEC"] = h2_NoiseVsPedestalTEC;
0061
0062 std::map<std::string, int> colormap;
0063 std::map<std::string, int> markermap;
0064 colormap["TIB"] = kRed;
0065 markermap["TIB"] = kFullCircle;
0066 colormap["TOB"] = kGreen;
0067 markermap["TOB"] = kFullTriangleUp;
0068 colormap["TID"] = kCyan;
0069 markermap["TID"] = kFullSquare;
0070 colormap["TEC"] = kBlue;
0071 markermap["TEC"] = kFullTriangleDown;
0072
0073 std::vector<std::string> parts = {"TEC", "TID", "TOB", "TIB"};
0074
0075 TCanvas* canvas = new TCanvas("c1", "c1", 1000, 800);
0076 canvas->cd();
0077
0078 auto legend2 = new TLegend(0.75, 0.85, 0.95, 0.97);
0079 legend2->SetTextSize(0.03);
0080 canvas->cd();
0081 canvas->cd()->SetTopMargin(0.03);
0082 canvas->cd()->SetLeftMargin(0.13);
0083 canvas->cd()->SetRightMargin(0.05);
0084
0085 for (const auto& part : parts) {
0086 makeNicePlotStyle(scatters[part]);
0087 scatters[part]->SetTitle("");
0088 scatters[part]->SetStats(false);
0089 scatters[part]->SetMarkerColor(colormap[part]);
0090 scatters[part]->SetMarkerStyle(markermap[part]);
0091 scatters[part]->SetMarkerSize(0.2);
0092
0093 auto temp = (TH2F*)(scatters[part]->Clone());
0094 temp->SetMarkerSize(1.3);
0095
0096 if (part == "TEC")
0097 scatters[part]->Draw("P");
0098 else
0099 scatters[part]->Draw("Psame");
0100
0101 legend2->AddEntry(temp, part.c_str(), "P");
0102 }
0103
0104 legend2->Draw("same");
0105
0106 canvas->SaveAs("NoiseVsPedestals_subdet.png");
0107
0108 TCanvas* canvas2 = new TCanvas("c2", "c2", 1000, 800);
0109 canvas2->cd();
0110 canvas2->cd();
0111 canvas2->cd()->SetTopMargin(0.03);
0112 canvas2->cd()->SetLeftMargin(0.13);
0113 canvas2->cd()->SetRightMargin(0.13);
0114
0115 makeNicePlotStyle(h2_NoiseVsPedestal);
0116 h2_NoiseVsPedestal->SetTitle("");
0117 h2_NoiseVsPedestal->SetStats(false);
0118 h2_NoiseVsPedestal->Draw("colz");
0119
0120 canvas2->SaveAs("NoiseVsPedestals.png");
0121 }