File indexing completed on 2025-08-05 08:11:22
0001 #include <TCanvas.h>
0002 #include <TCut.h>
0003 #include <TFile.h>
0004 #include <TH1F.h>
0005 #include <TH2F.h>
0006 #include <TMath.h>
0007 #include <TObjString.h>
0008 #include <TRandom3.h>
0009 #include <TTree.h>
0010 #include <TTreeIndex.h>
0011
0012 #include <fstream>
0013 #include <iostream>
0014 #include <sstream>
0015 #include <string>
0016 #include <vector>
0017
0018 using namespace std;
0019
0020
0021 const int NBins = 50;
0022 float edges[NBins + 1] = {1.00000000e-04, 1.18571250e-04, 1.40591414e-04, 1.66700998e-04, 1.97659458e-04, 2.34367291e-04, 2.77892228e-04, 3.29500290e-04, 3.90692614e-04,
0023 4.63249118e-04, 5.49280272e-04, 6.51288487e-04, 7.72240903e-04, 9.15655696e-04, 1.08570441e-03, 1.28733329e-03, 1.52640718e-03, 1.80988009e-03,
0024 2.14599745e-03, 2.54453601e-03, 3.01708817e-03, 3.57739917e-03, 4.24176693e-03, 5.02951609e-03, 5.96356012e-03, 7.07106781e-03, 8.38425353e-03,
0025 9.94131425e-03, 1.17875406e-02, 1.39766343e-02, 1.65722701e-02, 1.96499479e-02, 2.32991889e-02, 2.76261397e-02, 3.27566592e-02, 3.88399805e-02,
0026 4.60530506e-02, 5.46056779e-02, 6.47466352e-02, 7.67708949e-02, 9.10282102e-02, 1.07933287e-01, 1.27977848e-01, 1.51744935e-01, 1.79925867e-01,
0027 2.13340350e-01, 2.52960321e-01, 2.99938216e-01, 3.55640493e-01, 4.21687380e-01, 5.00000000e-01};
0028
0029 void makehist(TString infname, TString outfname)
0030 {
0031 TFile *fout = new TFile(outfname, "RECREATE");
0032
0033
0034 TH1F *hM_clusphi = new TH1F("hM_clusphi", "hM_clusphi", 140, -3.5, 3.5);
0035 TH1F *hM_cluseta = new TH1F("hM_cluseta", "hM_cluseta", 80, -4, 4);
0036 TH1F *hM_clusphisize = new TH1F("hM_clusphisize", "hM_clusphisize", 80, 0, 80);
0037 TH1F *hM_clusadc = new TH1F("hM_clusadc", "hM_clusadc", 200, 0, 20000);
0038 TH2F *hM_clusphi_clusphisize = new TH2F("hM_clusphi_clusphisize", "hM_clusphi_clusphisize", 140, -3.5, 3.5, 80, 0, 80);
0039 TH2F *hM_cluseta_clusphisize = new TH2F("hM_cluseta_clusphisize", "hM_cluseta_clusphisize", 160, -4, 4, 80, 0, 80);
0040
0041 TH1F *hM_clusphi_zvtxwei = new TH1F("hM_clusphi_zvtxwei", "hM_clusphi_zvtxwei", 140, -3.5, 3.5);
0042 TH1F *hM_cluseta_zvtxwei = new TH1F("hM_cluseta_zvtxwei", "hM_cluseta_zvtxwei", 80, -4, 4);
0043 TH1F *hM_clusphisize_zvtxwei = new TH1F("hM_clusphisize_zvtxwei", "hM_clusphisize_zvtxwei", 80, 0, 80);
0044 TH2F *hM_clusphi_clusphisize_zvtxwei = new TH2F("hM_clusphi_clusphisize_zvtxwei", "hM_clusphi_clusphisize_zvtxwei", 140, -3.5, 3.5, 80, 0, 80);
0045 TH2F *hM_cluseta_clusphisize_zvtxwei = new TH2F("hM_cluseta_clusphisize_zvtxwei", "hM_cluseta_clusphisize_zvtxwei", 160, -4, 4, 80, 0, 80);
0046
0047
0048 TH1F *hM_tklclus1phisize = new TH1F("hM_tklclus1phisize", "hM_tklclus1phisize", 80, 0, 80);
0049 TH1F *hM_tklclus2phisize = new TH1F("hM_tklclus2phisize", "hM_tklclus2phisize", 80, 0, 80);
0050 TH2F *hM_tklclus1phisize_tklclus2phisize = new TH2F("hM_tklclus1phisize_tklclus2phisize", "hM_tklclus1phisize_tklclus2phisize", 80, 0, 80, 80, 0, 80);
0051 TH2F *hM_tklclus1phi_tklclus1phisize = new TH2F("hM_tklclus1phi_tklclus1phisize", "hM_tklclus1phi_tklclus1phisize", 140, -3.5, 3.5, 80, 0, 80);
0052 TH2F *hM_tklclus2phi_tklclus2phisize = new TH2F("hM_tklclus2phi_tklclus2phisize", "hM_tklclus2phi_tklclus2phisize", 140, -3.5, 3.5, 80, 0, 80);
0053 TH2F *hM_tklclus1eta_tklclus1phisize = new TH2F("hM_tklclus1eta_tklclus1phisize", "hM_tklclus1eta_tklclus1phisize", 160, -4, 4, 80, 0, 80);
0054 TH2F *hM_tklclus2eta_tklclus2phisize = new TH2F("hM_tklclus2eta_tklclus2phisize", "hM_tklclus2eta_tklclus2phisize", 160, -4, 4, 80, 0, 80);
0055
0056 TH1F *hM_dEta_reco = new TH1F("hM_dEta_reco", "hM_dEta_reco", 200, -3, 3);
0057 TH1F *hM_dEta_reco_altrange = new TH1F("hM_dEta_reco_altrange", "hM_dEta_reco_altrange", 100, -0.5, 0.5);
0058 TH1F *hM_dEta_reco_altrange_Centrality0to70_MBDAsymLe0p75_VtxZm20to20 = new TH1F("hM_dEta_reco_altrange_Centrality0to70_MBDAsymLe0p75_VtxZm20to20", "hM_dEta_reco_altrange_Centrality0to70_MBDAsymLe0p75_VtxZm20to20", 100, -0.5, 0.5);
0059 TH1F *hM_dPhi_reco = new TH1F("hM_dPhi_reco", "hM_dPhi_reco", 200, -0.5, 0.5);
0060 TH1F *hM_dPhi_reco_altrange = new TH1F("hM_dPhi_reco_altrange", "hM_dPhi_reco_altrange", 200, -0.05, 0.05);
0061 TH1F *hM_dPhi_reco_altrange_Centrality0to70_MBDAsymLe0p75_VtxZm20to20 = new TH1F("hM_dPhi_reco_altrange_Centrality0to70_MBDAsymLe0p75_VtxZm20to20", "hM_dPhi_reco_altrange_Centrality0to70_MBDAsymLe0p75_VtxZm20to20", 200, -0.05, 0.05);
0062 TH1F *hM_dR_reco = new TH1F("hM_dR_reco", "hM_dR_reco", 100, 0, 0.5);
0063 TH1F *hM_dR_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20 = new TH1F("hM_dR_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20", "hM_dR_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20", 100, 0, 0.5);
0064 TH1F *hM_dR_reco_altrange = new TH1F("hM_dR_reco_altrange", "hM_dR_reco_altrange", 50, 0, 0.05);
0065 TH1F *hM_dR_reco_altrange_Centrality0to70_MBDAsymLe0p75_VtxZm20to20 = new TH1F("hM_dR_reco_altrange_Centrality0to70_MBDAsymLe0p75_VtxZm20to20", "hM_dR_reco_altrange_Centrality0to70_MBDAsymLe0p75_VtxZm20to20", 50, 0, 0.05);
0066 TH1F *hM_dR_reco_LogX = new TH1F("hM_dR_reco_LogX", "hM_dR_reco_LogX", NBins, edges);
0067 TH1F *hM_Eta_reco = new TH1F("hM_Eta_reco", "hM_Eta_reco", 80, -4, 4);
0068 TH1F *hM_Eta_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20 = new TH1F("hM_Eta_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20", "hM_Eta_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20", 80, -4, 4);
0069 TH1F *hM_Phi_reco = new TH1F("hM_Phi_reco", "hM_Phi_reco", 140, -3.5, 3.5);
0070 TH1F *hM_Phi_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20 = new TH1F("hM_Phi_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20", "hM_Phi_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20", 140, -3.5, 3.5);
0071 TH2F *hM_Eta_vtxZ_reco_incl = new TH2F("hM_Eta_vtxZ_reco_incl", "hM_Eta_vtxZ_reco_incl", 280, -3.5, 3.5, 310, -31, 31);
0072 TH2F *hM_Eta_vtxZ_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20 = new TH2F("hM_Eta_vtxZ_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20", "hM_Eta_vtxZ_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20", 350, -3.5, 3.5, 420, -21, 21);
0073 TH2F *hM_Eta_Phi_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20 = new TH2F("hM_Eta_Phi_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20", "hM_Eta_Phi_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20", 350, -3.5, 3.5, 350, -3.5, 3.5);
0074
0075
0076 vector<float> centrality_cut = {0, 3, 6, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 80, 90, 100};
0077 vector<TH1F *> hM_dEta_reco_Centrality;
0078 vector<TH1F *> hM_dPhi_reco_Centrality;
0079 vector<TH1F *> hM_dR_reco_Centrality;
0080 vector<TH2F *> hM_Eta_vtxZ_reco_Centrality;
0081 vector<TH1F *> hM_dEta_reco_Centrality_MBDAsymLe0p75;
0082 vector<TH1F *> hM_dPhi_reco_Centrality_MBDAsymLe0p75;
0083 vector<TH1F *> hM_dR_reco_Centrality_MBDAsymLe0p75;
0084 vector<TH2F *> hM_Eta_vtxZ_reco_Centrality_MBDAsymLe0p75;
0085 vector<TH1F *> hM_dEta_reco_Centrality_MBDAsymLe0p75_VtxZm20to20;
0086 vector<TH1F *> hM_dPhi_reco_Centrality_MBDAsymLe0p75_VtxZm20to20;
0087 vector<TH1F *> hM_dR_reco_Centrality_MBDAsymLe0p75_VtxZm20to20;
0088 vector<TH2F *> hM_Eta_vtxZ_reco_Centrality_MBDAsymLe0p75_VtxZm20to20;
0089 vector<TH2F *> hM_Eta_Phi_reco_Centrality_MBDAsymLe0p75_VtxZm20to20;
0090 vector<TH1F *> hM_Eta_reco_Centrality_MBDAsymLe0p75_VtxZm20to20;
0091
0092 for (size_t i = 0; i < centrality_cut.size() - 1; i++)
0093 {
0094 hM_dEta_reco_Centrality.push_back(new TH1F(Form("hM_dEta_reco_Centrality_%dto%d", (int)centrality_cut[i], (int)centrality_cut[i + 1]),
0095 Form("hM_dEta_reco_Centrality_%dto%d", (int)centrality_cut[i], (int)centrality_cut[i + 1]), 100, -0.5, 0.5));
0096 hM_dPhi_reco_Centrality.push_back(new TH1F(Form("hM_dPhi_reco_Centrality_%dto%d", (int)centrality_cut[i], (int)centrality_cut[i + 1]),
0097 Form("hM_dPhi_reco_Centrality_%dto%d", (int)centrality_cut[i], (int)centrality_cut[i + 1]), 200, -0.05, 0.05));
0098 hM_dR_reco_Centrality.push_back(new TH1F(Form("hM_dR_reco_Centrality_%dto%d", (int)centrality_cut[i], (int)centrality_cut[i + 1]),
0099 Form("hM_dR_reco_Centrality_%dto%d", (int)centrality_cut[i], (int)centrality_cut[i + 1]), 100, 0, 0.5));
0100 hM_Eta_vtxZ_reco_Centrality.push_back(new TH2F(Form("hM_Eta_vtxZ_reco_Centrality_%dto%d", (int)centrality_cut[i], (int)centrality_cut[i + 1]),
0101 Form("hM_Eta_vtxZ_reco_Centrality_%dto%d", (int)centrality_cut[i], (int)centrality_cut[i + 1]), 280, -3.5, 3.5, 310, -31, 31));
0102 hM_dEta_reco_Centrality_MBDAsymLe0p75.push_back(new TH1F(Form("hM_dEta_reco_Centrality_%dto%d_MBDAsymLe0p75", (int)centrality_cut[i], (int)centrality_cut[i + 1]),
0103 Form("hM_dEta_reco_Centrality_%dto%d_MBDAsymLe0p75", (int)centrality_cut[i], (int)centrality_cut[i + 1]), 100, -0.5, 0.5));
0104 hM_dPhi_reco_Centrality_MBDAsymLe0p75.push_back(new TH1F(Form("hM_dPhi_reco_Centrality_%dto%d_MBDAsymLe0p75", (int)centrality_cut[i], (int)centrality_cut[i + 1]),
0105 Form("hM_dPhi_reco_Centrality_%dto%d_MBDAsymLe0p75", (int)centrality_cut[i], (int)centrality_cut[i + 1]), 200, -0.05, 0.05));
0106 hM_dR_reco_Centrality_MBDAsymLe0p75.push_back(new TH1F(Form("hM_dR_reco_Centrality_%dto%d_MBDAsymLe0p75", (int)centrality_cut[i], (int)centrality_cut[i + 1]),
0107 Form("hM_dR_reco_Centrality_%dto%d_MBDAsymLe0p75", (int)centrality_cut[i], (int)centrality_cut[i + 1]), 100, 0, 0.5));
0108 hM_Eta_vtxZ_reco_Centrality_MBDAsymLe0p75.push_back(new TH2F(Form("hM_Eta_vtxZ_reco_Centrality_%dto%d_MBDAsymLe0p75", (int)centrality_cut[i], (int)centrality_cut[i + 1]),
0109 Form("hM_Eta_vtxZ_reco_Centrality_%dto%d_MBDAsymLe0p75", (int)centrality_cut[i], (int)centrality_cut[i + 1]), 280, -3.5, 3.5, 310,
0110 -31, 31));
0111 hM_dEta_reco_Centrality_MBDAsymLe0p75_VtxZm20to20.push_back(new TH1F(Form("hM_dEta_reco_Centrality_%dto%d_MBDAsymLe0p75_VtxZm20to20", (int)centrality_cut[i], (int)centrality_cut[i + 1]),
0112 Form("hM_dEta_reco_Centrality_%dto%d_MBDAsymLe0p75_VtxZm20to20", (int)centrality_cut[i], (int)centrality_cut[i + 1]),
0113 100, -0.5, 0.5));
0114 hM_dPhi_reco_Centrality_MBDAsymLe0p75_VtxZm20to20.push_back(new TH1F(Form("hM_dPhi_reco_Centrality_%dto%d_MBDAsymLe0p75_VtxZm20to20", (int)centrality_cut[i], (int)centrality_cut[i + 1]),
0115 Form("hM_dPhi_reco_Centrality_%dto%d_MBDAsymLe0p75_VtxZm20to20", (int)centrality_cut[i], (int)centrality_cut[i + 1]),
0116 200, -0.05, 0.05));
0117 hM_dR_reco_Centrality_MBDAsymLe0p75_VtxZm20to20.push_back(new TH1F(Form("hM_dR_reco_Centrality_%dto%d_MBDAsymLe0p75_VtxZm20to20", (int)centrality_cut[i], (int)centrality_cut[i + 1]),
0118 Form("hM_dR_reco_Centrality_%dto%d_MBDAsymLe0p75_VtxZm20to20", (int)centrality_cut[i], (int)centrality_cut[i + 1]), 100, 0,
0119 0.5));
0120 hM_Eta_vtxZ_reco_Centrality_MBDAsymLe0p75_VtxZm20to20.push_back(
0121 new TH2F(Form("hM_Eta_vtxZ_reco_Centrality_%dto%d_MBDAsymLe0p75_VtxZm20to20", (int)centrality_cut[i], (int)centrality_cut[i + 1]),
0122 Form("hM_Eta_vtxZ_reco_Centrality_%dto%d_MBDAsymLe0p75_VtxZm20to20", (int)centrality_cut[i], (int)centrality_cut[i + 1]), 350, -3.5, 3.5, 420, -21, 21));
0123
0124 hM_Eta_Phi_reco_Centrality_MBDAsymLe0p75_VtxZm20to20.push_back(
0125 new TH2F(Form("hM_Eta_Phi_reco_Centrality_%dto%d_MBDAsymLe0p75_VtxZm20to20", (int)centrality_cut[i], (int)centrality_cut[i + 1]),
0126 Form("hM_Eta_Phi_reco_Centrality_%dto%d_MBDAsymLe0p75_VtxZm20to20", (int)centrality_cut[i], (int)centrality_cut[i + 1]), 280, -3.5, 3.5, 350, -3.5, 3.5));
0127 hM_Eta_reco_Centrality_MBDAsymLe0p75_VtxZm20to20.push_back(
0128 new TH1F(Form("hM_Eta_reco_Centrality_%dto%d_MBDAsymLe0p75_VtxZm20to20", (int)centrality_cut[i], (int)centrality_cut[i + 1]),
0129 Form("hM_Eta_reco_Centrality_%dto%d_MBDAsymLe0p75_VtxZm20to20", (int)centrality_cut[i], (int)centrality_cut[i + 1]), 80, -4, 4));
0130 }
0131
0132
0133 TH1F *hM_NClusLayer1 = new TH1F("hM_NClusLayer1", "hM_NClusLayer1", 100, 0, 5000);
0134 TH1F *hM_NClusLayer2 = new TH1F("hM_NClusLayer2", "hM_NClusLayer2", 100, 0, 5000);
0135 TH1F *hM_NTklclusLayer1 = new TH1F("hM_NTklclusLayer1", "hM_NTklclusLayer1", 100, 0, 5000);
0136 TH1F *hM_NPrototkl = new TH1F("hM_NPrototkl", "hM_NPrototkl", 200, 0, 20000);
0137 TH1F *hM_NRecotkl_Raw = new TH1F("hM_NRecotkl_Raw", "hM_NRecotkl_Raw", 100, 0, 5000);
0138
0139 TH1F *hM_NClusLayer1_zvtxwei = new TH1F("hM_NClusLayer1_zvtxwei", "hM_NClusLayer1_zvtxwei", 100, 0, 5000);
0140 TH1F *hM_NClusLayer2_zvtxwei = new TH1F("hM_NClusLayer2_zvtxwei", "hM_NClusLayer2_zvtxwei", 100, 0, 5000);
0141 TH1F *hM_NTklclusLayer1_zvtxwei = new TH1F("hM_NTklclusLayer1_zvtxwei", "hM_NTklclusLayer1_zvtxwei", 100, 0, 5000);
0142 TH1F *hM_NPrototkl_zvtxwei = new TH1F("hM_NPrototkl_zvtxwei", "hM_NPrototkl_zvtxwei", 200, 0, 20000);
0143 TH1F *hM_NRecotkl_Raw_zvtxwei = new TH1F("hM_NRecotkl_Raw_zvtxwei", "hM_NRecotkl_Raw_zvtxwei", 100, 0, 5000);
0144
0145 TH1F *hM_RecoPVz = new TH1F("hM_RecoPVz", "hM_RecoPVz", 310, -31, 31);
0146 TH1F *hM_RecoPVz_MBDAsymLe0p75_VtxZm20to20 = new TH1F("hM_RecoPVz_MBDAsymLe0p75_VtxZm20to20", "hM_RecoPVz_MBDAsymLe0p75_VtxZm20to20", 420, -21, 21);
0147 TH1F *hM_MBDChargeAsymm_Le0p75 = new TH1F("hM_MBDChargeAsymm_Le0p75", "hM_MBDChargeAsymm_Le0p75", 100, -1, 1);
0148 TH1F *hM_MBDChargeAsymm_Le0p75_VtxZm20to20 = new TH1F("hM_MBDChargeAsymm_Le0p75_VtxZm20to20", "hM_MBDChargeAsymm_Le0p75_VtxZm20to20", 100, -1, 1);
0149
0150 TFile *f = new TFile(infname, "READ");
0151 TTree *t = (TTree *)f->Get("minitree");
0152 t->BuildIndex("event");
0153 TTreeIndex *index = (TTreeIndex *)t->GetTreeIndex();
0154 int event, NClusLayer1, NClusLayer2, NPrototkl, NRecotkl_Raw, NRecotkl_GenMatched, NGenHadron;
0155 float PV_z, TruthPV_z, vtxzwei;
0156 float MBD_centrality;
0157 float mbd_south_charge_sum, mbd_north_charge_sum, mbd_charge_sum, mbd_charge_asymm, mbd_z_vtx;
0158 bool is_min_bias, InttBco_IsToBeRemoved;
0159 bool firedTrig10_MBDSNgeq2, firedTrig12_vtxle10cm, firedTrig13_vtxle30cm, MbdNSge0, MbdZvtxle10cm, validMbdVtx;
0160 vector<int> *clusLayer = 0;
0161 vector<float> *clusPhi = 0, *clusEta = 0, *clusPhiSize = 0;
0162 vector<unsigned int> *clusADC = 0;
0163 vector<float> *tklclus1Phi = 0, *tklclus1Eta = 0, *tklclus1PhiSize = 0, *tklclus2Phi = 0, *tklclus2Eta = 0, *tklclus2PhiSize = 0;
0164 vector<unsigned int> *tklclus1ADC = 0, *tklclus2ADC = 0;
0165
0166 vector<float> *recotklraw_eta = 0, *recotklraw_phi = 0, *recotklraw_deta = 0, *recotklraw_dphi = 0, *recotklraw_dR = 0;
0167 t->SetBranchAddress("event", &event);
0168 t->SetBranchAddress("is_min_bias", &is_min_bias);
0169 if (t->GetListOfBranches()->FindObject("InttBco_IsToBeRemoved"))
0170 {
0171 t->SetBranchAddress("InttBco_IsToBeRemoved", &InttBco_IsToBeRemoved);
0172 }
0173 else
0174 {
0175 InttBco_IsToBeRemoved = false;
0176 }
0177 t->SetBranchAddress("firedTrig10_MBDSNgeq2", &firedTrig10_MBDSNgeq2);
0178 t->SetBranchAddress("firedTrig12_vtxle10cm", &firedTrig12_vtxle10cm);
0179 t->SetBranchAddress("firedTrig13_vtxle30cm", &firedTrig13_vtxle30cm);
0180 t->SetBranchAddress("MbdNSge0", &MbdNSge0);
0181 t->SetBranchAddress("MbdZvtxle10cm", &MbdZvtxle10cm);
0182 t->SetBranchAddress("validMbdVtx", &validMbdVtx);
0183 t->SetBranchAddress("MBD_centrality", &MBD_centrality);
0184 t->SetBranchAddress("MBD_z_vtx", &mbd_z_vtx);
0185 t->SetBranchAddress("MBD_south_charge_sum", &mbd_south_charge_sum);
0186 t->SetBranchAddress("MBD_north_charge_sum", &mbd_north_charge_sum);
0187 t->SetBranchAddress("MBD_charge_sum", &mbd_charge_sum);
0188 t->SetBranchAddress("MBD_charge_asymm", &mbd_charge_asymm);
0189 t->SetBranchAddress("NClusLayer1", &NClusLayer1);
0190 t->SetBranchAddress("NClusLayer2", &NClusLayer2);
0191 t->SetBranchAddress("NPrototkl", &NPrototkl);
0192 t->SetBranchAddress("NRecotkl_Raw", &NRecotkl_Raw);
0193 t->SetBranchAddress("PV_z", &PV_z);
0194 t->SetBranchAddress("vtxzwei", &vtxzwei);
0195 t->SetBranchAddress("TruthPV_z", &TruthPV_z);
0196 t->SetBranchAddress("clusLayer", &clusLayer);
0197 t->SetBranchAddress("clusPhi", &clusPhi);
0198 t->SetBranchAddress("clusEta", &clusEta);
0199 t->SetBranchAddress("clusPhiSize", &clusPhiSize);
0200 t->SetBranchAddress("clusADC", &clusADC);
0201 t->SetBranchAddress("tklclus1Phi", &tklclus1Phi);
0202 t->SetBranchAddress("tklclus1Eta", &tklclus1Eta);
0203 t->SetBranchAddress("tklclus1PhiSize", &tklclus1PhiSize);
0204 t->SetBranchAddress("tklclus2Phi", &tklclus2Phi);
0205 t->SetBranchAddress("tklclus2Eta", &tklclus2Eta);
0206 t->SetBranchAddress("tklclus2PhiSize", &tklclus2PhiSize);
0207 t->SetBranchAddress("tklclus1ADC", &tklclus1ADC);
0208 t->SetBranchAddress("tklclus2ADC", &tklclus2ADC);
0209 t->SetBranchAddress("recotklraw_eta", &recotklraw_eta);
0210 t->SetBranchAddress("recotklraw_phi", &recotklraw_phi);
0211 t->SetBranchAddress("recotklraw_deta", &recotklraw_deta);
0212 t->SetBranchAddress("recotklraw_dphi", &recotklraw_dphi);
0213 t->SetBranchAddress("recotklraw_dR", &recotklraw_dR);
0214
0215 for (int ev = 0; ev < t->GetEntriesFast(); ev++)
0216 {
0217 Long64_t local = t->LoadTree(index->GetIndex()[ev]);
0218 t->GetEntry(local);
0219
0220 cout << "Event=" << event << "; NClusLayer1=" << NClusLayer1 << "; NTklclusLayer1=" << tklclus1Phi->size() << "; NPrototkl=" << NPrototkl << "; NRecotkl_Raw=" << NRecotkl_Raw << endl;
0221
0222 if (InttBco_IsToBeRemoved)
0223 continue;
0224
0225 bool InttZvtxle10cm = (PV_z >= -10. && PV_z <= 10.);
0226 bool evtsel = validMbdVtx && MbdNSge0 && is_min_bias && firedTrig10_MBDSNgeq2 && MbdZvtxle10cm && InttZvtxle10cm;
0227 if (!evtsel)
0228 continue;
0229
0230 hM_NClusLayer1->Fill(NClusLayer1);
0231 hM_NClusLayer2->Fill(NClusLayer2);
0232 hM_NTklclusLayer1->Fill(tklclus1Phi->size());
0233 hM_NPrototkl->Fill(NPrototkl);
0234 hM_NRecotkl_Raw->Fill(NRecotkl_Raw);
0235
0236
0237 hM_NClusLayer1_zvtxwei->Fill(NClusLayer1, vtxzwei);
0238 hM_NClusLayer2_zvtxwei->Fill(NClusLayer2, vtxzwei);
0239 hM_NTklclusLayer1_zvtxwei->Fill(tklclus1Phi->size(), vtxzwei);
0240 hM_NPrototkl_zvtxwei->Fill(NPrototkl, vtxzwei);
0241 hM_NRecotkl_Raw_zvtxwei->Fill(NRecotkl_Raw, vtxzwei);
0242
0243 int NClusLayer1_clusADCgt35 = 0;
0244
0245 hM_RecoPVz->Fill(PV_z, vtxzwei);
0246
0247 cout << "Event " << event << " has " << clusPhi->size() << " clusters" << endl;
0248 for (size_t j = 0; j < clusPhiSize->size(); j++)
0249 {
0250 hM_clusphi->Fill(clusPhi->at(j));
0251 hM_cluseta->Fill(clusEta->at(j));
0252 hM_clusphisize->Fill(clusPhiSize->at(j));
0253 hM_clusadc->Fill(clusADC->at(j));
0254 hM_clusphi_clusphisize->Fill(clusPhi->at(j), clusPhiSize->at(j));
0255 hM_cluseta_clusphisize->Fill(clusEta->at(j), clusPhiSize->at(j));
0256
0257 hM_clusphi_zvtxwei->Fill(clusPhi->at(j), vtxzwei);
0258 hM_cluseta_zvtxwei->Fill(clusEta->at(j), vtxzwei);
0259 hM_clusphisize_zvtxwei->Fill(clusPhiSize->at(j), vtxzwei);
0260 hM_clusphi_clusphisize_zvtxwei->Fill(clusPhi->at(j), clusPhiSize->at(j), vtxzwei);
0261 hM_cluseta_clusphisize_zvtxwei->Fill(clusEta->at(j), clusPhiSize->at(j), vtxzwei);
0262 }
0263
0264
0265 for (size_t j = 0; j < tklclus1PhiSize->size(); j++)
0266 {
0267 hM_tklclus1phisize->Fill(tklclus1PhiSize->at(j), vtxzwei);
0268 hM_tklclus2phisize->Fill(tklclus2PhiSize->at(j), vtxzwei);
0269 hM_tklclus1phisize_tklclus2phisize->Fill(tklclus1PhiSize->at(j), tklclus2PhiSize->at(j), vtxzwei);
0270 hM_tklclus1phi_tklclus1phisize->Fill(tklclus1Phi->at(j), tklclus1PhiSize->at(j), vtxzwei);
0271 hM_tklclus2phi_tklclus2phisize->Fill(tklclus2Phi->at(j), tklclus2PhiSize->at(j), vtxzwei);
0272 }
0273
0274 for (size_t j = 0; j < recotklraw_eta->size(); j++)
0275 {
0276 hM_dEta_reco->Fill(recotklraw_deta->at(j), vtxzwei);
0277 hM_dEta_reco_altrange->Fill(recotklraw_deta->at(j), vtxzwei);
0278 hM_dPhi_reco->Fill(recotklraw_dphi->at(j), vtxzwei);
0279 hM_dPhi_reco_altrange->Fill(recotklraw_dphi->at(j), vtxzwei);
0280 hM_dR_reco->Fill(recotklraw_dR->at(j), vtxzwei);
0281 hM_dR_reco_altrange->Fill(recotklraw_dR->at(j), vtxzwei);
0282 hM_dR_reco_LogX->Fill(recotklraw_dR->at(j), vtxzwei);
0283 hM_Eta_reco->Fill(recotklraw_eta->at(j), vtxzwei);
0284 hM_Phi_reco->Fill(recotklraw_phi->at(j), vtxzwei);
0285 hM_Eta_vtxZ_reco_incl->Fill(recotklraw_eta->at(j), PV_z, vtxzwei);
0286 }
0287
0288 for (size_t i = 0; i < centrality_cut.size() - 1; i++)
0289 {
0290 if (MBD_centrality >= centrality_cut[i] && MBD_centrality < centrality_cut[i + 1])
0291 {
0292 for (size_t j = 0; j < recotklraw_eta->size(); j++)
0293 {
0294 hM_dEta_reco_Centrality[i]->Fill(recotklraw_deta->at(j), vtxzwei);
0295 hM_dPhi_reco_Centrality[i]->Fill(recotklraw_dphi->at(j), vtxzwei);
0296 hM_dR_reco_Centrality[i]->Fill(recotklraw_dR->at(j), vtxzwei);
0297 hM_Eta_vtxZ_reco_Centrality[i]->Fill(recotklraw_eta->at(j), PV_z, vtxzwei);
0298 }
0299 }
0300 }
0301
0302 if (fabs(mbd_charge_asymm) <= 0.75)
0303 {
0304 hM_MBDChargeAsymm_Le0p75->Fill(mbd_charge_asymm, vtxzwei);
0305
0306 for (size_t i = 0; i < centrality_cut.size() - 1; i++)
0307 {
0308 if (MBD_centrality >= centrality_cut[i] && MBD_centrality < centrality_cut[i + 1])
0309 {
0310 for (size_t j = 0; j < recotklraw_eta->size(); j++)
0311 {
0312 hM_dEta_reco_Centrality_MBDAsymLe0p75[i]->Fill(recotklraw_deta->at(j), vtxzwei);
0313 hM_dPhi_reco_Centrality_MBDAsymLe0p75[i]->Fill(recotklraw_dphi->at(j), vtxzwei);
0314 hM_dR_reco_Centrality_MBDAsymLe0p75[i]->Fill(recotklraw_dR->at(j), vtxzwei);
0315 hM_Eta_vtxZ_reco_Centrality_MBDAsymLe0p75[i]->Fill(recotklraw_eta->at(j), PV_z, vtxzwei);
0316 }
0317 }
0318 }
0319 }
0320
0321 if (fabs(mbd_charge_asymm) <= 0.75 && (PV_z >= -20 && PV_z <= 20))
0322 {
0323 hM_RecoPVz_MBDAsymLe0p75_VtxZm20to20->Fill(PV_z, vtxzwei);
0324 hM_MBDChargeAsymm_Le0p75_VtxZm20to20->Fill(mbd_charge_asymm, vtxzwei);
0325
0326 if (MBD_centrality >= 0 && MBD_centrality <= 70)
0327 {
0328 for (size_t j = 0; j < recotklraw_eta->size(); j++)
0329 {
0330 hM_dEta_reco_altrange_Centrality0to70_MBDAsymLe0p75_VtxZm20to20->Fill(recotklraw_deta->at(j), vtxzwei);
0331 hM_dPhi_reco_altrange_Centrality0to70_MBDAsymLe0p75_VtxZm20to20->Fill(recotklraw_dphi->at(j), vtxzwei);
0332 hM_dR_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20->Fill(recotklraw_dR->at(j), vtxzwei);
0333 hM_dR_reco_altrange_Centrality0to70_MBDAsymLe0p75_VtxZm20to20->Fill(recotklraw_dR->at(j), vtxzwei);
0334 hM_Eta_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20->Fill(recotklraw_eta->at(j), vtxzwei);
0335 hM_Phi_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20->Fill(recotklraw_phi->at(j), vtxzwei);
0336 hM_Eta_vtxZ_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20->Fill(recotklraw_eta->at(j), PV_z, vtxzwei);
0337 hM_Eta_Phi_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20->Fill(recotklraw_eta->at(j), recotklraw_phi->at(j), vtxzwei);
0338 }
0339 }
0340
0341 for (size_t i = 0; i < centrality_cut.size() - 1; i++)
0342 {
0343 if (MBD_centrality >= centrality_cut[i] && MBD_centrality < centrality_cut[i + 1])
0344 {
0345 for (size_t j = 0; j < recotklraw_eta->size(); j++)
0346 {
0347 hM_dEta_reco_Centrality_MBDAsymLe0p75_VtxZm20to20[i]->Fill(recotklraw_deta->at(j), vtxzwei);
0348 hM_dPhi_reco_Centrality_MBDAsymLe0p75_VtxZm20to20[i]->Fill(recotklraw_dphi->at(j), vtxzwei);
0349 hM_dR_reco_Centrality_MBDAsymLe0p75_VtxZm20to20[i]->Fill(recotklraw_dR->at(j), vtxzwei);
0350 hM_Eta_vtxZ_reco_Centrality_MBDAsymLe0p75_VtxZm20to20[i]->Fill(recotklraw_eta->at(j), PV_z, vtxzwei);
0351 hM_Eta_Phi_reco_Centrality_MBDAsymLe0p75_VtxZm20to20[i]->Fill(recotklraw_eta->at(j), recotklraw_phi->at(j), vtxzwei);
0352 hM_Eta_reco_Centrality_MBDAsymLe0p75_VtxZm20to20[i]->Fill(recotklraw_eta->at(j), vtxzwei);
0353 }
0354 }
0355 }
0356 }
0357 }
0358
0359 f->Close();
0360
0361 fout->cd();
0362 hM_NClusLayer1->Write();
0363 hM_NClusLayer2->Write();
0364 hM_NTklclusLayer1->Write();
0365 hM_NRecotkl_Raw->Write();
0366 hM_NClusLayer1_zvtxwei->Write();
0367 hM_NTklclusLayer1_zvtxwei->Write();
0368 hM_NRecotkl_Raw_zvtxwei->Write();
0369 hM_RecoPVz->Write();
0370 hM_RecoPVz_MBDAsymLe0p75_VtxZm20to20->Write();
0371 hM_MBDChargeAsymm_Le0p75->Write();
0372 hM_MBDChargeAsymm_Le0p75_VtxZm20to20->Write();
0373 hM_clusphi->Write();
0374 hM_cluseta->Write();
0375 hM_clusphisize->Write();
0376 hM_clusadc->Write();
0377 hM_clusphi_clusphisize->Write();
0378 hM_cluseta_clusphisize->Write();
0379 hM_clusphi_zvtxwei->Write();
0380 hM_cluseta_zvtxwei->Write();
0381 hM_clusphisize_zvtxwei->Write();
0382 hM_clusphi_clusphisize_zvtxwei->Write();
0383 hM_cluseta_clusphisize_zvtxwei->Write();
0384 hM_tklclus1phisize->Write();
0385 hM_tklclus2phisize->Write();
0386 hM_tklclus1phisize_tklclus2phisize->Write();
0387 hM_tklclus1phi_tklclus1phisize->Write();
0388 hM_tklclus2phi_tklclus2phisize->Write();
0389 hM_dEta_reco->Write();
0390 hM_dEta_reco->Write();
0391 hM_dEta_reco_altrange->Write();
0392 hM_dEta_reco_altrange_Centrality0to70_MBDAsymLe0p75_VtxZm20to20->Write();
0393 hM_dPhi_reco->Write();
0394 hM_dPhi_reco_altrange->Write();
0395 hM_dPhi_reco_altrange_Centrality0to70_MBDAsymLe0p75_VtxZm20to20->Write();
0396 hM_dR_reco->Write();
0397 hM_dR_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20->Write();
0398 hM_dR_reco_altrange->Write();
0399 hM_dR_reco_altrange_Centrality0to70_MBDAsymLe0p75_VtxZm20to20->Write();
0400 hM_dR_reco_LogX->Write();
0401 hM_Eta_reco->Write();
0402 hM_Eta_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20->Write();
0403 hM_Phi_reco->Write();
0404 hM_Phi_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20->Write();
0405 hM_Eta_vtxZ_reco_incl->Write();
0406 hM_Eta_vtxZ_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20->Write();
0407 hM_Eta_Phi_reco_Centrality0to70_MBDAsymLe0p75_VtxZm20to20->Write();
0408 for (size_t i = 0; i < centrality_cut.size() - 1; i++)
0409 {
0410 hM_dEta_reco_Centrality[i]->Write();
0411 hM_dPhi_reco_Centrality[i]->Write();
0412 hM_dR_reco_Centrality[i]->Write();
0413 hM_Eta_vtxZ_reco_Centrality[i]->Write();
0414 hM_dEta_reco_Centrality_MBDAsymLe0p75[i]->Write();
0415 hM_dPhi_reco_Centrality_MBDAsymLe0p75[i]->Write();
0416 hM_dR_reco_Centrality_MBDAsymLe0p75[i]->Write();
0417 hM_Eta_vtxZ_reco_Centrality_MBDAsymLe0p75[i]->Write();
0418 hM_dEta_reco_Centrality_MBDAsymLe0p75_VtxZm20to20[i]->Write();
0419 hM_dPhi_reco_Centrality_MBDAsymLe0p75_VtxZm20to20[i]->Write();
0420 hM_dR_reco_Centrality_MBDAsymLe0p75_VtxZm20to20[i]->Write();
0421 hM_Eta_vtxZ_reco_Centrality_MBDAsymLe0p75_VtxZm20to20[i]->Write();
0422 hM_Eta_Phi_reco_Centrality_MBDAsymLe0p75_VtxZm20to20[i]->Write();
0423 hM_Eta_reco_Centrality_MBDAsymLe0p75_VtxZm20to20[i]->Write();
0424 }
0425
0426 fout->Close();
0427 }
0428
0429 int main(int argc, char *argv[])
0430 {
0431 TString infname;
0432 TString outfname;
0433
0434 if (argc == 1)
0435 {
0436 infname = "/sphenix/user/hjheng/TrackletAna/minitree/INTT/TrackletMinitree_ana382_zvtx-20cm_dummyAlignParams/TrackletAna_minitree_Evt0to2000_dRcut0p5.root";
0437 outfname = "/sphenix/user/hjheng/TrackletAna/analysis_INTT/plot/hists/ana382_zvtx-20cm_dummyAlignParams/Hists_RecoTracklets.root";
0438 }
0439 else if (argc == 3)
0440 {
0441 infname = argv[1];
0442 outfname = argv[2];
0443 }
0444 else
0445 {
0446 std::cout << "Usage: ./plotTracklets [infile] [outfile]" << std::endl;
0447 return 0;
0448 }
0449
0450 cout << "[Run Info] Input file = " << infname << endl << " Output file = " << outfname << endl << "-----------" << endl;
0451
0452 makehist(infname, outfname);
0453
0454 return 0;
0455 }