File indexing completed on 2024-04-06 12:32:14
0001 #include "TROOT.h"
0002 #include "TStyle.h"
0003 #include "TFile.h"
0004 #include "TF1.h"
0005 #include "TH1.h"
0006 #include "TH2.h"
0007 #include "TCanvas.h"
0008 #include "TGraphErrors.h"
0009 #include "TPaveStats.h"
0010 #include "TLegend.h"
0011 #include "TChain.h"
0012 #include "TVirtualFitter.h"
0013 #include "TBox.h"
0014 #include "TPaveText.h"
0015 #include "TColor.h"
0016 #include "TProfile.h"
0017 #include "TProfile2D.h"
0018
0019
0020 #include <iomanip>
0021 #include <string>
0022 #include <sstream>
0023 #include <ctime>
0024 #include <map>
0025 #include <algorithm>
0026 #include <math.h>
0027 #include <vector>
0028
0029 void setTDRStyle() {
0030
0031 TStyle *tdrStyle = new TStyle("tdrStyle","Style for P-TDR");
0032
0033
0034 tdrStyle->SetCanvasBorderMode(0);
0035 tdrStyle->SetCanvasColor(kWhite);
0036 tdrStyle->SetCanvasDefH(600);
0037 tdrStyle->SetCanvasDefW(600);
0038 tdrStyle->SetCanvasDefX(0);
0039 tdrStyle->SetCanvasDefY(0);
0040
0041
0042 tdrStyle->SetPadBorderMode(0);
0043 tdrStyle->SetPadColor(kWhite);
0044 tdrStyle->SetPadGridX(false);
0045 tdrStyle->SetPadGridY(false);
0046 tdrStyle->SetGridColor(0);
0047 tdrStyle->SetGridStyle(3);
0048 tdrStyle->SetGridWidth(1);
0049
0050
0051 tdrStyle->SetFrameBorderMode(0);
0052 tdrStyle->SetFrameBorderSize(1);
0053 tdrStyle->SetFrameFillColor(0);
0054 tdrStyle->SetFrameFillStyle(0);
0055 tdrStyle->SetFrameLineColor(1);
0056 tdrStyle->SetFrameLineStyle(1);
0057 tdrStyle->SetFrameLineWidth(1);
0058
0059
0060 tdrStyle->SetHistLineColor(1);
0061 tdrStyle->SetHistLineStyle(0);
0062 tdrStyle->SetHistLineWidth(1);
0063 tdrStyle->SetEndErrorSize(2);
0064 tdrStyle->SetErrorX(0.);
0065 tdrStyle->SetMarkerStyle(20);
0066
0067
0068 tdrStyle->SetOptFit(1);
0069 tdrStyle->SetFitFormat("5.4g");
0070 tdrStyle->SetFuncColor(2);
0071 tdrStyle->SetFuncStyle(1);
0072 tdrStyle->SetFuncWidth(1);
0073
0074
0075 tdrStyle->SetOptDate(0);
0076
0077
0078 tdrStyle->SetOptFile(0);
0079 tdrStyle->SetOptStat(0);
0080 tdrStyle->SetStatColor(kWhite);
0081 tdrStyle->SetStatFont(42);
0082 tdrStyle->SetStatFontSize(0.025);
0083 tdrStyle->SetStatTextColor(1);
0084 tdrStyle->SetStatFormat("6.4g");
0085 tdrStyle->SetStatBorderSize(1);
0086 tdrStyle->SetStatH(0.1);
0087 tdrStyle->SetStatW(0.15);
0088
0089
0090 tdrStyle->SetPadTopMargin(0.07);
0091 tdrStyle->SetPadBottomMargin(0.13);
0092 tdrStyle->SetPadLeftMargin(0.13);
0093 tdrStyle->SetPadRightMargin(0.19);
0094
0095
0096 tdrStyle->SetOptTitle(0);
0097 tdrStyle->SetTitleFont(42);
0098 tdrStyle->SetTitleColor(1);
0099 tdrStyle->SetTitleTextColor(1);
0100 tdrStyle->SetTitleFillColor(10);
0101 tdrStyle->SetTitleFontSize(0.05);
0102
0103
0104 tdrStyle->SetTitleColor(1, "XYZ");
0105 tdrStyle->SetTitleFont(42, "XYZ");
0106 tdrStyle->SetTitleSize(0.06, "XYZ");
0107 tdrStyle->SetTitleXOffset(0.9);
0108 tdrStyle->SetTitleYOffset(1.);
0109
0110
0111 tdrStyle->SetLabelColor(1, "XYZ");
0112 tdrStyle->SetLabelFont(42, "XYZ");
0113 tdrStyle->SetLabelOffset(0.007, "XYZ");
0114 tdrStyle->SetLabelSize(0.045, "XYZ");
0115
0116
0117 tdrStyle->SetAxisColor(1, "XYZ");
0118 tdrStyle->SetStripDecimals(kTRUE);
0119 tdrStyle->SetTickLength(0.03, "XYZ");
0120 tdrStyle->SetNdivisions(510, "XYZ");
0121 tdrStyle->SetPadTickX(1);
0122 tdrStyle->SetPadTickY(1);
0123
0124
0125 tdrStyle->SetOptLogx(0);
0126 tdrStyle->SetOptLogy(0);
0127 tdrStyle->SetOptLogz(0);
0128
0129
0130 tdrStyle->SetPaperSize(20.,20.);
0131
0132 tdrStyle->cd();
0133 }
0134
0135
0136 void palette(){
0137
0138 const Int_t NRGBs = 5;
0139 const Int_t NCont = 255;
0140
0141 Double_t stops[NRGBs] = { 0.00, 0.34, 0.61, 0.84, 1.00 };
0142 Double_t red[NRGBs] = { 0.00, 0.00, 0.87, 1.00, 0.51 };
0143 Double_t green[NRGBs] = { 0.00, 0.81, 1.00, 0.20, 0.00 };
0144 Double_t blue[NRGBs] = { 0.51, 1.00, 0.12, 0.00, 0.00 };
0145 TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont);
0146 gStyle->SetNumberContours(NCont);
0147 }
0148
0149
0150
0151 TString theDirName = "Figures";
0152
0153
0154
0155 float xmin = -4.;
0156 float xmax = 4.;
0157
0158 float ymin = -3.1416;
0159 float ymax = 3.1416;
0160
0161 float zmin_x0 = 0.;
0162 float zmax_x0;
0163
0164 float zmin_lambdaI = 0.;
0165 float zmax_lambdaI;
0166
0167
0168
0169 int rebin_x0_x = 1;
0170 int rebin_x0_y = 1;
0171 float norm_x0 = rebin_x0_x*rebin_x0_y;
0172
0173 int rebin_lambdaI_x = 1;
0174 int rebin_lambdaI_y = 1;
0175 float norm_lambdaI = rebin_lambdaI_x*rebin_lambdaI_y;
0176
0177
0178 using namespace std;
0179
0180
0181 void MaterialBudget_Maps() {
0182
0183
0184 setTDRStyle();
0185
0186 palette();
0187
0188 TString subDetectorFileName = "matbdg_Tracker.root";
0189
0190
0191 TFile *subDetectorFile = new TFile(subDetectorFileName);
0192 cout << "*** Open file... " << endl;
0193 cout << subDetectorFileName << endl;
0194 cout << "***" << endl;
0195
0196
0197 TProfile2D *prof_x0_Tracker_XY = (TProfile2D*)subDetectorFile->Get("30");
0198 TH2D* hist_x0_Tracker_XY = (TH2D*)prof_x0_Tracker_XY->ProjectionXY();
0199
0200
0201 TCanvas can_x0("can_x0","can_x0",800,800);
0202
0203
0204
0205 hist_x0_Tracker_XY->GetXaxis()->SetRangeUser(xmin,xmax);
0206 hist_x0_Tracker_XY->GetYaxis()->SetRangeUser(ymin,ymax);
0207 hist_x0_Tracker_XY->Rebin2D(rebin_x0_x,rebin_x0_y);
0208 hist_x0_Tracker_XY->Scale(1/norm_x0);
0209
0210 zmax_x0 = hist_x0_Tracker_XY->GetMaximum();
0211 hist_x0_Tracker_XY->SetMinimum(zmin_x0);
0212 hist_x0_Tracker_XY->SetMaximum(zmax_x0);
0213
0214 hist_x0_Tracker_XY->GetXaxis()->SetTitle("#eta");
0215 hist_x0_Tracker_XY->GetYaxis()->SetTitle("#varphi [rad]");
0216 hist_x0_Tracker_XY->GetZaxis()->SetTitle("t/X_{0}");
0217 hist_x0_Tracker_XY->GetZaxis()->SetTitleOffset(1.1);
0218
0219 hist_x0_Tracker_XY->Draw("zcol");
0220
0221
0222 TPaveText* text_x0 = new TPaveText(0.13,0.937,0.35,0.997,"NDC");
0223 text_x0->SetFillColor(0);
0224 text_x0->SetBorderSize(0);
0225 text_x0->AddText("CMS Simulation");
0226 text_x0->SetTextAlign(13);
0227 text_x0->Draw();
0228
0229
0230 can_x0.Update();
0231
0232
0233 can_x0.SaveAs( Form( "%s/EtaPhiMap_x0.pdf", theDirName.Data() ) );
0234 can_x0.SaveAs( Form( "%s/EtaPhiMap_x0.png", theDirName.Data() ) );
0235 can_x0.SaveAs( Form( "%s/EtaPhiMap_x0.root", theDirName.Data() ) );
0236
0237
0238
0239
0240
0241
0242 TProfile2D *prof_lambdaI_Tracker_XY = (TProfile2D*)subDetectorFile->Get("1030");
0243 TH2D* hist_lambdaI_Tracker_XY = (TH2D*)prof_lambdaI_Tracker_XY->ProjectionXY();
0244
0245
0246 TCanvas can_lambdaI("can_lambdaI","can_lambdaI",800,800);
0247
0248
0249
0250 hist_lambdaI_Tracker_XY->GetXaxis()->SetRangeUser(xmin,xmax);
0251 hist_lambdaI_Tracker_XY->GetYaxis()->SetRangeUser(ymin,ymax);
0252 hist_lambdaI_Tracker_XY->Rebin2D(rebin_lambdaI_x,rebin_lambdaI_y);
0253 hist_lambdaI_Tracker_XY->Scale(1/norm_lambdaI);
0254
0255 zmax_lambdaI = hist_lambdaI_Tracker_XY->GetMaximum();
0256 hist_lambdaI_Tracker_XY->SetMinimum(zmin_lambdaI);
0257 hist_lambdaI_Tracker_XY->SetMaximum(zmax_lambdaI);
0258
0259 hist_lambdaI_Tracker_XY->GetXaxis()->SetTitle("#eta");
0260 hist_lambdaI_Tracker_XY->GetYaxis()->SetTitle("#varphi [rad]");
0261 hist_lambdaI_Tracker_XY->GetZaxis()->SetTitle("t/#lambda_{I}");
0262
0263 hist_lambdaI_Tracker_XY->Draw("zcol");
0264
0265
0266 TPaveText* text_lambdaI = new TPaveText(0.13,0.937,0.35,0.997,"NDC");
0267 text_lambdaI->SetFillColor(0);
0268 text_lambdaI->SetBorderSize(0);
0269 text_lambdaI->AddText("CMS Simulation");
0270 text_lambdaI->SetTextAlign(13);
0271 text_lambdaI->Draw();
0272
0273
0274 can_lambdaI.Update();
0275
0276
0277 can_lambdaI.SaveAs( Form( "%s/EtaPhiMap_lambdaI.pdf", theDirName.Data() ) );
0278 can_lambdaI.SaveAs( Form( "%s/EtaPhiMap_lambdaI.png", theDirName.Data() ) );
0279 can_lambdaI.SaveAs( Form( "%s/EtaPhiMap_lambdaI.root", theDirName.Data() ) );
0280
0281
0282 }