Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:48

0001 #include <iostream>
0002 #include <fstream>
0003 #include <iomanip>
0004 #include <string>
0005 
0006 #include "Rtypes.h"
0007 #include "TROOT.h"
0008 #include "TRint.h"
0009 #include "TObject.h"
0010 #include "TFile.h"
0011 #include "TTree.h"
0012 #include "TH1F.h"
0013 #include "TCanvas.h"
0014 #include "TApplication.h"
0015 #include "TRefArray.h"
0016 #include "TStyle.h"
0017 #include "TGraph.h"
0018 
0019 void setTDRStyle();
0020 
0021 void drawHFTime(char file[100]="/uscms_data/d1/sunanda/CMSSW_1_3_3/src/SimG4CMS/Calo/test/vcal5x5.root", int mode=0, float xmax=1000) {
0022 
0023   setTDRStyle();
0024   TFile *File1 = new TFile(file);
0025   TTree *em = File1->Get("h3");
0026   TTree *had = File1->Get("h8");
0027   TH1F *h1 = new TH1F("EM","Time (EM)",500,0,xmax);
0028   TH1F *h2 = new TH1F("Had","Time (Had)",500,0,xmax);
0029   if (mode <=0) {
0030     em->Project("EM","It");
0031     had->Project("Had","It");
0032   } else {
0033     em->Project("EM","T");
0034     had->Project("Had","T");
0035   }
0036   h1->GetXaxis()->SetTitle("Time (EM)");
0037   h2->GetXaxis()->SetTitle("Time (Had)");
0038 
0039   TCanvas *em1 = new TCanvas("em1","",800,500);
0040   gPad->SetLogy(1);
0041   h1->Draw();
0042 
0043   TCanvas *had1 = new TCanvas("had1","",800,500);
0044   gPad->SetLogy(1);
0045   h2->Draw();
0046 }
0047 
0048 void drawHFPosition(char file[100]="hf.out", int save=0) {
0049 
0050   setTDRStyle();
0051   std::ifstream theFile(file);
0052   static const int NPMAX=20000;
0053   int    etaIndex[NPMAX], phiIndex[NPMAX], depths[NPMAX], np=0;
0054   float  radiusT[NPMAX], radiusH[NPMAX], phiH[NPMAX];
0055   double deg=3.1415926/180.;
0056   while (theFile) {
0057     int   ieta, iphi, idep;
0058     float etaR, rr, phideg;
0059     theFile >> ieta >> iphi >> idep >> etaR >> rr >> phideg;
0060     if (np < NPMAX) {
0061       etaIndex[np] = ieta;
0062       phiIndex[np] = iphi;
0063       depths[np]   = idep;
0064       radiusT[np]  = etaR;
0065       radiusH[np]  = rr;
0066       if (phideg < 0) phideg += 360;
0067       int iphi = (int)(phideg/20);
0068       float phi = (phideg - iphi*20.0);
0069       if (phi > 10) phi -= 20;
0070       phiH[np] = phi*deg;
0071       np++;
0072     }
0073   }
0074   std::cout << np << " points found\n";
0075   //  for (int i=0; i<np; i++) std::cout << std::setw(4) << i << " " << std::setw(3) << etaIndex[i] << " " << std::setw(3) << phiIndex[i] << " " << depths[i] << " " << std::setw(6) << radiusT[i] << " " << std::setw(6) << radiusH[i] << " " << std::setw(6) << phiH[i] << "\n";
0076 
0077   int symbol[14] = {20,21,22,23,24,25,26,27,28,29,30,3,5,2};
0078   int colr[3]    = {2,4,1};
0079   TGraph *gr[3][14];
0080   float x1[NPMAX], y1[NPMAX], x2[NPMAX], y2[NPMAX], x3[NPMAX], y3[NPMAX];
0081   int np1, np2, np3;
0082   for (int i=0; i<13; i++) {
0083     np1 = np2 = np3 = 0;
0084     for (int j=0; j<np; j++) {
0085       if (etaIndex[j] == (i+29)) {
0086     int k = 2;
0087     if (depths[j] == 3) k = 0;
0088     else if (depths[j] == 4) k = 1;
0089     if (k == 0) {
0090       x1[np1] = radiusH[j]*cos(phiH[j]);
0091       y1[np1] = radiusH[j]*sin(phiH[j]);
0092       np1++;
0093       //      if (np1 == 1) std::cout << i << " 0 " <<x1[0] << " " <<y1[0] << "\n";
0094     } else if (k==1) {
0095       x2[np2] = radiusH[j]*cos(phiH[j]);
0096       y2[np2] = radiusH[j]*sin(phiH[j]);
0097       np2++;
0098       //      if (np2 == 1) std::cout << i << " 1 " <<x2[0] << " " <<y2[0] << "\n";
0099     } else {
0100       x3[np3] = radiusH[j]*cos(phiH[j]);
0101       y3[np3] = radiusH[j]*sin(phiH[j]);
0102       np3++;
0103     }
0104       }
0105     }
0106     //    std::cout << "i " << i << " " <<np1 << " " <<np2 << " " <<np3 <<"\n";
0107     if (np1 > 0) {
0108       gr[0][i] = new TGraph(np1,x1,y1); gr[0][i]->SetTitle(""); 
0109       gr[0][i]->SetMarkerStyle(symbol[i]);  gr[0][i]->SetMarkerColor(colr[0]);
0110     } else 
0111       gr[0][i] = 0;
0112     if (np2 > 0) {
0113       gr[1][i] = new TGraph(np2,x2,y2); gr[1][i]->SetTitle(""); 
0114       gr[1][i]->SetMarkerStyle(symbol[i]);  gr[1][i]->SetMarkerColor(colr[1]);
0115     } else 
0116       gr[1][i] = 0;
0117     if (np3 > 0) {
0118       gr[2][i] = new TGraph(np3,x3,y3); gr[2][i]->SetTitle(""); 
0119       gr[2][i]->SetMarkerStyle(symbol[i]);  gr[2][i]->SetMarkerColor(colr[2]);
0120     } else 
0121       gr[2][i] = 0;
0122   }
0123   np1 = np2 = np3 = 0;
0124   for (int j=0; j<np; j++) {
0125     if (etaIndex[j] < 29 || etaIndex[j] > 41) {
0126       int k = 2;
0127       if (depths[j] == 3) k = 0;
0128       else if (depths[j] == 4) k = 1;
0129       if (k == 0) {
0130     x1[np1] = radiusH[j]*cos(phiH[j]);
0131     y1[np1] = radiusH[j]*sin(phiH[j]);
0132     np1++;
0133     if (np1 == 1) std::cout << i << " 0 " <<x1[0] << " " <<y1[0] << "\n";
0134       } else if (k==1) {
0135     x2[np2] = radiusH[j]*cos(phiH[j]);
0136     y2[np2] = radiusH[j]*sin(phiH[j]);
0137     np2++;
0138     if (np2 == 1) std::cout << i << " 1 " <<x2[0] << " " <<y2[0] << "\n";
0139       } else {
0140     x3[np3] = radiusH[j]*cos(phiH[j]);
0141     y3[np3] = radiusH[j]*sin(phiH[j]);
0142     np3++;
0143       }
0144     }
0145   }
0146   //    std::cout << "i " << i << " " <<np1 << " " <<np2 << " " <<np3 <<"\n";
0147   if (np1 > 0) {
0148     gr[0][13] = new TGraph(np1,x1,y1); gr[0][13]->SetTitle(""); 
0149     gr[0][13]->SetMarkerStyle(symbol[13]);  gr[0][13]->SetMarkerColor(colr[0]);
0150   } else 
0151     gr[0][13] = 0;
0152   if (np2 > 0) {
0153     gr[1][13] = new TGraph(np2,x2,y2); gr[1][13]->SetTitle(""); 
0154     gr[1][13]->SetMarkerStyle(symbol[13]);  gr[1][13]->SetMarkerColor(colr[1]);
0155   } else 
0156     gr[1][13] = 0;
0157   if (np3 > 0) {
0158     gr[2][13] = new TGraph(np3,x3,y3); gr[2][13]->SetTitle(""); 
0159     gr[2][13]->SetMarkerStyle(symbol[13]);  gr[2][13]->SetMarkerColor(colr[2]);
0160   } else 
0161     gr[2][13] = 0;
0162 
0163   TCanvas *c0  = new TCanvas("c0","PMT Hits",800,600); 
0164   TH1F *vFrame = c0->DrawFrame(1000.0,-250.0,1500.0,250.0);
0165   vFrame->SetXTitle("x (mm)");
0166   vFrame->SetYTitle("y (mm)");
0167   for (int i=0; i<=13; i++) {
0168     for (int j=0; j<3; j++) {
0169       if (gr[j][i] != 0) {
0170     gr[j][i]->Draw("p");
0171     gr[j][i]->SetLineColor(colr[j]); gr[j][i]->SetLineWidth(2);
0172     //  std::cout << "Next " << i << " " << j << "\n";
0173       }
0174     }
0175   }
0176   TLegend *leg1 = new TLegend(0.75,0.55,0.90,0.90);
0177   char list[40];
0178   for (i=0; i<= 13; i++) {
0179     if (i < 13) sprintf (list, "#eta = %d", i+29);
0180     else        sprintf (list, "Unknown #eta");
0181     if      (gr[0][i] != 0) leg1->AddEntry(gr[0][i], list, "P");
0182     else if (gr[1][i] != 0) leg1->AddEntry(gr[1][i], list, "P");
0183   }
0184   for (i=0; i<2; i++) {
0185     if (i == 0) sprintf (list, "Long Fibre");
0186     else        sprintf (list, "Short Fibre");
0187     if      (gr[i][0] != 0) leg1->AddEntry(gr[i][0], list, "L");
0188     else if (gr[i][1] != 0) leg1->AddEntry(gr[i][1], list, "L");
0189     else if (gr[i][2] != 0) leg1->AddEntry(gr[i][2], list, "L");
0190   }
0191   leg1->SetFillColor(0); leg1->SetTextSize(0.03); 
0192   leg1->SetBorderSize(1); leg1->Draw();
0193 
0194   if (save != 0) {
0195     if (save > 0) c0->SaveAs("PMTHits.eps");
0196     else          c0->SaveAs("PMTHits.gif");
0197   }
0198 }
0199 
0200 void plotBERT(char name[10]="Hit0", char filx[10]="minbias", bool logy=true, 
0201           int bin=1, int mode=0) {
0202 
0203   setTDRStyle();
0204   TCanvas *myc = new TCanvas("myc","",800,600);
0205   if (logy) gPad->SetLogy(1);
0206   char file1[50], file2[50], lego1[32], lego2[32];
0207   sprintf (file1, "%s_QGSP_EMV.root", filx); sprintf (lego1, "QGSP_EMV");
0208   sprintf (file2, "%s_QGSP_BERT_EMV.root", filx); sprintf (lego2, "QGSP_BERT_EMV");
0209 
0210   std::cout << "Open " << file1 << "\n";
0211   TFile* File1 = new TFile(file1);
0212   TDirectory *d1 = (TDirectory*)File1->Get("caloSimHitStudy");
0213   TH1F* hist1 = (TH1F*) d1->Get(name);
0214   hist1->Rebin(bin);
0215   hist1->SetLineStyle(1);
0216   hist1->SetLineWidth(3);
0217   hist1->SetLineColor(2);
0218   std::cout << "Open " << file2 << "\n";
0219   TFile* File2 = new TFile(file2);
0220   TDirectory *d2 = (TDirectory*)File2->Get("caloSimHitStudy");
0221   TH1F* hist2 = (TH1F*) d2->Get(name);
0222   hist2->Rebin(bin);
0223   hist2->SetLineStyle(2);
0224   hist2->SetLineWidth(3);
0225   hist2->SetLineColor(4);
0226 
0227   if (mode <= 0) {
0228     hist1->Draw();
0229     hist2->Draw("sames");
0230   } else {
0231     hist2->Draw();
0232     hist1->Draw("sames");
0233   }
0234   
0235   gPad->Update();
0236   TPaveStats *st1 = (TPaveStats*)hist1->GetFunction("stats");
0237   st1->SetTextColor(2);
0238   st1->SetLineColor(2);
0239   TPaveStats *st2 = (TPaveStats*)hist2->GetFunction("stats");
0240   st2->SetTextColor(4);
0241   st2->SetLineColor(4);
0242   double x1 = st1->GetX1NDC();
0243   double y1 = st1->GetY1NDC();
0244   double x2 = st1->GetX2NDC();
0245   double y2 = st1->GetY2NDC();
0246   double xx = x2-x1;
0247   double yy = y2-y1;
0248   st2->SetX1NDC(0.95-2*xx);
0249   st2->SetY1NDC(y1);
0250   st2->SetX2NDC(x1);
0251   st2->SetY2NDC(y2);
0252   gPad->Modified();
0253 
0254   TLegend *leg1 = new TLegend(0.65,0.52,0.90,0.67);
0255   char head[40];
0256   if      (filx == "ttbar") sprintf (head, "t#bar{t}");
0257   else if (filx == "zee")   sprintf (head, "Z#rightarrowe^{+}e^{-}");
0258   else                      sprintf (head, "Minimum Bias");
0259   leg1->SetHeader(head); leg1->SetFillColor(0); leg1->SetTextSize(0.03);
0260   leg1->AddEntry(hist1,lego1,"F");
0261   leg1->AddEntry(hist2,lego2,"F");
0262   leg1->Draw();
0263 }
0264 
0265 void plotHO(char namx[4]="EHO", char namy[6]="17", char filx[10]="50", int bin=1, int eta=1, int mode=0) {
0266 
0267   setTDRStyle();
0268   TCanvas *myc = new TCanvas("myc","",800,600);
0269   char name[10], file[50], lego1[32], lego2[32], name2[20], ytit[10], xtit[10];
0270   sprintf (name, "%s%s", namx, namy);
0271   sprintf (file, "simHitStudy_%s.root", filx); 
0272   sprintf (lego1, "All Hits"); sprintf (lego2, "Hits with t < 100 ns");
0273   sprintf (name2, "%sT", name);
0274   if (!strcmp("NHO",namx))        sprintf (ytit, "<NLayer>");
0275   else if (!strcmp("NHOE",namx))  sprintf (ytit, "<NLayer>");
0276   else if (!strcmp("EHOE",namx))  sprintf (ytit, "Events");
0277   else                            sprintf (ytit, "<Edep>");
0278   if (!strcmp("NHOE",namx))       sprintf (xtit, "#phi");
0279   else if (!strcmp("EHOE",namx))  sprintf (xtit, "Edep (GeV)");
0280   else                            sprintf (xtit, "#eta");
0281   
0282   std::cout << "Open " << file << "\n";
0283   TFile* File = new TFile(file);
0284   TDirectory *d1 = (TDirectory*)File->Get("hoSimHitStudy");
0285   TH1F* hist1 = (TH1F*) d1->Get(name);
0286   TH1F* hist2 = (TH1F*) d1->Get(name2);
0287   hist1->Rebin(bin);
0288   hist1->SetLineStyle(1);
0289   hist1->SetLineWidth(3);
0290   hist1->SetLineColor(2);
0291   hist2->Rebin(bin);
0292   hist2->SetLineStyle(2);
0293   hist2->SetLineWidth(3);
0294   hist2->SetLineColor(4);
0295 
0296   if (mode <= 0) {
0297     hist1->GetXaxis()->SetTitle(xtit);
0298     hist1->GetYaxis()->SetTitle(ytit);
0299     hist1->GetYaxis()->SetLabelSize(0.03);
0300     hist1->GetXaxis()->SetLabelSize(0.03);
0301     hist1->GetYaxis()->SetTitleOffset(1.2);
0302     hist1->Draw();
0303     hist2->Draw("sames");
0304   } else {
0305     hist2->GetXaxis()->SetTitle(xtit);
0306     hist2->GetYaxis()->SetTitle(ytit);
0307     hist2->GetXaxis()->SetLabelSize(0.03);
0308     hist2->GetYaxis()->SetLabelSize(0.03);
0309     hist2->GetYaxis()->SetTitleOffset(1.2);
0310     hist2->Draw();
0311     hist1->Draw("sames");
0312   }
0313   
0314   gPad->Update();
0315   TPaveStats *st1 = (TPaveStats*)hist1->GetFunction("stats");
0316   st1->SetTextColor(2);
0317   st1->SetLineColor(2);
0318   TPaveStats *st2 = (TPaveStats*)hist2->GetFunction("stats");
0319   st2->SetTextColor(4);
0320   st2->SetLineColor(4);
0321   double x1 = st1->GetX1NDC();
0322   double y1 = st1->GetY1NDC();
0323   double x2 = st1->GetX2NDC();
0324   double y2 = st1->GetY2NDC();
0325   double xx = x2-x1;
0326   double yy = y2-y1;
0327   st2->SetX1NDC(x1);
0328   st2->SetY1NDC(y1-yy);
0329   st2->SetX2NDC(x2);
0330   st2->SetY2NDC(y1);
0331   gPad->Modified();
0332 
0333   TLegend *leg1 = new TLegend(0.10,0.15,0.35,0.30);
0334   char head[40];
0335   if (!strcmp("NHOE",namx)) sprintf (head, "%s GeV #mu^{-} (#eta = %d)", filx, eta);
0336   else if (!strcmp("EHOE",namx)) sprintf (head, "%s GeV #mu^{-} (#eta = %d)", filx, eta);
0337   else                      sprintf (head, "%s GeV #mu^{-}", filx);
0338   leg1->SetHeader(head); leg1->SetFillColor(0); leg1->SetTextSize(0.03);
0339   leg1->AddEntry(hist1,lego1,"F");
0340   leg1->AddEntry(hist2,lego2,"F");
0341   leg1->Draw();
0342 }
0343 
0344 void plotValid(char name[10]="Hit0", char filx[10]="minbias", bool logy=true, 
0345            int bin=1, double xmax=-1., int mode=0) {
0346 
0347   setTDRStyle();
0348   TCanvas *myc = new TCanvas("myc","",800,600);
0349   if (logy) gPad->SetLogy(1);
0350   char lego1[32], lego2[32], lego3[32], lego4[32];
0351   
0352   sprintf (lego1,"Original 3_1_0"); 
0353   sprintf (lego2,"3_1_0 + New PhysicsLists");
0354   sprintf (lego3,"Modified Code (Default)");  
0355   sprintf (lego4,"Change in Response");
0356 
0357   TFile *File[4];
0358   TH1F  *hist[4];
0359   double xmin=0;
0360   for (int i=0; i<4; i++) {
0361     char file[50];
0362     sprintf (file, "%s_QGSP_BERT_EML%d.root", filx, i); 
0363     std::cout << "Open " << file << "\n";
0364     File[i] = new TFile(file);
0365     TDirectory *dir = (TDirectory*)File[i]->Get("caloSimHitStudy");
0366     hist[i] = (TH1F*) dir->Get(name);
0367     hist[i]->Rebin(bin);
0368     hist[i]->SetLineStyle(i+1);
0369     hist[i]->SetLineWidth(3);
0370     hist[i]->SetLineColor(i+1);
0371     xmin = hist[i]->GetXaxis()->GetXmin();
0372     if (xmax > 0) hist[i]->GetXaxis()->SetRangeUser(xmin,xmax);
0373   }
0374 
0375   if (mode < 0 || mode > 3) mode = 0;
0376   hist[mode]->Draw();
0377   for (int i=0; i<4; i++) {
0378     if (i != mode) hist[i]->Draw("sames");
0379   }
0380   
0381   gPad->Update();
0382   TPaveStats *st[4];
0383   for (int i=0; i<4; i++) {
0384     st[i] = (TPaveStats*)hist[i]->GetFunction("stats");
0385     if (st[i]) {
0386       st[i]->SetTextColor(i+1);
0387       st[i]->SetLineColor(i+1);
0388     }
0389   }
0390   double x1 = st[0]->GetX1NDC();
0391   double y1 = st[0]->GetY1NDC();
0392   double x2 = st[0]->GetX2NDC();
0393   double y2 = st[0]->GetY2NDC();
0394   double xx = x2-x1;
0395   double yy = y2-y1;
0396   if (st[1]) {
0397     st[1]->SetX1NDC(0.95-2*xx);
0398     st[1]->SetY1NDC(y1);
0399     st[1]->SetX2NDC(x1);
0400     st[1]->SetY2NDC(y2);
0401   }
0402   if (st[2]) {
0403     st[2]->SetX1NDC(x1);
0404     st[2]->SetY1NDC(0.95-2*yy);
0405     st[2]->SetX2NDC(x2);
0406     st[2]->SetY2NDC(y1);
0407   }
0408   if (st[3]) {
0409     st[3]->SetX1NDC(0.95-2*xx);
0410     st[3]->SetY1NDC(0.95-2*yy);
0411     st[3]->SetX2NDC(x1);
0412     st[3]->SetY2NDC(y1);
0413   }
0414   gPad->Modified();
0415 
0416   TLegend *leg1 = new TLegend(0.10,0.75,0.45,0.90);
0417   char head[40];
0418   if      (filx == "ttbar") sprintf (head, "t#bar{t}");
0419   else if (filx == "zee")   sprintf (head, "Z#rightarrowe^{+}e^{-}");
0420   else                      sprintf (head, "Minimum Bias");
0421   leg1->SetHeader(head); leg1->SetFillColor(0); leg1->SetTextSize(0.03);
0422   leg1->AddEntry(hist[0],lego1,"F");
0423   leg1->AddEntry(hist[1],lego2,"F");
0424   leg1->AddEntry(hist[2],lego3,"F");
0425   leg1->AddEntry(hist[3],lego4,"F");
0426   leg1->Draw();
0427 }
0428 
0429 void plotHF(char name[10]="Dist", char beam[10]="elec", char ener[10]="100",
0430         char tag[10]="SL", bool logy=true, int bin=10) {
0431 
0432   setTDRStyle();
0433   TCanvas *myc = new TCanvas("myc","",800,600);
0434   tdrStyle->SetOptStat(0);
0435   if (logy) gPad->SetLogy(1);
0436   char file[50], head[60], lego1[32], lego2[32], name1[12], name2[12];
0437   sprintf (file, "%s%s_%s.root", beam, ener, tag);
0438   if (beam == "elec")   sprintf (lego1, "electron");
0439   else                  sprintf (lego1, "pion");
0440   if      (tag == "SL") sprintf (head, "%s GeV %s with Shower Library", ener, lego1);
0441   else if (tag == "PSL")sprintf (head, "%s GeV %s with parametrization using SL", ener, lego1);
0442   else                  sprintf (head, "%s GeV %s with parametrization using SL (new)", ener, lego1);
0443   sprintf (name1, "HCalSD%s5", name); sprintf (lego1, "Long  Fibre");
0444   sprintf (name2, "HCalSD%s6", name); sprintf (lego2, "Short Fibre");
0445 
0446   std::cout << "Open " << file << "\n";
0447   TFile* File1 = new TFile(file);
0448   TDirectory *d1 = (TDirectory*)File1->Get("g4SimHits");
0449   TH1F* hist1 = (TH1F*) d1->Get(name1);
0450   TH1F* hist2 = (TH1F*) d1->Get(name2);
0451   hist1->Rebin(bin); hist1->SetLineStyle(1); hist1->SetLineWidth(3); hist1->SetLineColor(2);
0452   hist2->Rebin(bin); hist2->SetLineStyle(2); hist2->SetLineWidth(3); hist2->SetLineColor(4);
0453 
0454   if (logy) hist1->SetMinimum(1);
0455   else      hist1->SetMinimum(0);
0456   hist1->Draw(); hist2->Draw("sames");
0457 
0458   TLegend *leg1 = new TLegend(0.35,0.75,0.90,0.90);
0459   leg1->SetHeader(head); leg1->SetFillColor(0); leg1->SetTextSize(0.03);
0460   leg1->SetBorderSize(1);
0461   leg1->AddEntry(hist1,lego1,"F");
0462   leg1->AddEntry(hist2,lego2,"F");
0463   leg1->Draw();
0464 }
0465 
0466 
0467 void setTDRStyle() {
0468   TStyle *tdrStyle = new TStyle("tdrStyle","Style for P-TDR");
0469 
0470 // For the canvas:
0471   tdrStyle->SetCanvasBorderMode(0);
0472   tdrStyle->SetCanvasColor(kWhite);
0473   tdrStyle->SetCanvasDefH(600); //Height of canvas
0474   tdrStyle->SetCanvasDefW(600); //Width of canvas
0475   tdrStyle->SetCanvasDefX(0);   //POsition on screen
0476   tdrStyle->SetCanvasDefY(0);
0477 
0478 // For the Pad:
0479   tdrStyle->SetPadBorderMode(0);
0480   // tdrStyle->SetPadBorderSize(Width_t size = 1);
0481   tdrStyle->SetPadColor(kWhite);
0482   tdrStyle->SetPadGridX(false);
0483   tdrStyle->SetPadGridY(false);
0484   tdrStyle->SetGridColor(0);
0485   tdrStyle->SetGridStyle(3);
0486   tdrStyle->SetGridWidth(1);
0487 
0488 // For the frame:
0489   tdrStyle->SetFrameBorderMode(0);
0490   tdrStyle->SetFrameBorderSize(1);
0491   tdrStyle->SetFrameFillColor(0);
0492   tdrStyle->SetFrameFillStyle(0);
0493   tdrStyle->SetFrameLineColor(1);
0494   tdrStyle->SetFrameLineStyle(1);
0495   tdrStyle->SetFrameLineWidth(1);
0496 
0497 
0498 //For the date:
0499   tdrStyle->SetOptDate(0);
0500   // tdrStyle->SetDateX(Float_t x = 0.01);
0501   // tdrStyle->SetDateY(Float_t y = 0.01);
0502 
0503 // For the statistics box:
0504   tdrStyle->SetOptFile(11);
0505   tdrStyle->SetOptStat(11111111);
0506 
0507 // For the Global title:
0508 
0509   tdrStyle->SetOptTitle(0);
0510   tdrStyle->SetTitleFont(42);
0511   tdrStyle->SetTitleColor(1);
0512   tdrStyle->SetTitleTextColor(1);
0513   tdrStyle->SetTitleFillColor(10);
0514   tdrStyle->SetTitleFontSize(0.05);
0515 
0516 // For the axis titles:
0517 
0518   tdrStyle->SetTitleColor(1, "XYZ");
0519   tdrStyle->SetTitleFont(42, "XYZ");
0520   tdrStyle->SetTitleSize(0.06, "XYZ");
0521   // tdrStyle->SetTitleXSize(Float_t size = 0.02); // Another way to set the size?
0522   // tdrStyle->SetTitleYSize(Float_t size = 0.02);
0523   tdrStyle->SetTitleXOffset(0.7);
0524   tdrStyle->SetTitleYOffset(0.7);
0525   // tdrStyle->SetTitleOffset(1.1, "Y"); // Another way to set the Offset
0526 
0527 // For the axis labels:
0528 
0529   tdrStyle->SetLabelColor(1, "XYZ");
0530   tdrStyle->SetLabelFont(42, "XYZ");
0531   tdrStyle->SetLabelOffset(0.007, "XYZ");
0532   tdrStyle->SetLabelSize(0.03, "XYZ");
0533 
0534 // For the axis:
0535 
0536   tdrStyle->SetAxisColor(1, "XYZ");
0537   tdrStyle->SetStripDecimals(kTRUE);
0538   tdrStyle->SetTickLength(0.03, "XYZ");
0539   tdrStyle->SetNdivisions(510, "XYZ");
0540   tdrStyle->SetPadTickX(1);  // To get tick marks on the opposite side of the frame
0541   tdrStyle->SetPadTickY(1);
0542 
0543   tdrStyle->cd();
0544 
0545 }