Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-09-28 07:03:00

0001 // Eta coverage of detectors
0002 // Shyam Kumar:INFN Bari, shyam.kumar@ba.infn.it; shyam055119@gmail.com
0003 
0004 #include <TGraphErrors.h>
0005 #include <TF1.h>
0006 #include <TRandom.h>
0007 #include <TCanvas.h>
0008 #include <TLegend.h>
0009 #include <TMath.h>
0010 #define mpi 0.139  // 1.864 GeV/c^2
0011 
0012 void Plot_eta()
0013 {
0014 
0015    //==style of the plot====
0016    gStyle->SetPalette(1);
0017    gStyle->SetOptTitle(0);
0018    gStyle->SetTitleOffset(.85,"X");gStyle->SetTitleOffset(1.0,"Y");
0019    gStyle->SetTitleSize(.05,"X");gStyle->SetTitleSize(.05,"Y");
0020    gStyle->SetLabelSize(.04,"X");gStyle->SetLabelSize(.04,"Y");
0021    gStyle->SetHistLineWidth(2);
0022    gStyle->SetOptFit(1);
0023    gStyle->SetOptStat(0);
0024 
0025 
0026    TFile *f = TFile::Open("sim.edm4hep.root");
0027    TTree *tree = (TTree*)f->Get("events");
0028 
0029  // Timer Start
0030   TStopwatch timer;
0031   timer.Start();
0032 
0033    TCanvas * c1 = new TCanvas("c1","coutput",1400,1000);
0034    c1->SetMargin(0.10, 0.05 ,0.1,0.05);
0035    c1->SetGridx();
0036 
0037    TH1D *hits_vtx_si = new TH1D("hits_vtx_si","hits_vtx_si",200,-4.,4.);
0038    TH1D *hits_barrel_si = new TH1D("hits_barrel_si","hits_barrel_si",200,-4.,4.); // Barr1
0039    TH1D *hits_barrel_mpgd_in = new TH1D("hits_barrel_mpgd_in","hits_barrel_mpgd_in",200,-4.,4.); // BMT1
0040    TH1D *hits_barrel_tof = new TH1D("hits_barrel_tof","hits_barrel_tof",200,-4.,4.);
0041    TH1D *hits_disks_si = new TH1D("hits_disks_si","hits_disks_si",200,-4.,4.);
0042    TH1D *hits_endcap_tof = new TH1D("hits_endcap_tof","hits_endcap_tof",200,-4.,4.);
0043    TH1D *hits_barrel_mpgd_out = new TH1D("hits_barrel_mpgd_out","hits_barrel_mpgd_out",200,-4.,4.);
0044    TH1D *hits_fwd_mpgd = new TH1D("hits_fwd_mpgd","hits_fwd_mpgd",200,-4.,4.);
0045    TH1D *hits_bwd_mpgd = new TH1D("hits_bwd_mpgd","hits_bwd_mpgd",200,-4.,4.);
0046    TH1D *hits_b0tracker = new TH1D("hits_b0tracker","hits_b0tracker",200,-4.,4.);
0047 
0048    hits_vtx_si->GetXaxis()->SetTitle("#eta");
0049    hits_vtx_si->GetYaxis()->SetTitle("Entries (a.u.)");
0050    hits_vtx_si->GetXaxis()->CenterTitle();
0051    hits_vtx_si->GetYaxis()->CenterTitle();
0052 
0053    TString vtx_hits_eta = "-TMath::Log(TMath::Tan((TMath::ATan2(sqrt(VertexBarrelHits.position.x*VertexBarrelHits.position.x+VertexBarrelHits.position.y*VertexBarrelHits.position.y),VertexBarrelHits.position.z))/2))>>hits_vtx_si";
0054    TString Barrel_hits_eta = "-TMath::Log(TMath::Tan((TMath::ATan2(sqrt(SiBarrelHits.position.x*SiBarrelHits.position.x+SiBarrelHits.position.y*SiBarrelHits.position.y),SiBarrelHits.position.z))/2))>>hits_barrel_si";
0055    TString BMM_hits_eta = "-TMath::Log(TMath::Tan((TMath::ATan2(sqrt(MPGDBarrelHits.position.x*MPGDBarrelHits.position.x+MPGDBarrelHits.position.y*MPGDBarrelHits.position.y),MPGDBarrelHits.position.z))/2))>>hits_barrel_mpgd_in";
0056    TString ToF_hits_eta = "-TMath::Log(TMath::Tan((TMath::ATan2(sqrt(TOFBarrelHits.position.x*TOFBarrelHits.position.x+TOFBarrelHits.position.y*TOFBarrelHits.position.y),TOFBarrelHits.position.z))/2))>>hits_barrel_tof";
0057    TString ETracker_hits_eta = "-TMath::Log(TMath::Tan((TMath::ATan2(sqrt(TrackerEndcapHits.position.x*TrackerEndcapHits.position.x+TrackerEndcapHits.position.y*TrackerEndcapHits.position.y),TrackerEndcapHits.position.z))/2))>>hits_disks_si";
0058    TString ETOF_hits_eta = "-TMath::Log(TMath::Tan((TMath::ATan2(sqrt(TOFEndcapHits.position.x*TOFEndcapHits.position.x+TOFEndcapHits.position.y*TOFEndcapHits.position.y),TOFEndcapHits.position.z))/2))>>hits_endcap_tof";
0059    TString OutBMM_hits_eta = "-TMath::Log(TMath::Tan((TMath::ATan2(sqrt(OuterMPGDBarrelHits.position.x*OuterMPGDBarrelHits.position.x+OuterMPGDBarrelHits.position.y*OuterMPGDBarrelHits.position.y),OuterMPGDBarrelHits.position.z))/2))>>hits_barrel_mpgd_out";
0060    TString FwdMM_hits_eta = "-TMath::Log(TMath::Tan((TMath::ATan2(sqrt(ForwardMPGDEndcapHits.position.x*ForwardMPGDEndcapHits.position.x+ForwardMPGDEndcapHits.position.y*ForwardMPGDEndcapHits.position.y),ForwardMPGDEndcapHits.position.z))/2))>>hits_fwd_mpgd";
0061    TString BwdMM_hits_eta = "-TMath::Log(TMath::Tan((TMath::ATan2(sqrt(BackwardMPGDEndcapHits.position.x*BackwardMPGDEndcapHits.position.x+BackwardMPGDEndcapHits.position.y*BackwardMPGDEndcapHits.position.y),BackwardMPGDEndcapHits.position.z))/2))>>hits_bwd_mpgd";
0062    TString B0_hits_eta = "-TMath::Log(TMath::Tan((TMath::ATan2(sqrt(B0TrackerHits.position.x*B0TrackerHits.position.x+B0TrackerHits.position.y*B0TrackerHits.position.y),B0TrackerHits.position.z))/2))>>hits_b0tracker";
0063 
0064    tree->Draw(vtx_hits_eta.Data(),"VertexBarrelHits.position.y>0","goff"); // Vtx layers
0065    tree->Draw(Barrel_hits_eta.Data(),"SiBarrelHits.position.y>0 ","goff"); // Barrel Si layers
0066    tree->Draw(BMM_hits_eta.Data(),"MPGDBarrelHits.position.y>0 ","goff"); // MPGD Barrel
0067    tree->Draw(ToF_hits_eta.Data(),"TOFBarrelHits.position.y>0","goff"); // TOF Hits
0068    tree->Draw(ETracker_hits_eta.Data(),"TrackerEndcapHits.position.y>0","goff"); // Tracker Endcap
0069    tree->Draw(ETOF_hits_eta.Data(),"TOFEndcapHits.position.y>0","goff"); // TOF Endcap
0070    tree->Draw(OutBMM_hits_eta.Data(),"OuterMPGDBarrelHits.position.y>0","goff"); // Outer Barrel MPGD
0071    tree->Draw(FwdMM_hits_eta.Data(),"ForwardMPGDEndcapHits.position.y>0","goff"); // Forward MPGD
0072    tree->Draw(BwdMM_hits_eta.Data(),"BackwardMPGDEndcapHits.position.y>0","goff"); // Forward MPGD
0073    tree->Draw(B0_hits_eta.Data(),"B0TrackerHits.position.y>0","goff"); // B0 Tracker
0074 
0075    c1->cd();
0076    c1->SetLogy();
0077    hits_vtx_si->Scale(1./hits_vtx_si->Integral());
0078    hits_barrel_si->Scale(1./hits_barrel_si->Integral());
0079    hits_barrel_mpgd_in->Scale(1./hits_barrel_mpgd_in->Integral());
0080    hits_barrel_tof->Scale(1./hits_barrel_tof->Integral());
0081    hits_disks_si->Scale(1./hits_disks_si->Integral());
0082    hits_endcap_tof->Scale(1./hits_endcap_tof->Integral());
0083    hits_barrel_mpgd_out->Scale(1./hits_barrel_mpgd_out->Integral());
0084    hits_fwd_mpgd->Scale(1./hits_fwd_mpgd->Integral());
0085    hits_bwd_mpgd->Scale(1./hits_bwd_mpgd->Integral());
0086    hits_b0tracker->Scale(1./hits_b0tracker->Integral());
0087    hits_vtx_si->SetLineColor(kBlue);
0088    hits_barrel_si->SetLineColor(kMagenta);
0089    hits_barrel_mpgd_in->SetLineColor(kRed);
0090    hits_barrel_tof->SetLineColor(kBlack);
0091    hits_disks_si->SetLineColor(kGreen);
0092    hits_endcap_tof->SetLineColor(kCyan);
0093    hits_barrel_mpgd_out->SetLineColor(kOrange);
0094    hits_fwd_mpgd->SetLineColor(kAzure);
0095    hits_bwd_mpgd->SetLineColor(kTeal);
0096    hits_b0tracker->SetLineColor(kViolet);
0097 
0098 
0099    hits_vtx_si->SetMaximum(0.2);
0100    hits_vtx_si->GetXaxis()->SetRangeUser(-4.0,4.0);
0101    hits_vtx_si->Draw("hist");
0102    hits_barrel_si->Draw("hist-same");
0103    hits_barrel_mpgd_in->Draw("hist-same");
0104    hits_barrel_tof->Draw("hist-same");
0105    hits_disks_si->Draw("hist-same");
0106    hits_endcap_tof->Draw("hist-same");
0107    hits_barrel_mpgd_out->Draw("hist-same");
0108    hits_fwd_mpgd->Draw("hist-same");
0109    hits_bwd_mpgd->Draw("hist-same");
0110    hits_b0tracker->Draw("hist-same");
0111 
0112   TLegend *l1=  new TLegend(0.11,0.75,0.70,0.94);
0113   l1->SetNColumns(2);
0114   l1->SetTextSize(0.025);
0115   l1->SetBorderSize(0);
0116   l1->AddEntry(hits_vtx_si,"VertexBarrelHits");
0117   l1->AddEntry(hits_barrel_si,"SiBarrelHits");
0118   l1->AddEntry(hits_barrel_mpgd_in,"MPGDBarrelHits");
0119   l1->AddEntry(hits_barrel_tof,"TOFBarrelHits");
0120   l1->AddEntry(hits_disks_si,"TrackerEndcapHits");
0121   l1->AddEntry(hits_endcap_tof,"TOFEndcapHits");
0122   l1->AddEntry(hits_barrel_mpgd_out,"OuterMPGDBarrelHits");
0123   l1->AddEntry(hits_fwd_mpgd,"ForwardMPGDEndcapHits");
0124   l1->AddEntry(hits_bwd_mpgd,"BackwardMPGDEndcapHits");
0125   l1->AddEntry(hits_b0tracker,"B0TrackerHits");
0126   l1->Draw("same");
0127   c1->cd();
0128   l1->Draw();
0129   c1->SaveAs("eta_DD4HEP.png");
0130 
0131  // Timer Stop
0132   timer.Stop();
0133   Double_t realtime = timer.RealTime();
0134   Double_t cputime = timer.CpuTime();
0135   printf("RealTime=%f seconds, CpuTime=%f seconds\n",realtime,cputime);
0136 
0137 }