File indexing completed on 2025-08-06 08:12:28
0001 #ifndef INTTEta_h
0002 #define INTTEta_h
0003
0004 #include "INTTXYvtxEvt.h"
0005 #include "MegaTrackFinder.h"
0006 #include "ana_map_folder/ana_map_v1.h"
0007
0008
0009
0010 namespace ana_map_version = ANA_MAP_V3;
0011
0012 class INTTEta : public INTTXYvtxEvt
0013 {
0014 public:
0015 INTTEta(
0016 string run_type,
0017 string out_folder_directory,
0018 pair<double,double> beam_origin,
0019 int geo_mode_id,
0020 double phi_diff_cut = 0.11,
0021 pair<double, double> DCA_cut = {-1,1},
0022 int N_clu_cutl = 20,
0023 int N_clu_cut = 10000,
0024 bool draw_event_display = true,
0025 double peek = 3.32405,
0026 double angle_diff_new_l = 0.0,
0027 double angle_diff_new_r = 3,
0028 bool print_message_opt = true
0029 ):
0030 INTTXYvtxEvt(run_type, out_folder_directory, beam_origin, geo_mode_id, phi_diff_cut, DCA_cut, N_clu_cutl, N_clu_cut, draw_event_display, peek, angle_diff_new_l, angle_diff_new_r, print_message_opt, 2.5, 9)
0031 {
0032 track_cluster_ratio_1D.clear();
0033 track_cluster_ratio_1D_MC.clear();
0034 dNdeta_1D.clear();
0035 track_eta_phi_2D.clear();
0036 track_eta_z_2D.clear();
0037 dNdeta_1D_MC.clear();
0038 dNdeta_1D_MC_edge_eta_cut.clear();
0039 final_dNdeta_1D.clear();
0040 final_dNdeta_1D_MC.clear();
0041 final_dNdeta_multi_1D.clear();
0042 track_eta_z_2D_MC.clear();
0043 track_delta_phi_1D.clear();
0044 track_DCA_distance.clear();
0045 final_track_delta_phi_1D.clear();
0046 final_track_multi_delta_phi_1D.clear();
0047
0048 track_delta_eta_1D.clear();
0049 track_delta_eta_1D_post.clear();
0050 track_phi_DCA_2D.clear();
0051 track_DeltaPhi_eta_2D.clear();
0052 track_DeltaPhi_DeltaEta_2D.clear();
0053 track_ratio_1D.clear();
0054
0055 proto_pair_index.clear();
0056 proto_pair_delta_phi_abs.clear();
0057 proto_pair_delta_phi.clear();
0058 inner_used_clu.clear();
0059 outer_used_clu.clear();
0060
0061 coarse_eta_z_2D_MC.clear();
0062 coarse_eta_z_2D_fulleta_MC.clear();
0063 coarse_Reco_SignalNTracklet_Single_eta_z_2D.clear();
0064 coarse_Reco_SignalNTracklet_Multi_eta_z_2D.clear();
0065
0066 out_recotrack_eta_d.clear();
0067 out_recotrack_phi_d.clear();
0068 out_truetrack_eta_d.clear();
0069 out_truetrack_phi_d.clear();
0070
0071 out_track_eta_i.clear();
0072 out_track_delta_phi_d.clear();
0073 clu_multi_used_tight = 0;
0074 clu_multi_used_loose = 0;
0075 effective_total_NClus = 0;
0076
0077 out_N2Clu_track = 0;
0078 out_N3Clu_track = 0;
0079 out_N4Clu_track = 0;
0080
0081 eta_z_convert_map.clear();
0082 eta_z_convert_inverse_map.clear();
0083 eta_z_convert_map_index = 0;
0084
0085
0086
0087 inner_clu_phi_map.clear();
0088 outer_clu_phi_map.clear();
0089 inner_clu_phi_map = vector<vector<pair<bool,clu_info>>>(360);
0090 outer_clu_phi_map = vector<vector<pair<bool,clu_info>>>(360);
0091
0092 mega_track_finder = new MegaTrackFinder(run_type, out_folder_directory, centrality_map.size(), beam_origin, true);
0093
0094
0095 N_GoodEvent_vec = vector<long long>(10,0);
0096
0097 InitHist();
0098 InitGraph();
0099 InitTree();
0100
0101 cout<<"test, eta_region.size() : "<<eta_region.size()<<endl;
0102 cout<<"test, z_region.size() : "<<z_region.size()<<endl;
0103 for (int i = 0; i < z_region.size() - 1; i++)
0104 {
0105 for (int j = 0; j < eta_region.size() - 1; j++)
0106 {
0107 eta_z_convert_map[std::to_string(j+1) + "_" + std::to_string(i+1)] = eta_z_convert_map_index;
0108 eta_z_convert_inverse_map[eta_z_convert_map_index] = {j+1, i+1};
0109 eta_z_convert_map_index += 1;
0110 }
0111 }
0112
0113 cout<<"In INTTEta, centrality_region_size: "<<centrality_region_size<<" eta_region_size: "<<eta_region_size<<" z_region_size: "<<z_region.size() - 1<<endl;
0114 good_tracklet_counting = std::vector<std::vector<int>>(centrality_region_size, std::vector<int>(((eta_region.size() - 1) * (z_region.size() - 1)), 0));
0115 good_tracklet_multi_counting = std::vector<std::vector<int>>(centrality_region_size, std::vector<int>(((eta_region.size() - 1) * (z_region.size() - 1)), 0));
0116
0117 out_folder_directory_evt = out_folder_directory + "/evt_display";
0118 system(Form("mkdir %s", out_folder_directory_evt.c_str()));
0119
0120 loop_NGoodPair = 0;
0121 evt_NTrack = 0;
0122 evt_NTrack_MC = 0;
0123 N_GoodEvent = 0;
0124 return;
0125 };
0126
0127 INTTEta(string run_type, string out_folder_directory):INTTXYvtxEvt(run_type, out_folder_directory)
0128 {
0129 return;
0130 };
0131
0132 virtual void ProcessEvt(
0133 int event_i,
0134 vector<clu_info> temp_sPH_inner_nocolumn_vec,
0135 vector<clu_info> temp_sPH_outer_nocolumn_vec,
0136 vector<vector<double>> temp_sPH_nocolumn_vec,
0137 vector<vector<double>> temp_sPH_nocolumn_rz_vec,
0138 int NvtxMC,
0139 vector<double> TrigvtxMC,
0140 bool PhiCheckTag,
0141 Long64_t bco_full,
0142 pair<double,double> evt_z,
0143 int centrality_bin,
0144 vector<vector<float>> true_track_info,
0145 double zvtx_weighting
0146 );
0147
0148 void ClearEvt() override;
0149 void PrintPlots() override;
0150 void EndRun() override;
0151
0152 protected:
0153
0154 vector<TH1F *> track_cluster_ratio_1D;
0155 vector<TH1F *> track_cluster_ratio_1D_MC;
0156 vector<TH1F *> dNdeta_1D;
0157 vector<TH2F *> track_eta_phi_2D;
0158 vector<TH2F *> track_eta_z_2D;
0159
0160 vector<TH1F *> dNdeta_1D_MC;
0161 vector<TH1F *> dNdeta_1D_MC_edge_eta_cut;
0162 vector<TH2F *> track_eta_z_2D_MC;
0163
0164 vector<TH1F *> track_delta_eta_1D;
0165 vector<TH1F *> track_delta_eta_1D_post;
0166 vector<TH1F *> track_delta_phi_1D;
0167 vector<TH1F *> track_DCA_distance;
0168 vector<TH2F *> track_phi_DCA_2D;
0169
0170 vector<TH2F *> track_DeltaPhi_eta_2D;
0171 vector<TH2F *> track_DeltaPhi_DeltaEta_2D;
0172
0173 TH2F * track_correlation_2D;
0174 TH2F * track_ratio_2D;
0175 vector<TH1F *> track_ratio_1D;
0176
0177 TH2F * reco_eta_correlation_2D;
0178 TH2F * reco_eta_diff_reco3P_2D;
0179 TH1F * reco_eta_diff_1D;
0180
0181 TH2F * clu_used_centrality_2D;
0182
0183 vector<vector<TH1F *>> final_track_delta_phi_1D;
0184 vector<vector<TH1F *>> final_track_multi_delta_phi_1D;
0185
0186 vector<TH1F *> final_dNdeta_1D;
0187 vector<TH1F *> final_dNdeta_multi_1D;
0188 vector<TH1F *> final_dNdeta_1D_MC;
0189
0190 TGraph * evt_reco_track_gr_All;
0191 TGraph * evt_reco_track_gr_PhiLoose;
0192 TGraph * evt_reco_track_gr_Z;
0193 TGraph * evt_reco_track_gr_ZDCA;
0194 TGraph * evt_reco_track_gr_ZDCAPhi;
0195 TGraph * evt_true_track_gr;
0196
0197 MegaTrackFinder * mega_track_finder;
0198 TH2F * NClu3_track_centrality_2D;
0199 TH2F * NClu4_track_centrality_2D;
0200 TH1F * cluster4_track_phi_1D;
0201 TH1F * cluster3_track_phi_1D;
0202 TH1F * cluster3_inner_track_eta_1D;
0203 TH1F * cluster3_inner_track_phi_1D;
0204 TH1F * cluster3_outer_track_eta_1D;
0205 TH1F * cluster3_outer_track_phi_1D;
0206 TH1F * clu4_track_ReducedChi2_1D;
0207 TH1F * clu3_track_ReducedChi2_1D;
0208 TH1F * mega_track_eta_1D;
0209 TH2F * mega_track_finding_ratio_2D;
0210 TH2F * mega_track_contamination_2D;
0211
0212
0213 TH1F * check_inner_layer_clu_phi_1D;
0214 TH1F * check_outer_layer_clu_phi_1D;
0215
0216
0217
0218
0219
0220
0221
0222 TH1F * exclusive_NClus_inner;
0223 TH1F * exclusive_NClus_outer;
0224 TH1F * exclusive_NClus_sum;
0225
0226 TH1F * exclusive_cluster_inner_adc;
0227 TH1F * exclusive_cluster_outer_adc;
0228
0229 TH2F * exclusive_cluster_inner_eta_adc_2D;
0230 TH2F * exclusive_cluster_outer_eta_adc_2D;
0231
0232 TH2F * exclusive_cluster_inner_eta_phi_2D;
0233 TH2F * exclusive_cluster_outer_eta_phi_2D;
0234
0235 TH1F * exclusive_cluster_inner_eta;
0236 TH1F * exclusive_cluster_inner_phi;
0237 TH1F * exclusive_cluster_outer_eta;
0238 TH1F * exclusive_cluster_outer_phi;
0239 TH1F * exclusive_cluster_all_eta;
0240 TH1F * exclusive_cluster_all_phi;
0241
0242 TH1F * exclusive_tight_tracklet_eta;
0243 TH1F * exclusive_tight_tracklet_phi;
0244 TH1F * exclusive_loose_tracklet_eta;
0245 TH1F * exclusive_loose_tracklet_phi;
0246
0247
0248
0249
0250 vector<vector<pair<bool,clu_info>>> inner_clu_phi_map;
0251 vector<vector<pair<bool,clu_info>>> outer_clu_phi_map;
0252
0253 string out_folder_directory_evt;
0254
0255 int draw_evt_cut = 15;
0256 int print_plot_ratio = 3;
0257 int inner_NClu;
0258 int outer_NClu;
0259 int loop_NGoodPair;
0260 int evt_NTrack;
0261 int evt_NTrack_MC;
0262 long long N_GoodEvent;
0263 int clu_multi_used_loose;
0264 int clu_multi_used_tight;
0265 int effective_total_NClus;
0266 double pair_delta_phi;
0267 pair<int,int> pair_outer_index;
0268
0269 double INTT_layer_R[4] = {71.88, 77.32, 96.8, 102.62};
0270
0271 vector<long long> N_GoodEvent_vec;
0272 pair<double,double> Get_eta_pair;
0273 vector<vector<double>> final_eta_entry;
0274
0275
0276 vector<vector<int>> proto_pair_index;
0277 vector<vector<double>> proto_pair_delta_phi;
0278 vector<double> proto_pair_delta_phi_abs;
0279 map<string,int> inner_used_clu;
0280 map<string,int> outer_used_clu;
0281
0282 double Clus_InnerPhi_Offset_1;
0283 double Clus_InnerPhi_Offset_2;
0284 double Clus_OuterPhi_Offset_1;
0285 double Clus_OuterPhi_Offset_2;
0286
0287 double N_reco_cluster_short = 0;
0288
0289
0290 TH2F * track_cluster_ratio_multiplicity_2D;
0291 TH2F * track_cluster_ratio_multiplicity_2D_MC;
0292 TGraphErrors * track_gr;
0293
0294 TFile * out_file;
0295 TTree * tree_out;
0296 int out_eID;
0297 int out_evt_centrality_bin;
0298 int out_NTrueTrack;
0299 int out_total_NClus;
0300 int out_N2Clu_track;
0301 int out_N3Clu_track;
0302 int out_N4Clu_track;
0303 double out_evt_zvtx;
0304 double out_true_zvtx;
0305 vector<double> out_recotrack_eta_d;
0306 vector<double> out_recotrack_phi_d;
0307 vector<double> out_truetrack_eta_d;
0308 vector<double> out_truetrack_phi_d;
0309 vector<int> out_track_eta_i;
0310 vector<double> out_track_delta_phi_d;
0311
0312 TH1F * eta_region_hist;
0313
0314 map<int,int> centrality_map = ana_map_version::centrality_map;
0315 vector<string> centrality_region = ana_map_version::centrality_region;
0316
0317
0318 vector<double> eta_region = ana_map_version::eta_region;
0319 vector<double> z_region = ana_map_version::z_region;
0320 pair<double, double> selected_z_region_id = ana_map_version::selected_z_region_id;
0321 double signal_region = ana_map_version::signal_region;
0322
0323
0324
0325 int eta_z_convert_map_index;
0326 map<string,int> eta_z_convert_map;
0327 map<int, pair<int,int>> eta_z_convert_inverse_map;
0328
0329 TH2F * coarse_eta_z_map;
0330 vector<TH2F *> coarse_eta_z_2D_MC;
0331 vector<TH2F *> coarse_eta_z_2D_fulleta_MC;
0332 vector<TH2F *> coarse_Reco_SignalNTracklet_Single_eta_z_2D;
0333 vector<TH2F *> coarse_Reco_SignalNTracklet_Multi_eta_z_2D;
0334 TH2F * MBin_Z_evt_hist_2D;
0335 TH2F * MBin_Z_evt_hist_2D_MC;
0336
0337
0338
0339
0340 int tight_zvtx_bin = 6;
0341
0342 const int centrality_region_size = centrality_region.size();
0343 const int eta_region_size = eta_region.size() - 1;
0344 std::vector<std::vector<int>> good_tracklet_counting;
0345 std::vector<std::vector<int>> good_tracklet_multi_counting;
0346
0347 void InitHist();
0348 void InitGraph();
0349 void InitTree();
0350
0351 double grEY_stddev(TGraphErrors * input_grr);
0352 pair<double, double> mirrorPolynomial(double a, double b);
0353 pair<double,double> Get_eta(vector<double>p0, vector<double>p1, vector<double>p2);
0354 double convertTo360(double radian);
0355 void print_evt_plot(int event_i, int NTrueTrack, int innerNClu, int outerNClu);
0356 double get_clu_eta(vector<double> vertex, vector<double> clu_pos);
0357
0358 double get_delta_phi(double angle_1, double angle_2);
0359 double get_track_phi(double inner_clu_phi_in, double delta_phi_in);
0360 pair<int,int> GetTH2BinXY(int histNbinsX, int histNbinsY, int binglobal);
0361 double GetTH2Index1D(pair<int,int> XY_index, int histNbinsX);
0362 void DrawEtaZGrid();
0363 double get_TH1F_Entries(TH1F * hist_in);
0364 };
0365
0366 void INTTEta::InitHist()
0367 {
0368
0369
0370
0371
0372
0373 double Eta_NBin = 61;
0374 double Eta_Min = -3.05;
0375 double Eta_Max = 3.05;
0376
0377 final_track_delta_phi_1D = vector<vector<TH1F *>>(centrality_region.size());
0378 final_track_multi_delta_phi_1D = vector<vector<TH1F *>>(centrality_region.size());
0379 final_eta_entry = vector<vector<double>>(centrality_region.size());
0380
0381 coarse_eta_z_map = new TH2F("","", eta_region.size() - 1, &eta_region[0], z_region.size() - 1, &z_region[0]);
0382 coarse_eta_z_map -> GetXaxis() -> SetTitle("#eta");
0383 coarse_eta_z_map -> GetYaxis() -> SetTitle("Z vertex [mm]");
0384 coarse_eta_z_map -> GetXaxis() -> SetNdivisions(505);
0385
0386 for (int i = 0; i < centrality_region.size(); i++)
0387 {
0388
0389 coarse_eta_z_2D_MC.push_back( new TH2F("","", eta_region.size() - 1, &eta_region[0], z_region.size() - 1, &z_region[0]) );
0390 coarse_eta_z_2D_MC[i] -> GetXaxis() -> SetTitle("#eta");
0391 coarse_eta_z_2D_MC[i] -> GetYaxis() -> SetTitle("Z vertex [mm]");
0392 coarse_eta_z_2D_MC[i] -> GetXaxis() -> SetNdivisions(505);
0393
0394 coarse_eta_z_2D_fulleta_MC.push_back( new TH2F("","", eta_region.size() - 1, &eta_region[0], z_region.size() - 1, &z_region[0]) );
0395 coarse_eta_z_2D_fulleta_MC[i] -> GetXaxis() -> SetTitle("#eta");
0396 coarse_eta_z_2D_fulleta_MC[i] -> GetYaxis() -> SetTitle("Z vertex [mm]");
0397 coarse_eta_z_2D_fulleta_MC[i] -> GetXaxis() -> SetNdivisions(505);
0398
0399 coarse_Reco_SignalNTracklet_Single_eta_z_2D.push_back( new TH2F("","", eta_region.size() - 1, &eta_region[0], z_region.size() - 1, &z_region[0]) );
0400 coarse_Reco_SignalNTracklet_Single_eta_z_2D[i] -> GetXaxis() -> SetTitle("#eta");
0401 coarse_Reco_SignalNTracklet_Single_eta_z_2D[i] -> GetYaxis() -> SetTitle("Z vertex [mm]");
0402 coarse_Reco_SignalNTracklet_Single_eta_z_2D[i] -> GetXaxis() -> SetNdivisions(505);
0403
0404 coarse_Reco_SignalNTracklet_Multi_eta_z_2D.push_back( new TH2F("","", eta_region.size() - 1, &eta_region[0], z_region.size() - 1, &z_region[0]) );
0405 coarse_Reco_SignalNTracklet_Multi_eta_z_2D[i] -> GetXaxis() -> SetTitle("#eta");
0406 coarse_Reco_SignalNTracklet_Multi_eta_z_2D[i] -> GetYaxis() -> SetTitle("Z vertex [mm]");
0407 coarse_Reco_SignalNTracklet_Multi_eta_z_2D[i] -> GetXaxis() -> SetNdivisions(505);
0408
0409 track_cluster_ratio_1D.push_back(new TH1F("","track_cluster_ratio_1D",200,0,15));
0410 track_cluster_ratio_1D[i] -> GetXaxis() -> SetTitle("NClus / NTracks");
0411 track_cluster_ratio_1D[i] -> GetYaxis() -> SetTitle("Entry");
0412 track_cluster_ratio_1D[i] -> GetXaxis() -> SetNdivisions(505);
0413
0414 track_cluster_ratio_1D_MC.push_back(new TH1F("","track_cluster_ratio_1D_MC",200,0,15));
0415 track_cluster_ratio_1D_MC[i] -> GetXaxis() -> SetTitle("NClus / NTrackMC");
0416 track_cluster_ratio_1D_MC[i] -> GetYaxis() -> SetTitle("Entry");
0417 track_cluster_ratio_1D_MC[i] -> GetXaxis() -> SetNdivisions(505);
0418
0419 dNdeta_1D.push_back(new TH1F("","",Eta_NBin, Eta_Min, Eta_Max));
0420 dNdeta_1D[i] -> SetMarkerStyle(20);
0421 dNdeta_1D[i] -> SetMarkerSize(0.8);
0422 dNdeta_1D[i] -> SetMarkerColor(TColor::GetColor("#1A3947"));
0423 dNdeta_1D[i] -> SetLineColor(TColor::GetColor("#1A3947"));
0424 dNdeta_1D[i] -> SetLineWidth(2);
0425 dNdeta_1D[i] -> GetYaxis() -> SetTitle("Entry");
0426 dNdeta_1D[i] -> GetXaxis() -> SetTitle("N tracklet #eta");
0427
0428 dNdeta_1D[i] -> SetTitleSize(0.06, "X");
0429 dNdeta_1D[i] -> SetTitleSize(0.06, "Y");
0430 dNdeta_1D[i] -> GetXaxis() -> SetTitleOffset (0.71);
0431 dNdeta_1D[i] -> GetYaxis() -> SetTitleOffset (1.1);
0432 dNdeta_1D[i] -> GetXaxis() -> CenterTitle(true);
0433 dNdeta_1D[i] -> GetYaxis() -> CenterTitle(true);
0434
0435 dNdeta_1D_MC.push_back(new TH1F("","",Eta_NBin, Eta_Min, Eta_Max));
0436 dNdeta_1D_MC[i] -> SetMarkerStyle(20);
0437 dNdeta_1D_MC[i] -> SetMarkerSize(0.8);
0438 dNdeta_1D_MC[i] -> SetMarkerColor(TColor::GetColor("#1A3947"));
0439 dNdeta_1D_MC[i] -> SetLineColor(TColor::GetColor("#1A3947"));
0440 dNdeta_1D_MC[i] -> SetLineWidth(2);
0441 dNdeta_1D_MC[i] -> GetYaxis() -> SetTitle("Entry");
0442 dNdeta_1D_MC[i] -> GetXaxis() -> SetTitle("N track #eta");
0443
0444 dNdeta_1D_MC[i] -> SetTitleSize(0.06, "X");
0445 dNdeta_1D_MC[i] -> SetTitleSize(0.06, "Y");
0446 dNdeta_1D_MC[i] -> GetXaxis() -> SetTitleOffset (0.71);
0447 dNdeta_1D_MC[i] -> GetYaxis() -> SetTitleOffset (1.1);
0448 dNdeta_1D_MC[i] -> GetXaxis() -> CenterTitle(true);
0449 dNdeta_1D_MC[i] -> GetYaxis() -> CenterTitle(true);
0450
0451 dNdeta_1D_MC_edge_eta_cut.push_back(new TH1F("","",Eta_NBin, Eta_Min, Eta_Max));
0452 dNdeta_1D_MC_edge_eta_cut[i] -> SetMarkerStyle(20);
0453 dNdeta_1D_MC_edge_eta_cut[i] -> SetMarkerSize(0.8);
0454 dNdeta_1D_MC_edge_eta_cut[i] -> SetMarkerColor(TColor::GetColor("#1A3947"));
0455 dNdeta_1D_MC_edge_eta_cut[i] -> SetLineColor(TColor::GetColor("#1A3947"));
0456 dNdeta_1D_MC_edge_eta_cut[i] -> SetLineWidth(2);
0457 dNdeta_1D_MC_edge_eta_cut[i] -> GetYaxis() -> SetTitle("Entry");
0458 dNdeta_1D_MC_edge_eta_cut[i] -> GetXaxis() -> SetTitle("N track #eta");
0459
0460 dNdeta_1D_MC_edge_eta_cut[i] -> SetTitleSize(0.06, "X");
0461 dNdeta_1D_MC_edge_eta_cut[i] -> SetTitleSize(0.06, "Y");
0462 dNdeta_1D_MC_edge_eta_cut[i] -> GetXaxis() -> SetTitleOffset (0.71);
0463 dNdeta_1D_MC_edge_eta_cut[i] -> GetYaxis() -> SetTitleOffset (1.1);
0464 dNdeta_1D_MC_edge_eta_cut[i] -> GetXaxis() -> CenterTitle(true);
0465 dNdeta_1D_MC_edge_eta_cut[i] -> GetYaxis() -> CenterTitle(true);
0466
0467 final_dNdeta_1D.push_back(new TH1F("","",eta_region.size() - 1, &eta_region[0]));
0468 final_dNdeta_1D[i] -> SetMarkerStyle(20);
0469 final_dNdeta_1D[i] -> SetMarkerSize(0.8);
0470 final_dNdeta_1D[i] -> SetMarkerColor(TColor::GetColor("#1A3947"));
0471 final_dNdeta_1D[i] -> SetLineColor(TColor::GetColor("#1A3947"));
0472 final_dNdeta_1D[i] -> SetLineWidth(2);
0473 final_dNdeta_1D[i] -> GetYaxis() -> SetTitle("dN_{ch}/d#eta");
0474 final_dNdeta_1D[i] -> GetXaxis() -> SetTitle("#eta");
0475
0476 final_dNdeta_1D[i] -> SetTitleSize(0.06, "X");
0477 final_dNdeta_1D[i] -> SetTitleSize(0.06, "Y");
0478 final_dNdeta_1D[i] -> GetXaxis() -> SetTitleOffset (0.71);
0479 final_dNdeta_1D[i] -> GetYaxis() -> SetTitleOffset (1.1);
0480 final_dNdeta_1D[i] -> GetXaxis() -> CenterTitle(true);
0481 final_dNdeta_1D[i] -> GetYaxis() -> CenterTitle(true);
0482
0483 final_dNdeta_multi_1D.push_back(new TH1F("","",eta_region.size() - 1, &eta_region[0]));
0484 final_dNdeta_multi_1D[i] -> SetMarkerStyle(20);
0485 final_dNdeta_multi_1D[i] -> SetMarkerSize(0.8);
0486 final_dNdeta_multi_1D[i] -> SetMarkerColor(TColor::GetColor("#c48045"));
0487 final_dNdeta_multi_1D[i] -> SetLineColor(TColor::GetColor("#c48045"));
0488 final_dNdeta_multi_1D[i] -> SetLineWidth(2);
0489 final_dNdeta_multi_1D[i] -> GetYaxis() -> SetTitle("dN_{ch}/d#eta");
0490 final_dNdeta_multi_1D[i] -> GetXaxis() -> SetTitle("#eta");
0491
0492 final_dNdeta_multi_1D[i] -> SetTitleSize(0.06, "X");
0493 final_dNdeta_multi_1D[i] -> SetTitleSize(0.06, "Y");
0494 final_dNdeta_multi_1D[i] -> GetXaxis() -> SetTitleOffset (0.71);
0495 final_dNdeta_multi_1D[i] -> GetYaxis() -> SetTitleOffset (1.1);
0496 final_dNdeta_multi_1D[i] -> GetXaxis() -> CenterTitle(true);
0497 final_dNdeta_multi_1D[i] -> GetYaxis() -> CenterTitle(true);
0498
0499 final_dNdeta_1D_MC.push_back(new TH1F("","",eta_region.size() - 1, &eta_region[0]));
0500 final_dNdeta_1D_MC[i] -> SetMarkerStyle(20);
0501 final_dNdeta_1D_MC[i] -> SetMarkerSize(0.8);
0502 final_dNdeta_1D_MC[i] -> SetMarkerColor(TColor::GetColor("#1A3947"));
0503 final_dNdeta_1D_MC[i] -> SetLineColor(TColor::GetColor("#1A3947"));
0504 final_dNdeta_1D_MC[i] -> SetLineWidth(2);
0505 final_dNdeta_1D_MC[i] -> GetYaxis() -> SetTitle("dN_{ch}/d#eta");
0506 final_dNdeta_1D_MC[i] -> GetXaxis() -> SetTitle("#eta");
0507
0508 final_dNdeta_1D_MC[i] -> SetTitleSize(0.06, "X");
0509 final_dNdeta_1D_MC[i] -> SetTitleSize(0.06, "Y");
0510 final_dNdeta_1D_MC[i] -> GetXaxis() -> SetTitleOffset (0.71);
0511 final_dNdeta_1D_MC[i] -> GetYaxis() -> SetTitleOffset (1.1);
0512 final_dNdeta_1D_MC[i] -> GetXaxis() -> CenterTitle(true);
0513 final_dNdeta_1D_MC[i] -> GetYaxis() -> CenterTitle(true);
0514
0515 track_eta_phi_2D.push_back(new TH2F("","track_eta_phi_2D", 200, -40, 400, Eta_NBin, Eta_Min, Eta_Max));
0516 track_eta_phi_2D[i] -> GetXaxis() -> SetTitle("tracklet #phi");
0517 track_eta_phi_2D[i] -> GetYaxis() -> SetTitle("tracklet #eta");
0518 track_eta_phi_2D[i] -> GetXaxis() -> SetNdivisions(505);
0519
0520 track_eta_z_2D.push_back(new TH2F("","track_eta_z_2D", Eta_NBin, Eta_Min, Eta_Max, 300, -420, 20));
0521 track_eta_z_2D[i] -> GetXaxis() -> SetTitle("tracklet #eta");
0522 track_eta_z_2D[i] -> GetYaxis() -> SetTitle("z vertex [mm]");
0523 track_eta_z_2D[i] -> GetXaxis() -> SetNdivisions(505);
0524
0525 track_eta_z_2D_MC.push_back(new TH2F("","track_eta_z_2D_MC", Eta_NBin, Eta_Min, Eta_Max, 300, -420, 20));
0526 track_eta_z_2D_MC[i] -> GetXaxis() -> SetTitle("track #eta");
0527 track_eta_z_2D_MC[i] -> GetYaxis() -> SetTitle("z vertex [mm]");
0528 track_eta_z_2D_MC[i] -> GetXaxis() -> SetNdivisions(505);
0529
0530 track_delta_eta_1D.push_back(new TH1F("","track_delta_eta_1D", 200, -1.5, 1.5));
0531 track_delta_eta_1D[i] -> GetXaxis() -> SetTitle("Clus #Delta#eta");
0532 track_delta_eta_1D[i] -> GetYaxis() -> SetTitle("Entry");
0533 track_delta_eta_1D[i] -> GetXaxis() -> SetNdivisions(505);
0534
0535 track_delta_eta_1D_post.push_back(new TH1F("","track_delta_eta_1D_ potrack_delta_eta_1D_post", 200, -1.5, 1.5));
0536 track_delta_eta_1D_post[i] -> GetXaxis() -> SetTitle("Clus #Delta#eta");
0537 track_delta_eta_1D_post[i] -> GetYaxis() -> SetTitle("Entry");
0538 track_delta_eta_1D_post[i] -> GetXaxis() -> SetNdivisions(505);
0539
0540 track_delta_phi_1D.push_back(new TH1F("","track_delta_phi_1D", 200, -1.5, 1.5));
0541 track_delta_phi_1D[i] -> GetXaxis() -> SetTitle("Clus #Delta#phi [degree]");
0542 track_delta_phi_1D[i] -> GetYaxis() -> SetTitle("Entry");
0543 track_delta_phi_1D[i] -> GetXaxis() -> SetNdivisions(505);
0544
0545 track_DCA_distance.push_back(new TH1F("","track_DCA_distance", 200, -5, 5));
0546 track_DCA_distance[i] -> GetXaxis() -> SetTitle("DCA distance [mm]");
0547 track_DCA_distance[i] -> GetYaxis() -> SetTitle("Entry");
0548 track_DCA_distance[i] -> GetXaxis() -> SetNdivisions(505);
0549
0550 track_phi_DCA_2D.push_back(new TH2F("","track_phi_DCA_2D", 200, -1.5, 1.5, 200, -3, 3));
0551 track_phi_DCA_2D[i] -> GetXaxis() -> SetTitle("Clus #Delta#phi [degree]");
0552 track_phi_DCA_2D[i] -> GetYaxis() -> SetTitle("DCA distance [mm]");
0553 track_phi_DCA_2D[i] -> GetXaxis() -> SetNdivisions(505);
0554
0555 track_ratio_1D.push_back(new TH1F("","track_ratio_1D", 200, 0, 1.5));
0556 track_ratio_1D[i] -> GetXaxis() -> SetTitle("N reco track / N true track");
0557 track_ratio_1D[i] -> GetYaxis() -> SetTitle("Entry");
0558 track_ratio_1D[i] -> GetXaxis() -> SetNdivisions(505);
0559
0560 track_DeltaPhi_eta_2D.push_back(new TH2F("","track_DeltaPhi_eta_2D", 200, -1.5, 1.5, 200, -4, 4));
0561 track_DeltaPhi_eta_2D[i] -> GetXaxis() -> SetTitle("Clus #Delta#phi [degree]");
0562 track_DeltaPhi_eta_2D[i] -> GetYaxis() -> SetTitle("Tracklet #eta");
0563 track_DeltaPhi_eta_2D[i] -> GetXaxis() -> SetNdivisions(505);
0564
0565 track_DeltaPhi_DeltaEta_2D.push_back(new TH2F("","track_DeltaPhi_DeltaEta_2D", 200, -1.5, 1.5, 200, -1, 1));
0566 track_DeltaPhi_DeltaEta_2D[i] -> GetXaxis() -> SetTitle("Clus #Delta#phi [degree]");
0567 track_DeltaPhi_DeltaEta_2D[i] -> GetYaxis() -> SetTitle("#Delta#eta");
0568 track_DeltaPhi_DeltaEta_2D[i] -> GetXaxis() -> SetNdivisions(505);
0569
0570 final_track_delta_phi_1D[i].clear();
0571 final_track_multi_delta_phi_1D[i].clear();
0572
0573
0574 for (int eta_i = 0; eta_i < (coarse_eta_z_map -> GetNbinsX() * coarse_eta_z_map -> GetNbinsY()); eta_i++)
0575 {
0576 final_track_delta_phi_1D[i].push_back(new TH1F("","final_track_delta_phi_1D", 100, -3, 3));
0577 final_track_delta_phi_1D[i][eta_i] -> GetXaxis() -> SetTitle("Clus #Delta#phi [degree]");
0578 final_track_delta_phi_1D[i][eta_i] -> GetYaxis() -> SetTitle("Entry");
0579 final_track_delta_phi_1D[i][eta_i] -> GetXaxis() -> SetNdivisions(505);
0580
0581 final_track_multi_delta_phi_1D[i].push_back(new TH1F("","final_track_multi_delta_phi_1D", 100, -3, 3));
0582 final_track_multi_delta_phi_1D[i][eta_i] -> GetXaxis() -> SetTitle("Clus #Delta#phi [degree]");
0583 final_track_multi_delta_phi_1D[i][eta_i] -> GetYaxis() -> SetTitle("Entry");
0584 final_track_multi_delta_phi_1D[i][eta_i] -> GetXaxis() -> SetNdivisions(505);
0585 }
0586 }
0587
0588 mega_track_contamination_2D = new TH2F("","", 200,0,8500, 200, 0, 5);
0589 mega_track_contamination_2D -> GetXaxis() -> SetTitle("INTT NClus");
0590 mega_track_contamination_2D -> GetYaxis() -> SetTitle("Mega Track contamination ratio [%]");
0591 mega_track_contamination_2D -> GetXaxis() -> SetNdivisions(505);
0592
0593 mega_track_finding_ratio_2D = new TH2F("","", 200,0,8500, 200, 0, 2);
0594 mega_track_finding_ratio_2D -> GetXaxis() -> SetTitle("INTT NClus");
0595 mega_track_finding_ratio_2D -> GetYaxis() -> SetTitle("Mega Track finding ratio");
0596 mega_track_finding_ratio_2D -> GetXaxis() -> SetNdivisions(505);
0597
0598 MBin_Z_evt_hist_2D = new TH2F("","", centrality_region.size(), 0, centrality_region.size(), z_region.size() - 1, &z_region[0]);
0599 MBin_Z_evt_hist_2D -> GetXaxis() -> SetTitle("Centrality bin");
0600 MBin_Z_evt_hist_2D -> GetYaxis() -> SetTitle("Z vertex [mm]");
0601 MBin_Z_evt_hist_2D -> GetXaxis() -> SetNdivisions(505);
0602
0603 MBin_Z_evt_hist_2D_MC = new TH2F("","", centrality_region.size(), 0, centrality_region.size(), z_region.size() - 1, &z_region[0]);
0604 MBin_Z_evt_hist_2D_MC -> GetXaxis() -> SetTitle("Centrality bin");
0605 MBin_Z_evt_hist_2D_MC -> GetYaxis() -> SetTitle("Z vertex [mm]");
0606 MBin_Z_evt_hist_2D_MC -> GetXaxis() -> SetNdivisions(505);
0607
0608
0609 track_cluster_ratio_multiplicity_2D = new TH2F("","track_cluster_ratio_multiplicity_2D", 200, 0, 9000, 200, 0, 15);
0610 track_cluster_ratio_multiplicity_2D -> GetXaxis() -> SetTitle("NClus");
0611 track_cluster_ratio_multiplicity_2D -> GetYaxis() -> SetTitle("NClus / NTracks");
0612 track_cluster_ratio_multiplicity_2D -> GetXaxis() -> SetNdivisions(505);
0613
0614 track_cluster_ratio_multiplicity_2D_MC = new TH2F("","track_cluster_ratio_multiplicity_2D_MC", 200, 0, 9000, 200, 0, 15);
0615 track_cluster_ratio_multiplicity_2D_MC -> GetXaxis() -> SetTitle("NClus");
0616 track_cluster_ratio_multiplicity_2D_MC -> GetYaxis() -> SetTitle("NClus / NTracks");
0617 track_cluster_ratio_multiplicity_2D_MC -> GetXaxis() -> SetNdivisions(505);
0618
0619 track_correlation_2D = new TH2F("","track_correlation_2D", 200, 0, 3000, 200, 0, 3000);
0620 track_correlation_2D -> GetXaxis() -> SetTitle("N true track");
0621 track_correlation_2D -> GetYaxis() -> SetTitle("N reco track");
0622 track_correlation_2D -> GetXaxis() -> SetNdivisions(505);
0623
0624 track_ratio_2D = new TH2F("","track_ratio_2D", 200, 0, 3000, 200, 0, 2);
0625 track_ratio_2D -> GetXaxis() -> SetTitle("N true track");
0626 track_ratio_2D -> GetYaxis() -> SetTitle("N reco track/N true track");
0627 track_ratio_2D -> GetXaxis() -> SetNdivisions(505);
0628
0629 check_inner_layer_clu_phi_1D = new TH1F("","check_inner_layer_clu_phi_1D", 440, -40, 400);
0630 check_inner_layer_clu_phi_1D -> GetXaxis() -> SetTitle("Clus #phi [degree]");
0631 check_inner_layer_clu_phi_1D -> GetYaxis() -> SetTitle("Entry");
0632
0633
0634 check_outer_layer_clu_phi_1D = new TH1F("","check_outer_layer_clu_phi_1D", 440, -40, 400);
0635 check_outer_layer_clu_phi_1D -> GetXaxis() -> SetTitle("Clus #phi [degree]");
0636 check_outer_layer_clu_phi_1D -> GetYaxis() -> SetTitle("Entry");
0637
0638
0639 reco_eta_correlation_2D = new TH2F("","reco_eta_correlation_2D", 200, -3, 3, 200, -3, 3);
0640 reco_eta_correlation_2D -> GetXaxis() -> SetTitle("Reco 3P #eta");
0641 reco_eta_correlation_2D -> GetYaxis() -> SetTitle("Reco 2P #eta");
0642 reco_eta_correlation_2D -> GetXaxis() -> SetNdivisions(505);
0643
0644 reco_eta_diff_reco3P_2D = new TH2F("","reco_eta_diff_reco3P_2D", 200, -3, 3, 200, -0.35, 0.35);
0645 reco_eta_diff_reco3P_2D -> GetXaxis() -> SetTitle("Reco 3P #eta");
0646 reco_eta_diff_reco3P_2D -> GetYaxis() -> SetTitle("Reco #eta diff");
0647 reco_eta_diff_reco3P_2D -> GetXaxis() -> SetNdivisions(505);
0648
0649 reco_eta_diff_1D = new TH1F("","reco_eta_diff_1D", 200, -0.35, 0.35);
0650 reco_eta_diff_1D -> GetXaxis() -> SetTitle("Reco #eta diff");
0651 reco_eta_diff_1D -> GetYaxis() -> SetTitle("Entry");
0652 reco_eta_diff_1D -> GetXaxis() -> SetNdivisions(505);
0653
0654 clu_used_centrality_2D = new TH2F("","clu_used_centrality_2D", 200, 0, 8500, 10, 0, 10);
0655 clu_used_centrality_2D -> GetXaxis() -> SetTitle("NClus");
0656 clu_used_centrality_2D -> GetYaxis() -> SetTitle("N used each clu");
0657 clu_used_centrality_2D -> GetXaxis() -> SetNdivisions(505);
0658
0659 exclusive_NClus_inner = new TH1F("","exclusive_NClus_inner;NClus inner barrel;Entry",50, 0, 5000);
0660 exclusive_NClus_outer = new TH1F("","exclusive_NClus_outer;NClus outer barrel;Entry",50,0,5000);
0661 exclusive_NClus_sum = new TH1F("","exclusive_NClus_sum;NClus total;Entry",50,0,9000);
0662
0663 exclusive_cluster_inner_eta = new TH1F("","exclusive_cluster_inner_eta;Cluster inner #eta;Entry",50,-3.5,3.5);
0664 exclusive_cluster_inner_phi = new TH1F("","exclusive_cluster_inner_phi;Cluster inner #phi [radian];Entry",50,-3.5,3.5);
0665 exclusive_cluster_outer_eta = new TH1F("","exclusive_cluster_outer_eta;Cluster outer #eta;Entry",50,-3.5,3.5);
0666 exclusive_cluster_outer_phi = new TH1F("","exclusive_cluster_outer_phi;Cluster outer #phi [radian];Entry",50,-3.5,3.5);
0667 exclusive_cluster_all_eta = new TH1F("","exclusive_cluster_all_eta;Cluster #eta;Entry",50,-3.5,3.5);
0668 exclusive_cluster_all_phi = new TH1F("","exclusive_cluster_all_phi;Cluster #phi [radian];Entry",50,-3.5,3.5);
0669
0670 exclusive_cluster_inner_adc = new TH1F("","exclusive_cluster_inner_adc;Cluster inner adc;Entry",50,0,400);
0671 exclusive_cluster_outer_adc = new TH1F("","exclusive_cluster_outer_adc;Cluster outer adc;Entry",50,0,400);
0672
0673 exclusive_cluster_inner_eta_adc_2D = new TH2F("","exclusive_cluster_inner_eta_adc_2D;Cluster inner #eta; Cluster ADC",
0674 2000, exclusive_cluster_inner_eta -> GetXaxis() -> GetXmin(), exclusive_cluster_inner_eta -> GetXaxis() -> GetXmax(),
0675 exclusive_cluster_inner_adc -> GetNbinsX(), exclusive_cluster_inner_adc -> GetXaxis() -> GetXmin(), exclusive_cluster_inner_adc -> GetXaxis() -> GetXmax()
0676 );
0677
0678 exclusive_cluster_outer_eta_adc_2D = new TH2F("","exclusive_cluster_outer_eta_adc_2D;Cluster outer #eta; Cluster ADC",
0679 2000, exclusive_cluster_outer_eta -> GetXaxis() -> GetXmin(), exclusive_cluster_outer_eta -> GetXaxis() -> GetXmax(),
0680 exclusive_cluster_outer_adc -> GetNbinsX(), exclusive_cluster_outer_adc -> GetXaxis() -> GetXmin(), exclusive_cluster_outer_adc -> GetXaxis() -> GetXmax()
0681 );
0682
0683 exclusive_cluster_inner_eta_phi_2D = new TH2F(
0684 "",
0685 "exclusive_cluster_inner_eta_phi_2D;Cluster inner #eta; Cluster inner #phi",
0686 2000, exclusive_cluster_inner_eta -> GetXaxis() -> GetXmin(), exclusive_cluster_inner_eta -> GetXaxis() -> GetXmax(),
0687 2000, exclusive_cluster_inner_phi -> GetXaxis() -> GetXmin(), exclusive_cluster_inner_phi -> GetXaxis() -> GetXmax()
0688 );
0689 exclusive_cluster_outer_eta_phi_2D = new TH2F(
0690 "",
0691 "exclusive_cluster_outer_eta_phi_2D;Cluster outer #eta; Cluster outer #phi",
0692 2000, exclusive_cluster_outer_eta -> GetXaxis() -> GetXmin(), exclusive_cluster_outer_eta -> GetXaxis() -> GetXmax(),
0693 2000, exclusive_cluster_outer_phi -> GetXaxis() -> GetXmin(), exclusive_cluster_outer_phi -> GetXaxis() -> GetXmax()
0694 );
0695
0696 exclusive_tight_tracklet_eta = new TH1F("","exclusive_tight_tracklet_eta;Tracklet #eta;Entry",50,-3.5,3.5);
0697 exclusive_tight_tracklet_phi = new TH1F("","exclusive_tight_tracklet_phi;Tracklet #phi [radian];Entry",50,-3.5,3.5);
0698 exclusive_loose_tracklet_eta = new TH1F("","exclusive_loose_tracklet_eta;Tracklet #eta;Entry",50,-3.5,3.5);
0699 exclusive_loose_tracklet_phi = new TH1F("","exclusive_loose_tracklet_phi;Tracklet #phi [radian];Entry",50,-3.5,3.5);
0700
0701 eta_region_hist = new TH1F("","", eta_region.size() - 1, &eta_region[0]);
0702
0703 cout<<" running ? in INTTEta, InitHist"<<endl;
0704
0705 }
0706
0707 void INTTEta::InitGraph()
0708 {
0709 track_gr = new TGraphErrors();
0710
0711 evt_reco_track_gr_All = new TGraph();
0712 evt_reco_track_gr_All -> SetMarkerStyle(5);
0713 evt_reco_track_gr_All -> SetMarkerSize(1);
0714 evt_reco_track_gr_All -> SetMarkerColor(4);
0715
0716 evt_reco_track_gr_PhiLoose = new TGraph();
0717 evt_reco_track_gr_PhiLoose -> SetMarkerStyle(5);
0718 evt_reco_track_gr_PhiLoose -> SetMarkerSize(1);
0719 evt_reco_track_gr_PhiLoose -> SetMarkerColor(4);
0720
0721 evt_reco_track_gr_Z = new TGraph();
0722 evt_reco_track_gr_Z -> SetMarkerStyle(5);
0723 evt_reco_track_gr_Z -> SetMarkerSize(1);
0724 evt_reco_track_gr_Z -> SetMarkerColor(4);
0725
0726 evt_reco_track_gr_ZDCA = new TGraph();
0727 evt_reco_track_gr_ZDCA -> SetMarkerStyle(5);
0728 evt_reco_track_gr_ZDCA -> SetMarkerSize(1);
0729 evt_reco_track_gr_ZDCA -> SetMarkerColor(4);
0730
0731 evt_reco_track_gr_ZDCAPhi = new TGraph();
0732 evt_reco_track_gr_ZDCAPhi -> SetMarkerStyle(5);
0733 evt_reco_track_gr_ZDCAPhi -> SetMarkerSize(1);
0734 evt_reco_track_gr_ZDCAPhi -> SetMarkerColor(4);
0735
0736 evt_true_track_gr = new TGraph();
0737 evt_true_track_gr -> SetMarkerStyle(20);
0738 evt_true_track_gr -> SetMarkerSize(1);
0739
0740 evt_true_track_gr -> SetMarkerColorAlpha(2,0.5);
0741
0742
0743 cout<<" running ? "<<endl;
0744 return;
0745 }
0746
0747 void INTTEta::InitTree()
0748 {
0749 out_file = new TFile(Form("%s/INTT_final_hist_info.root",out_folder_directory.c_str()),"RECREATE");
0750 tree_out = new TTree ("tree_eta", "Tracklet eta info.");
0751
0752 tree_out -> Branch("eID",&out_eID);
0753 tree_out -> Branch("Evt_centrality_bin",&out_evt_centrality_bin);
0754 tree_out -> Branch("Evt_zvtx", &out_evt_zvtx);
0755 tree_out -> Branch("True_zvtx", &out_true_zvtx);
0756 tree_out -> Branch("NTrueTrack", &out_NTrueTrack);
0757 tree_out -> Branch("NClus", &out_total_NClus);
0758 tree_out -> Branch("RecoTrack_eta_d", &out_recotrack_eta_d);
0759 tree_out -> Branch("RecoTrack_phi_d", &out_recotrack_phi_d);
0760 tree_out -> Branch("TrueTrack_eta_d", &out_truetrack_eta_d);
0761 tree_out -> Branch("TrueTrack_phi_d", &out_truetrack_phi_d);
0762
0763
0764 tree_out -> Branch("N2Clu_track", &out_N2Clu_track);
0765 tree_out -> Branch("N3Clu_track", &out_N3Clu_track);
0766 tree_out -> Branch("N4Clu_track", &out_N4Clu_track);
0767
0768 return;
0769 }
0770
0771 void INTTEta::print_evt_plot(int event_i, int NTrueTrack, int innerNClu, int outerNClu)
0772 {
0773 c1 -> Clear();
0774 c1 -> Print( Form("%s/evt_track_eID_%i.pdf(", out_folder_directory_evt.c_str(), event_i) );
0775 c1 -> cd();
0776
0777 evt_reco_track_gr_All -> GetXaxis() -> SetTitle("#eta");
0778 evt_reco_track_gr_All -> GetYaxis() -> SetTitle("#phi");
0779 evt_reco_track_gr_All -> GetXaxis() -> SetLimits(-3.5, 3.5);
0780 evt_reco_track_gr_All -> GetYaxis() -> SetRangeUser(-10, 420);
0781 evt_reco_track_gr_All -> GetXaxis() -> SetNdivisions(505);
0782 evt_reco_track_gr_All -> Draw("ap");
0783 evt_true_track_gr -> Draw("p same");
0784 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
0785 draw_text -> DrawLatex(0.21, 0.90, Form("NTrueTrack: %i, innerNClu: %i, outerNClu: %i", NTrueTrack, innerNClu, outerNClu));
0786 draw_text -> DrawLatex(0.21, 0.85, Form("NReco_tracklet: %i", evt_reco_track_gr_All->GetN()));
0787 coord_line -> DrawLine(-3.5, 0, 3.5, 0);
0788 coord_line -> DrawLine(-3.5, 360, 3.5, 360);
0789 c1 -> Print( Form("%s/evt_track_eID_%i.pdf", out_folder_directory_evt.c_str(), event_i) );
0790 c1 -> Clear();
0791
0792 evt_reco_track_gr_PhiLoose -> GetXaxis() -> SetTitle("#eta");
0793 evt_reco_track_gr_PhiLoose -> GetYaxis() -> SetTitle("#phi");
0794 evt_reco_track_gr_PhiLoose -> GetXaxis() -> SetLimits(-3.5, 3.5);
0795 evt_reco_track_gr_PhiLoose -> GetYaxis() -> SetRangeUser(-10, 420);
0796 evt_reco_track_gr_PhiLoose -> GetXaxis() -> SetNdivisions(505);
0797 evt_reco_track_gr_PhiLoose -> Draw("ap");
0798 evt_true_track_gr -> Draw("p same");
0799 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
0800 draw_text -> DrawLatex(0.21, 0.90, Form("NTrueTrack: %i, innerNClu: %i, outerNClu: %i", NTrueTrack, innerNClu, outerNClu));
0801 draw_text -> DrawLatex(0.21, 0.85, Form("NReco_tracklet: %i", evt_reco_track_gr_PhiLoose->GetN()));
0802 coord_line -> DrawLine(-3.5, 0, 3.5, 0);
0803 coord_line -> DrawLine(-3.5, 360, 3.5, 360);
0804 c1 -> Print( Form("%s/evt_track_eID_%i.pdf", out_folder_directory_evt.c_str(), event_i) );
0805 c1 -> Clear();
0806
0807 evt_reco_track_gr_Z -> GetXaxis() -> SetTitle("#eta");
0808 evt_reco_track_gr_Z -> GetYaxis() -> SetTitle("#phi");
0809 evt_reco_track_gr_Z -> GetXaxis() -> SetLimits(-3.5, 3.5);
0810 evt_reco_track_gr_Z -> GetYaxis() -> SetRangeUser(-10, 420);
0811 evt_reco_track_gr_Z -> GetXaxis() -> SetNdivisions(505);
0812 evt_reco_track_gr_Z -> Draw("ap");
0813 evt_true_track_gr -> Draw("p same");
0814 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
0815 draw_text -> DrawLatex(0.21, 0.90, Form("NTrueTrack: %i, innerNClu: %i, outerNClu: %i", NTrueTrack, innerNClu, outerNClu));
0816 draw_text -> DrawLatex(0.21, 0.85, Form("NReco_tracklet: %i", evt_reco_track_gr_Z->GetN()));
0817 coord_line -> DrawLine(-3.5, 0, 3.5, 0);
0818 coord_line -> DrawLine(-3.5, 360, 3.5, 360);
0819 c1 -> Print( Form("%s/evt_track_eID_%i.pdf", out_folder_directory_evt.c_str(), event_i) );
0820 c1 -> Clear();
0821
0822 evt_reco_track_gr_ZDCA -> GetXaxis() -> SetTitle("#eta");
0823 evt_reco_track_gr_ZDCA -> GetYaxis() -> SetTitle("#phi");
0824 evt_reco_track_gr_ZDCA -> GetXaxis() -> SetLimits(-3.5, 3.5);
0825 evt_reco_track_gr_ZDCA -> GetYaxis() -> SetRangeUser(-10, 420);
0826 evt_reco_track_gr_ZDCA -> GetXaxis() -> SetNdivisions(505);
0827 evt_reco_track_gr_ZDCA -> Draw("ap");
0828 evt_true_track_gr -> Draw("p same");
0829 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
0830 draw_text -> DrawLatex(0.21, 0.90, Form("NTrueTrack: %i, innerNClu: %i, outerNClu: %i", NTrueTrack, innerNClu, outerNClu));
0831 draw_text -> DrawLatex(0.21, 0.85, Form("NReco_tracklet: %i", evt_reco_track_gr_ZDCA->GetN()));
0832 coord_line -> DrawLine(-3.5, 0, 3.5, 0);
0833 coord_line -> DrawLine(-3.5, 360, 3.5, 360);
0834 c1 -> Print( Form("%s/evt_track_eID_%i.pdf", out_folder_directory_evt.c_str(), event_i) );
0835 c1 -> Clear();
0836
0837 evt_reco_track_gr_ZDCAPhi -> GetXaxis() -> SetTitle("#eta");
0838 evt_reco_track_gr_ZDCAPhi -> GetYaxis() -> SetTitle("#phi");
0839 evt_reco_track_gr_ZDCAPhi -> GetXaxis() -> SetLimits(-3.5, 3.5);
0840 evt_reco_track_gr_ZDCAPhi -> GetYaxis() -> SetRangeUser(-10, 420);
0841 evt_reco_track_gr_ZDCAPhi -> GetXaxis() -> SetNdivisions(505);
0842 evt_reco_track_gr_ZDCAPhi -> Draw("ap");
0843 evt_true_track_gr -> Draw("p same");
0844 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
0845 draw_text -> DrawLatex(0.21, 0.90, Form("NTrueTrack: %i, innerNClu: %i, outerNClu: %i", NTrueTrack, innerNClu, outerNClu));
0846 draw_text -> DrawLatex(0.21, 0.85, Form("NReco_tracklet: %i", evt_reco_track_gr_ZDCAPhi->GetN()));
0847 coord_line -> DrawLine(-3.5, 0, 3.5, 0);
0848 coord_line -> DrawLine(-3.5, 360, 3.5, 360);
0849 c1 -> Print( Form("%s/evt_track_eID_%i.pdf)", out_folder_directory_evt.c_str(), event_i) );
0850 c1 -> Clear();
0851 }
0852
0853
0854
0855
0856
0857
0858
0859
0860
0861
0862
0863
0864
0865
0866
0867
0868
0869
0870
0871
0872
0873
0874
0875
0876
0877
0878
0879
0880
0881
0882
0883
0884
0885
0886
0887
0888
0889
0890
0891
0892
0893
0894
0895
0896
0897
0898
0899
0900
0901
0902
0903
0904
0905
0906
0907
0908
0909
0910
0911
0912
0913
0914
0915
0916
0917
0918
0919
0920
0921
0922
0923
0924
0925
0926
0927
0928
0929
0930
0931
0932
0933
0934
0935
0936
0937
0938
0939
0940
0941
0942
0943
0944
0945
0946
0947
0948
0949
0950
0951
0952
0953
0954
0955
0956
0957
0958
0959
0960
0961
0962
0963
0964
0965
0966
0967
0968
0969
0970
0971
0972
0973
0974
0975
0976
0977
0978
0979
0980
0981
0982
0983
0984
0985
0986
0987
0988
0989
0990
0991
0992
0993
0994
0995
0996
0997
0998
0999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104 void INTTEta::ProcessEvt(
1105 int event_i,
1106 vector<clu_info> temp_sPH_inner_nocolumn_vec,
1107 vector<clu_info> temp_sPH_outer_nocolumn_vec,
1108 vector<vector<double>> temp_sPH_nocolumn_vec,
1109 vector<vector<double>> temp_sPH_nocolumn_rz_vec,
1110 int NvtxMC,
1111 vector<double> TrigvtxMC,
1112 bool PhiCheckTag,
1113 Long64_t bco_full,
1114 pair<double,double> evt_z,
1115 int centrality_bin,
1116 vector<vector<float>> true_track_info,
1117 double zvtx_weighting = 1.0
1118 )
1119 {
1120 return_tag = 0;
1121
1122 if (event_i%100 == 0) {cout<<"In INTTEta class, running event : "<<event_i<<endl;}
1123
1124 inner_NClu = temp_sPH_inner_nocolumn_vec.size();
1125 outer_NClu = temp_sPH_outer_nocolumn_vec.size();
1126 total_NClus = inner_NClu + outer_NClu;
1127
1128
1129 if (total_NClus < zvtx_cal_require) {return; cout<<"return confirmation"<<endl;}
1130
1131 if (run_type == "MC" && NvtxMC != 1) { return; cout<<"In INTTEta class, event : "<<event_i<<" Nvtx : "<<NvtxMC<<" Nvtx more than one "<<endl;}
1132 if (PhiCheckTag == false) { return; cout<<"In INTTEta class, event : "<<event_i<<" Nvtx : "<<NvtxMC<<" Not full phi has hits "<<endl;}
1133
1134 if (inner_NClu < 10 || outer_NClu < 10 || total_NClus > N_clu_cut || total_NClus < N_clu_cutl)
1135 {
1136 return;
1137 printf("In INTTEta class, event : %i, low clu continue, NClus : %lu \n", event_i, total_NClus);
1138 }
1139
1140
1141
1142
1143
1144
1145
1146 MBin_Z_evt_hist_2D -> Fill(centrality_map[centrality_bin], evt_z.first, zvtx_weighting);
1147 MBin_Z_evt_hist_2D -> Fill(MBin_Z_evt_hist_2D -> GetNbinsX()-1, evt_z.first, zvtx_weighting);
1148
1149 N_GoodEvent += 1;
1150 N_GoodEvent_vec[centrality_map[centrality_bin]] += 1;
1151
1152
1153
1154 double INTT_eta_acceptance_l = -0.5 * TMath::Log((sqrt(pow(-230.-TrigvtxMC[2]*10.,2)+pow(INTT_layer_R[3],2))-(-230.-TrigvtxMC[2]*10.)) / (sqrt(pow(-230.-TrigvtxMC[2]*10.,2)+pow(INTT_layer_R[3],2))+(-230.-TrigvtxMC[2]*10.)));
1155 double INTT_eta_acceptance_r = -0.5 * TMath::Log((sqrt(pow(230.-TrigvtxMC[2]*10.,2)+pow(INTT_layer_R[3],2))-(230.-TrigvtxMC[2]*10.)) / (sqrt(pow(230.-TrigvtxMC[2]*10.,2)+pow(INTT_layer_R[3],2))+(230.-TrigvtxMC[2]*10.)));
1156
1157 if (run_type == "MC")
1158 {
1159 MBin_Z_evt_hist_2D_MC -> Fill(centrality_map[centrality_bin], TrigvtxMC[2]*10.);
1160 MBin_Z_evt_hist_2D_MC -> Fill(MBin_Z_evt_hist_2D_MC -> GetNbinsX()-1, TrigvtxMC[2]*10.);
1161
1162
1163
1164
1165
1166 for (int track_i = 0; track_i < true_track_info.size(); track_i++)
1167 {
1168 if (true_track_info[track_i][2] == 111 || true_track_info[track_i][2] == 22 || abs(true_track_info[track_i][2]) == 2112){continue;}
1169
1170
1171 coarse_eta_z_2D_fulleta_MC[centrality_map[centrality_bin]] -> Fill(true_track_info[track_i][0], TrigvtxMC[2]*10.);
1172 coarse_eta_z_2D_fulleta_MC[coarse_eta_z_2D_fulleta_MC.size() - 1] -> Fill(true_track_info[track_i][0], TrigvtxMC[2]*10.);
1173
1174 if (TrigvtxMC[2]*10. > z_region[selected_z_region_id.first] && TrigvtxMC[2]*10. < z_region[selected_z_region_id.second])
1175 {
1176 dNdeta_1D_MC[centrality_map[centrality_bin]] -> Fill(true_track_info[track_i][0]);
1177 dNdeta_1D_MC[dNdeta_1D_MC.size() - 1] -> Fill(true_track_info[track_i][0]);
1178 }
1179
1180
1181 if (true_track_info[track_i][0] > INTT_eta_acceptance_l && true_track_info[track_i][0] < INTT_eta_acceptance_r)
1182 {
1183
1184 if (TrigvtxMC[2]*10. > z_region[selected_z_region_id.first] && TrigvtxMC[2]*10. < z_region[selected_z_region_id.second])
1185 {
1186 dNdeta_1D_MC_edge_eta_cut[centrality_map[centrality_bin]] -> Fill(true_track_info[track_i][0]);
1187 dNdeta_1D_MC_edge_eta_cut[dNdeta_1D_MC_edge_eta_cut.size() - 1] -> Fill(true_track_info[track_i][0]);
1188 }
1189
1190 if (GetTH2BinXY(coarse_eta_z_map -> GetNbinsX(), coarse_eta_z_map -> GetNbinsY(), coarse_eta_z_map -> Fill(true_track_info[track_i][0], TrigvtxMC[2]*10.)).second == tight_zvtx_bin)
1191 {
1192
1193 final_dNdeta_1D_MC[centrality_map[centrality_bin]] -> Fill(true_track_info[track_i][0]);
1194 final_dNdeta_1D_MC[final_dNdeta_1D_MC.size() - 1] -> Fill(true_track_info[track_i][0]);
1195 }
1196
1197
1198 track_eta_z_2D_MC[centrality_map[centrality_bin]] -> Fill(true_track_info[track_i][0], TrigvtxMC[2]*10.);
1199 track_eta_z_2D_MC[track_eta_z_2D_MC.size() - 1] -> Fill(true_track_info[track_i][0], TrigvtxMC[2]*10.);
1200
1201
1202 coarse_eta_z_2D_MC[centrality_map[centrality_bin]] -> Fill(true_track_info[track_i][0], TrigvtxMC[2]*10.);
1203 coarse_eta_z_2D_MC[coarse_eta_z_2D_MC.size() - 1] -> Fill(true_track_info[track_i][0], TrigvtxMC[2]*10.);
1204
1205
1206
1207
1208
1209 evt_true_track_gr -> SetPoint(evt_true_track_gr->GetN(),true_track_info[track_i][0], convertTo360(true_track_info[track_i][1]));
1210 out_truetrack_eta_d.push_back(true_track_info[track_i][0]);
1211 out_truetrack_phi_d.push_back(convertTo360(true_track_info[track_i][1]));
1212
1213 evt_NTrack_MC += 1;
1214 }
1215 }
1216
1217 }
1218
1219 if (evt_z.first > z_region[selected_z_region_id.first] && evt_z.first < z_region[selected_z_region_id.second])
1220 {
1221 exclusive_NClus_inner -> Fill(temp_sPH_inner_nocolumn_vec.size(), zvtx_weighting);
1222 exclusive_NClus_outer -> Fill(temp_sPH_outer_nocolumn_vec.size(), zvtx_weighting);
1223 exclusive_NClus_sum -> Fill(temp_sPH_inner_nocolumn_vec.size() + temp_sPH_outer_nocolumn_vec.size(), zvtx_weighting);
1224 }
1225
1226
1227
1228 for (int inner_i = 0; inner_i < temp_sPH_inner_nocolumn_vec.size(); inner_i++) {
1229 Clus_InnerPhi_Offset = (temp_sPH_inner_nocolumn_vec[inner_i].y - beam_origin.second < 0) ? atan2(temp_sPH_inner_nocolumn_vec[inner_i].y - beam_origin.second, temp_sPH_inner_nocolumn_vec[inner_i].x - beam_origin.first) * (180./TMath::Pi()) + 360 : atan2(temp_sPH_inner_nocolumn_vec[inner_i].y - beam_origin.second, temp_sPH_inner_nocolumn_vec[inner_i].x - beam_origin.first) * (180./TMath::Pi());
1230 double Clus_InnerPhi_Offset_radian = atan2(temp_sPH_inner_nocolumn_vec[inner_i].y - beam_origin.second, temp_sPH_inner_nocolumn_vec[inner_i].x - beam_origin.first);
1231
1232
1233
1234 inner_clu_phi_map[ int(Clus_InnerPhi_Offset) ].push_back({false,temp_sPH_inner_nocolumn_vec[inner_i]});
1235 check_inner_layer_clu_phi_1D->Fill(Clus_InnerPhi_Offset);
1236
1237 double clu_eta = get_clu_eta({beam_origin.first, beam_origin.second, evt_z.first},{temp_sPH_inner_nocolumn_vec[inner_i].x, temp_sPH_inner_nocolumn_vec[inner_i].y, temp_sPH_inner_nocolumn_vec[inner_i].z});
1238
1239 if (evt_z.first > z_region[selected_z_region_id.first] && evt_z.first < z_region[selected_z_region_id.second]){
1240 exclusive_cluster_inner_eta -> Fill(clu_eta, zvtx_weighting);
1241 exclusive_cluster_inner_phi -> Fill(Clus_InnerPhi_Offset_radian, zvtx_weighting);
1242
1243 exclusive_cluster_inner_eta_phi_2D -> Fill(clu_eta, Clus_InnerPhi_Offset_radian, zvtx_weighting);
1244
1245 exclusive_cluster_inner_eta_adc_2D -> Fill(clu_eta, temp_sPH_inner_nocolumn_vec[inner_i].sum_adc, zvtx_weighting);
1246
1247 exclusive_cluster_all_eta -> Fill(clu_eta, zvtx_weighting);
1248 exclusive_cluster_all_phi -> Fill(Clus_InnerPhi_Offset_radian, zvtx_weighting);
1249
1250 exclusive_cluster_inner_adc -> Fill(temp_sPH_inner_nocolumn_vec[inner_i].sum_adc, zvtx_weighting);
1251 }
1252
1253 if (clu_eta > INTT_eta_acceptance_l && clu_eta < INTT_eta_acceptance_r) {effective_total_NClus += 1;}
1254 }
1255 for (int outer_i = 0; outer_i < temp_sPH_outer_nocolumn_vec.size(); outer_i++) {
1256 Clus_OuterPhi_Offset = (temp_sPH_outer_nocolumn_vec[outer_i].y - beam_origin.second < 0) ? atan2(temp_sPH_outer_nocolumn_vec[outer_i].y - beam_origin.second, temp_sPH_outer_nocolumn_vec[outer_i].x - beam_origin.first) * (180./TMath::Pi()) + 360 : atan2(temp_sPH_outer_nocolumn_vec[outer_i].y - beam_origin.second, temp_sPH_outer_nocolumn_vec[outer_i].x - beam_origin.first) * (180./TMath::Pi());
1257 double Clus_OuterPhi_Offset_radian = atan2(temp_sPH_outer_nocolumn_vec[outer_i].y - beam_origin.second, temp_sPH_outer_nocolumn_vec[outer_i].x - beam_origin.first);
1258
1259 outer_clu_phi_map[ int(Clus_OuterPhi_Offset) ].push_back({false,temp_sPH_outer_nocolumn_vec[outer_i]});
1260 check_outer_layer_clu_phi_1D->Fill(Clus_OuterPhi_Offset);
1261
1262 double clu_eta = get_clu_eta({beam_origin.first, beam_origin.second, evt_z.first},{temp_sPH_outer_nocolumn_vec[outer_i].x, temp_sPH_outer_nocolumn_vec[outer_i].y, temp_sPH_outer_nocolumn_vec[outer_i].z});
1263
1264 if (evt_z.first > z_region[selected_z_region_id.first] && evt_z.first < z_region[selected_z_region_id.second]){
1265 exclusive_cluster_outer_eta -> Fill(clu_eta, zvtx_weighting);
1266 exclusive_cluster_outer_phi -> Fill(Clus_OuterPhi_Offset_radian, zvtx_weighting);
1267
1268 exclusive_cluster_outer_eta_phi_2D -> Fill(clu_eta, Clus_OuterPhi_Offset_radian, zvtx_weighting);
1269
1270 exclusive_cluster_outer_eta_adc_2D -> Fill(clu_eta, temp_sPH_outer_nocolumn_vec[outer_i].sum_adc, zvtx_weighting);
1271
1272 exclusive_cluster_all_eta -> Fill(clu_eta, zvtx_weighting);
1273 exclusive_cluster_all_phi -> Fill(Clus_OuterPhi_Offset_radian, zvtx_weighting);
1274
1275 exclusive_cluster_outer_adc -> Fill(temp_sPH_outer_nocolumn_vec[outer_i].sum_adc, zvtx_weighting);
1276 }
1277
1278 if (clu_eta > INTT_eta_acceptance_l && clu_eta < INTT_eta_acceptance_r) {effective_total_NClus += 1;}
1279 }
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293 for (int inner_phi_i = 0; inner_phi_i < 360; inner_phi_i++)
1294 {
1295
1296 for (int inner_phi_clu_i = 0; inner_phi_clu_i < inner_clu_phi_map[inner_phi_i].size(); inner_phi_clu_i++)
1297 {
1298 clu_multi_used_tight = 0;
1299 clu_multi_used_loose = 0;
1300 if (inner_clu_phi_map[inner_phi_i][inner_phi_clu_i].first == true) {continue;}
1301
1302 Clus_InnerPhi_Offset = (inner_clu_phi_map[inner_phi_i][inner_phi_clu_i].second.y - beam_origin.second < 0) ? atan2(inner_clu_phi_map[inner_phi_i][inner_phi_clu_i].second.y - beam_origin.second, inner_clu_phi_map[inner_phi_i][inner_phi_clu_i].second.x - beam_origin.first) * (180./TMath::Pi()) + 360 : atan2(inner_clu_phi_map[inner_phi_i][inner_phi_clu_i].second.y - beam_origin.second, inner_clu_phi_map[inner_phi_i][inner_phi_clu_i].second.x - beam_origin.first) * (180./TMath::Pi());
1303 double Clus_InnerPhi_Offset_radian = atan2(inner_clu_phi_map[inner_phi_i][inner_phi_clu_i].second.y - beam_origin.second, inner_clu_phi_map[inner_phi_i][inner_phi_clu_i].second.x - beam_origin.first);
1304
1305
1306
1307 for (int scan_i = -4; scan_i < 5; scan_i++)
1308 {
1309 int true_scan_i = ((inner_phi_i + scan_i) < 0) ? 360 + (inner_phi_i + scan_i) : ((inner_phi_i + scan_i) > 359) ? (inner_phi_i + scan_i)-360 : inner_phi_i + scan_i;
1310
1311
1312 for (int outer_phi_clu_i = 0; outer_phi_clu_i < outer_clu_phi_map[true_scan_i].size(); outer_phi_clu_i++)
1313 {
1314 if (outer_clu_phi_map[true_scan_i][outer_phi_clu_i].first == true) {continue;}
1315
1316 Clus_OuterPhi_Offset = (outer_clu_phi_map[true_scan_i][outer_phi_clu_i].second.y - beam_origin.second < 0) ? atan2(outer_clu_phi_map[true_scan_i][outer_phi_clu_i].second.y - beam_origin.second, outer_clu_phi_map[true_scan_i][outer_phi_clu_i].second.x - beam_origin.first) * (180./TMath::Pi()) + 360 : atan2(outer_clu_phi_map[true_scan_i][outer_phi_clu_i].second.y - beam_origin.second, outer_clu_phi_map[true_scan_i][outer_phi_clu_i].second.x - beam_origin.first) * (180./TMath::Pi());
1317 double Clus_OuterPhi_Offset_radian = atan2(outer_clu_phi_map[true_scan_i][outer_phi_clu_i].second.y - beam_origin.second, outer_clu_phi_map[true_scan_i][outer_phi_clu_i].second.x - beam_origin.first);
1318 double delta_phi = get_delta_phi(Clus_InnerPhi_Offset, Clus_OuterPhi_Offset);
1319
1320
1321 if (fabs(delta_phi) > 3.5) {continue;}
1322
1323 double inner_clu_eta = get_clu_eta({beam_origin.first, beam_origin.second, evt_z.first},{inner_clu_phi_map[inner_phi_i][inner_phi_clu_i].second.x, inner_clu_phi_map[inner_phi_i][inner_phi_clu_i].second.y, inner_clu_phi_map[inner_phi_i][inner_phi_clu_i].second.z});
1324 double outer_clu_eta = get_clu_eta({beam_origin.first, beam_origin.second, evt_z.first},{outer_clu_phi_map[true_scan_i][outer_phi_clu_i].second.x, outer_clu_phi_map[true_scan_i][outer_phi_clu_i].second.y, outer_clu_phi_map[true_scan_i][outer_phi_clu_i].second.z});
1325 double delta_eta = inner_clu_eta - outer_clu_eta;
1326
1327
1328 track_delta_eta_1D[centrality_map[centrality_bin]] -> Fill( delta_eta );
1329 track_delta_eta_1D[track_delta_eta_1D.size() - 1] -> Fill( delta_eta );
1330
1331
1332 track_DeltaPhi_DeltaEta_2D[centrality_map[centrality_bin]] -> Fill(delta_phi, delta_eta);
1333 track_DeltaPhi_DeltaEta_2D[track_DeltaPhi_DeltaEta_2D.size() - 1] -> Fill(delta_phi, delta_eta);
1334
1335 pair<double,double> z_range_info = Get_possible_zvtx(
1336 0.,
1337 {get_radius(inner_clu_phi_map[inner_phi_i][inner_phi_clu_i].second.x - beam_origin.first, inner_clu_phi_map[inner_phi_i][inner_phi_clu_i].second.y - beam_origin.second), inner_clu_phi_map[inner_phi_i][inner_phi_clu_i].second.z},
1338 {get_radius(outer_clu_phi_map[true_scan_i][outer_phi_clu_i].second.x - beam_origin.first, outer_clu_phi_map[true_scan_i][outer_phi_clu_i].second.y - beam_origin.second), outer_clu_phi_map[true_scan_i][outer_phi_clu_i].second.z}
1339 );
1340
1341
1342 if (z_range_info.first - z_range_info.second > evt_z.first + evt_z.second || z_range_info.first + z_range_info.second < evt_z.first - evt_z.second) {continue;}
1343 if (fabs(delta_phi) < 0.6) {clu_multi_used_tight += 1;}
1344 track_delta_eta_1D_post[centrality_map[centrality_bin]] -> Fill( delta_eta );
1345 track_delta_eta_1D_post[track_delta_eta_1D_post.size() - 1] -> Fill( delta_eta );
1346
1347 double DCA_sign = calculateAngleBetweenVectors(
1348 outer_clu_phi_map[true_scan_i][outer_phi_clu_i].second.x, outer_clu_phi_map[true_scan_i][outer_phi_clu_i].second.y,
1349 inner_clu_phi_map[inner_phi_i][inner_phi_clu_i].second.x, inner_clu_phi_map[inner_phi_i][inner_phi_clu_i].second.y,
1350 beam_origin.first, beam_origin.second
1351 );
1352
1353 track_DCA_distance[centrality_map[centrality_bin]] -> Fill( DCA_sign );
1354 track_DCA_distance[track_DCA_distance.size() - 1] -> Fill( DCA_sign );
1355
1356 track_phi_DCA_2D[centrality_map[centrality_bin]] -> Fill( delta_phi, DCA_sign );
1357 track_phi_DCA_2D[track_phi_DCA_2D.size() - 1] -> Fill( delta_phi, DCA_sign );
1358
1359 track_delta_phi_1D[centrality_map[centrality_bin]] -> Fill( delta_phi );
1360 track_delta_phi_1D[track_delta_phi_1D.size() - 1] -> Fill( delta_phi );
1361
1362 proto_pair_index.push_back({inner_phi_i, inner_phi_clu_i, true_scan_i, outer_phi_clu_i});
1363 proto_pair_delta_phi_abs.push_back(fabs(delta_phi));
1364 proto_pair_delta_phi.push_back({Clus_InnerPhi_Offset, Clus_OuterPhi_Offset, delta_phi});
1365
1366
1367
1368 Get_eta_pair = Get_eta(
1369 {0., evt_z.first,evt_z.second},
1370 {get_radius(inner_clu_phi_map[inner_phi_i][inner_phi_clu_i].second.x - beam_origin.first, inner_clu_phi_map[inner_phi_i][inner_phi_clu_i].second.y - beam_origin.second), inner_clu_phi_map[inner_phi_i][inner_phi_clu_i].second.z},
1371 {get_radius(outer_clu_phi_map[true_scan_i][outer_phi_clu_i].second.x - beam_origin.first, outer_clu_phi_map[true_scan_i][outer_phi_clu_i].second.y - beam_origin.second), outer_clu_phi_map[true_scan_i][outer_phi_clu_i].second.z}
1372 );
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389 double eta_z_bin = GetTH2Index1D(GetTH2BinXY(coarse_eta_z_map->GetNbinsX(), coarse_eta_z_map->GetNbinsY(), coarse_eta_z_map -> Fill(Get_eta_pair.second, evt_z.first)), coarse_eta_z_map->GetNbinsX());
1390 if (int(eta_z_bin) != -1)
1391 {
1392 final_track_multi_delta_phi_1D[centrality_map[centrality_bin]][eta_z_bin] -> Fill(delta_phi, zvtx_weighting);
1393 final_track_multi_delta_phi_1D[final_track_multi_delta_phi_1D.size() - 1][eta_z_bin] -> Fill(delta_phi, zvtx_weighting);
1394
1395 if (fabs(delta_phi) <= signal_region) {
1396 good_tracklet_multi_counting[centrality_map[centrality_bin]][eta_z_bin] += 1;
1397 good_tracklet_multi_counting[good_tracklet_multi_counting.size() - 1][eta_z_bin] += 1;
1398
1399 coarse_Reco_SignalNTracklet_Multi_eta_z_2D[centrality_map[centrality_bin]] -> Fill(Get_eta_pair.second, evt_z.first, zvtx_weighting);
1400 coarse_Reco_SignalNTracklet_Multi_eta_z_2D[coarse_Reco_SignalNTracklet_Multi_eta_z_2D.size() - 1] -> Fill(Get_eta_pair.second, evt_z.first, zvtx_weighting);
1401
1402 if (evt_z.first > z_region[selected_z_region_id.first] && evt_z.first < z_region[selected_z_region_id.second])
1403 {
1404 exclusive_loose_tracklet_eta -> Fill(Get_eta_pair.second, zvtx_weighting);
1405 exclusive_loose_tracklet_phi -> Fill( (Clus_InnerPhi_Offset_radian + Clus_OuterPhi_Offset_radian)/2. , zvtx_weighting);
1406 }
1407
1408 }
1409
1410 }
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424 }
1425 }
1426
1427 clu_used_centrality_2D -> Fill(total_NClus, clu_multi_used_tight);
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487 }
1488 }
1489
1490
1491 if (proto_pair_delta_phi_abs.size() == 0) {return;}
1492
1493 long long vec_size = proto_pair_delta_phi_abs.size();
1494 long long ind[proto_pair_delta_phi_abs.size()];
1495 TMath::Sort(vec_size, &proto_pair_delta_phi_abs[0], ind, false);
1496 for (int pair_i = 0; pair_i < proto_pair_index.size(); pair_i++)
1497 {
1498 int inner_index_0 = proto_pair_index[ind[pair_i]][0];
1499 int inner_index_1 = proto_pair_index[ind[pair_i]][1];
1500 int outer_index_0 = proto_pair_index[ind[pair_i]][2];
1501 int outer_index_1 = proto_pair_index[ind[pair_i]][3];
1502
1503
1504 if (inner_used_clu[Form("%i_%i", inner_index_0, inner_index_1)] != 0) { inner_used_clu[Form("%i_%i", inner_index_0, inner_index_1)] += 1; continue;}
1505 if (outer_used_clu[Form("%i_%i", outer_index_0, outer_index_1)] != 0) { outer_used_clu[Form("%i_%i", outer_index_0, outer_index_1)] += 1; continue;}
1506 double delta_phi = proto_pair_delta_phi[ind[pair_i]][2];
1507 double track_phi = get_track_phi(proto_pair_delta_phi[ind[pair_i]][0], delta_phi);
1508
1509
1510 Get_eta_pair = Get_eta(
1511 {0., evt_z.first,evt_z.second},
1512 {get_radius(inner_clu_phi_map[inner_index_0][inner_index_1].second.x - beam_origin.first, inner_clu_phi_map[inner_index_0][inner_index_1].second.y - beam_origin.second), inner_clu_phi_map[inner_index_0][inner_index_1].second.z},
1513 {get_radius(outer_clu_phi_map[outer_index_0][outer_index_1].second.x - beam_origin.first, outer_clu_phi_map[outer_index_0][outer_index_1].second.y - beam_origin.second), outer_clu_phi_map[outer_index_0][outer_index_1].second.z}
1514 );
1515
1516 double inner_clu_eta = get_clu_eta({beam_origin.first, beam_origin.second, evt_z.first},{inner_clu_phi_map[inner_index_0][inner_index_1].second.x, inner_clu_phi_map[inner_index_0][inner_index_1].second.y, inner_clu_phi_map[inner_index_0][inner_index_1].second.z});
1517 double outer_clu_eta = get_clu_eta({beam_origin.first, beam_origin.second, evt_z.first},{outer_clu_phi_map[outer_index_0][outer_index_1].second.x, outer_clu_phi_map[outer_index_0][outer_index_1].second.y, outer_clu_phi_map[outer_index_0][outer_index_1].second.z});
1518
1519 double Clus_InnerPhi_Offset_radian = atan2(inner_clu_phi_map[inner_index_0][inner_index_1].second.y - beam_origin.second, inner_clu_phi_map[inner_index_0][inner_index_1].second.x - beam_origin.first);
1520 double Clus_OuterPhi_Offset_radian = atan2(outer_clu_phi_map[outer_index_0][outer_index_1].second.y - beam_origin.second, outer_clu_phi_map[outer_index_0][outer_index_1].second.x - beam_origin.first);
1521
1522 if (Get_eta_pair.second - (inner_clu_eta + outer_clu_eta)/2. > 0.3)
1523 {
1524 cout<<" "<<endl;
1525 cout<<"inner clu eta : "<<inner_clu_eta<<" outer clu eta : "<<outer_clu_eta<<"avg eta : "<< (inner_clu_eta + outer_clu_eta)/2. <<" reco eta : "<<Get_eta_pair.second<<" diff: "<<Get_eta_pair.second - (inner_clu_eta + outer_clu_eta)/2.<<endl;
1526 cout<<"inner clu pos : "<<inner_clu_phi_map[inner_index_0][inner_index_1].second.x<<" "<<inner_clu_phi_map[inner_index_0][inner_index_1].second.y<<" "<<inner_clu_phi_map[inner_index_0][inner_index_1].second.z<<endl;
1527 cout<<"outer clu pos : "<<outer_clu_phi_map[outer_index_0][outer_index_1].second.x<<" "<<outer_clu_phi_map[outer_index_0][outer_index_1].second.y<<" "<<outer_clu_phi_map[outer_index_0][outer_index_1].second.z<<endl;
1528 }
1529
1530 reco_eta_correlation_2D -> Fill(Get_eta_pair.second, (inner_clu_eta + outer_clu_eta)/2.);
1531 reco_eta_diff_reco3P_2D -> Fill(Get_eta_pair.second, Get_eta_pair.second - (inner_clu_eta + outer_clu_eta)/2.);
1532 reco_eta_diff_1D -> Fill(Get_eta_pair.second - (inner_clu_eta + outer_clu_eta)/2.);
1533
1534
1535
1536
1537 track_DeltaPhi_eta_2D[centrality_map[centrality_bin]] -> Fill(delta_phi, Get_eta_pair.second);
1538 track_DeltaPhi_eta_2D[track_DeltaPhi_eta_2D.size() - 1] -> Fill(delta_phi, Get_eta_pair.second);
1539
1540
1541 if (fabs(delta_phi) <= signal_region)
1542 {
1543 if (evt_z.first > z_region[selected_z_region_id.first] && evt_z.first < z_region[selected_z_region_id.second])
1544 {
1545 dNdeta_1D[centrality_map[centrality_bin]] -> Fill(Get_eta_pair.second);
1546 dNdeta_1D[dNdeta_1D.size() - 1] -> Fill(Get_eta_pair.second);
1547 }
1548
1549
1550 track_eta_z_2D[centrality_map[centrality_bin]] -> Fill(Get_eta_pair.second, evt_z.first);
1551 track_eta_z_2D[track_eta_z_2D.size() - 1] -> Fill(Get_eta_pair.second, evt_z.first);
1552
1553 out_recotrack_eta_d.push_back(Get_eta_pair.second);
1554 out_recotrack_phi_d.push_back(track_phi);
1555
1556
1557
1558
1559 evt_NTrack += 1;
1560 }
1561
1562
1563 track_eta_phi_2D[centrality_map[centrality_bin]] -> Fill(track_phi, Get_eta_pair.second);
1564 track_eta_phi_2D[track_eta_phi_2D.size() - 1] -> Fill(track_phi, Get_eta_pair.second);
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585 double eta_z_bin = GetTH2Index1D(GetTH2BinXY(coarse_eta_z_map->GetNbinsX(), coarse_eta_z_map->GetNbinsY(), coarse_eta_z_map -> Fill(Get_eta_pair.second, evt_z.first)), coarse_eta_z_map->GetNbinsX());
1586 if (int(eta_z_bin) != -1)
1587 {
1588 final_track_delta_phi_1D[centrality_map[centrality_bin]][eta_z_bin] -> Fill(delta_phi);
1589 final_track_delta_phi_1D[final_track_delta_phi_1D.size() - 1][eta_z_bin] -> Fill(delta_phi);
1590
1591 if (fabs(delta_phi) <= signal_region) {
1592 good_tracklet_counting[centrality_map[centrality_bin]][eta_z_bin] += 1;
1593 good_tracklet_counting[good_tracklet_counting.size() - 1][eta_z_bin] += 1;
1594
1595 coarse_Reco_SignalNTracklet_Single_eta_z_2D[centrality_map[centrality_bin]] -> Fill(Get_eta_pair.second, evt_z.first, zvtx_weighting);
1596 coarse_Reco_SignalNTracklet_Single_eta_z_2D[coarse_Reco_SignalNTracklet_Single_eta_z_2D.size() - 1] -> Fill(Get_eta_pair.second, evt_z.first, zvtx_weighting);
1597
1598 if (evt_z.first > z_region[selected_z_region_id.first] && evt_z.first < z_region[selected_z_region_id.second])
1599 {
1600 exclusive_tight_tracklet_eta -> Fill(Get_eta_pair.second, zvtx_weighting);
1601 exclusive_tight_tracklet_phi -> Fill((Clus_InnerPhi_Offset_radian + Clus_OuterPhi_Offset_radian)/2., zvtx_weighting);
1602 }
1603 }
1604
1605
1606
1607
1608
1609
1610 }
1611
1612
1613
1614
1615 inner_used_clu[Form("%i_%i", inner_index_0, inner_index_1)] += 1;
1616 outer_used_clu[Form("%i_%i", outer_index_0, outer_index_1)] += 1;
1617 }
1618
1619 out_eID = event_i;
1620 out_evt_centrality_bin = centrality_bin;
1621 out_evt_zvtx = evt_z.first;
1622 out_true_zvtx = TrigvtxMC[2] * 10.;
1623 out_NTrueTrack = evt_NTrack_MC;
1624 out_total_NClus = total_NClus;
1625 out_N2Clu_track = evt_NTrack;
1626 out_N3Clu_track = mega_track_finder -> Get_NClu3_track_count();
1627 out_N4Clu_track = mega_track_finder -> Get_NClu4_track_count();
1628 tree_out -> Fill();
1629
1630 cout<<"event confirmation : "<<out_N2Clu_track<<" "<<out_N3Clu_track<<" "<<out_N4Clu_track<<endl;
1631
1632
1633
1634
1635 if (run_type == "MC")
1636 {
1637 N_reco_cluster_short += (evt_NTrack_MC - evt_NTrack);
1638 track_correlation_2D -> Fill(evt_NTrack_MC, evt_NTrack);
1639 track_ratio_2D -> Fill(evt_NTrack_MC, double(evt_NTrack)/double(evt_NTrack_MC));
1640 track_ratio_1D[centrality_map[centrality_bin]] -> Fill( double(evt_NTrack) / double(evt_NTrack_MC) );
1641 track_ratio_1D[track_ratio_1D.size() - 1] -> Fill( double(evt_NTrack) / double(evt_NTrack_MC) );
1642
1643 track_cluster_ratio_1D_MC[centrality_map[centrality_bin]] -> Fill( double(effective_total_NClus) / double(evt_NTrack_MC) );
1644 track_cluster_ratio_1D_MC[track_cluster_ratio_1D_MC.size() - 1] -> Fill( double(effective_total_NClus) / double(evt_NTrack_MC) );
1645 track_cluster_ratio_multiplicity_2D_MC -> Fill( effective_total_NClus, double(effective_total_NClus) / double(evt_NTrack_MC) );
1646 }
1647
1648 track_cluster_ratio_multiplicity_2D -> Fill( effective_total_NClus, double(effective_total_NClus) / double(evt_NTrack) );
1649 track_cluster_ratio_1D[centrality_map[centrality_bin]] -> Fill( double(effective_total_NClus) / double(evt_NTrack) );
1650 track_cluster_ratio_1D[track_cluster_ratio_1D.size() - 1] -> Fill( double(effective_total_NClus) / double(evt_NTrack) );
1651
1652
1653 return_tag = 1;
1654 }
1655
1656
1657 void INTTEta::ClearEvt()
1658 {
1659 if (evt_reco_track_gr_All -> GetN() != 0) {evt_reco_track_gr_All -> Set(0);}
1660 if (evt_reco_track_gr_PhiLoose -> GetN() != 0) {evt_reco_track_gr_PhiLoose -> Set(0);}
1661 if (evt_reco_track_gr_Z -> GetN() != 0) {evt_reco_track_gr_Z -> Set(0);}
1662 if (evt_reco_track_gr_ZDCA -> GetN() != 0) {evt_reco_track_gr_ZDCA -> Set(0);}
1663 if (evt_reco_track_gr_ZDCAPhi -> GetN() != 0) {evt_reco_track_gr_ZDCAPhi -> Set(0);}
1664 if (evt_true_track_gr -> GetN() != 0) {evt_true_track_gr -> Set(0);}
1665 if (track_gr -> GetN() != 0) {track_gr -> Set(0);}
1666
1667 out_recotrack_eta_d.clear();
1668 out_recotrack_phi_d.clear();
1669 out_truetrack_eta_d.clear();
1670 out_truetrack_phi_d.clear();
1671 out_track_eta_i.clear();
1672 out_track_delta_phi_d.clear();
1673
1674 effective_total_NClus = 0;
1675
1676 mega_track_finder -> ClearEvt();
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686 inner_clu_phi_map.clear();
1687 outer_clu_phi_map.clear();
1688 inner_clu_phi_map = vector<vector<pair<bool,clu_info>>>(360);
1689 outer_clu_phi_map = vector<vector<pair<bool,clu_info>>>(360);
1690
1691 proto_pair_index.clear();
1692 proto_pair_delta_phi_abs.clear();
1693 proto_pair_delta_phi.clear();
1694 inner_used_clu.clear();
1695 outer_used_clu.clear();
1696
1697 out_N2Clu_track = 0;
1698 out_N3Clu_track = 0;
1699 out_N4Clu_track = 0;
1700
1701 return_tag = 0;
1702 evt_NTrack = 0;
1703 evt_NTrack_MC = 0;
1704 return;
1705 }
1706
1707
1708 void INTTEta::PrintPlots()
1709 {
1710
1711
1712
1713 NClu3_track_centrality_2D = mega_track_finder -> Get_NClu3_track_centrality_2D();
1714 NClu4_track_centrality_2D = mega_track_finder -> Get_NClu4_track_centrality_2D();
1715 cluster4_track_phi_1D = mega_track_finder -> Get_cluster4_track_phi_1D();
1716 cluster3_track_phi_1D = mega_track_finder -> Get_cluster3_track_phi_1D();
1717 cluster3_inner_track_eta_1D = mega_track_finder -> Get_cluster3_inner_track_eta_1D();
1718 cluster3_inner_track_phi_1D = mega_track_finder -> Get_cluster3_inner_track_phi_1D();
1719 cluster3_outer_track_eta_1D = mega_track_finder -> Get_cluster3_outer_track_eta_1D();
1720 cluster3_outer_track_phi_1D = mega_track_finder -> Get_cluster3_outer_track_phi_1D();
1721 clu4_track_ReducedChi2_1D = mega_track_finder -> Get_clu4_track_ReducedChi2_1D();
1722 clu3_track_ReducedChi2_1D = mega_track_finder -> Get_clu3_track_ReducedChi2_1D();
1723 mega_track_eta_1D = mega_track_finder -> Get_mega_track_eta_1D();
1724
1725 c1 -> cd();
1726
1727
1728 mega_track_finding_ratio_2D -> Draw("colz0");
1729 mega_track_finding_ratio_2D -> SetMinimum(0);
1730 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
1731 c1 -> Print( Form("%s/mega_track_finding_ratio_2D.pdf", out_folder_directory.c_str()) );
1732 c1 -> Clear();
1733
1734
1735
1736 cluster3_inner_track_eta_1D -> Draw("hist");
1737 cluster3_inner_track_eta_1D -> SetMinimum(0);
1738 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
1739 c1 -> Print( Form("%s/cluster3_inner_track_eta_1D.pdf", out_folder_directory.c_str()) );
1740 c1 -> Clear();
1741
1742
1743 cluster3_outer_track_eta_1D -> Draw("hist");
1744 cluster3_outer_track_eta_1D -> SetMinimum(0);
1745 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
1746 c1 -> Print( Form("%s/cluster3_outer_track_eta_1D.pdf", out_folder_directory.c_str()) );
1747 c1 -> Clear();
1748
1749
1750 mega_track_eta_1D -> Draw("hist");
1751 mega_track_eta_1D -> SetMinimum(0);
1752 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
1753 c1 -> Print( Form("%s/mega_track_eta_1D.pdf", out_folder_directory.c_str()) );
1754 c1 -> Clear();
1755
1756
1757 check_inner_layer_clu_phi_1D -> Draw("hist");
1758 check_inner_layer_clu_phi_1D -> SetMinimum(0);
1759 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
1760 c1 -> Print( Form("%s/check_inner_layer_clu_phi_1D.pdf", out_folder_directory.c_str()) );
1761 c1 -> Clear();
1762
1763
1764 check_outer_layer_clu_phi_1D -> Draw("hist");
1765 check_outer_layer_clu_phi_1D -> SetMinimum(0);
1766 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
1767 c1 -> Print( Form("%s/check_outer_layer_clu_phi_1D.pdf", out_folder_directory.c_str()) );
1768 c1 -> Clear();
1769
1770
1771 clu4_track_ReducedChi2_1D -> Draw("hist");
1772 clu4_track_ReducedChi2_1D -> SetMinimum(0);
1773 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
1774 c1 -> Print( Form("%s/clu4_track_ReducedChi2_1D.pdf", out_folder_directory.c_str()) );
1775 c1 -> Clear();
1776
1777
1778 clu3_track_ReducedChi2_1D -> Draw("hist");
1779 clu3_track_ReducedChi2_1D -> SetMinimum(0);
1780 clu3_track_ReducedChi2_1D -> SetMaximum(clu3_track_ReducedChi2_1D->GetBinContent(clu3_track_ReducedChi2_1D->GetMaximumBin())*1.3);
1781 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
1782 coord_line -> DrawLine(mega_track_finder->Get_performance_cut(),0,mega_track_finder->Get_performance_cut(),clu3_track_ReducedChi2_1D->GetBinContent(clu3_track_ReducedChi2_1D->GetMaximumBin())*1.3);
1783 c1 -> Print( Form("%s/clu3_track_ReducedChi2_1D.pdf", out_folder_directory.c_str()) );
1784 c1 -> Clear();
1785
1786
1787 c1 -> cd();
1788 c1 -> Print( Form("%s/track_cluster_ratio_1D.pdf(", out_folder_directory.c_str()) );
1789 c1 -> Clear();
1790 for (int i = 0; i < track_cluster_ratio_1D.size(); i++)
1791 {
1792 c1 -> cd();
1793 track_cluster_ratio_1D[i] -> Draw("hist");
1794 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
1795 draw_text -> DrawLatex(0.21, 0.90, Form("Centrality : %s",centrality_region[i].c_str()));
1796 c1 -> Print(Form("%s/track_cluster_ratio_1D.pdf", out_folder_directory.c_str()));
1797 c1 -> Clear();
1798 }
1799 c1 -> Print( Form("%s/track_cluster_ratio_1D.pdf)", out_folder_directory.c_str()) );
1800
1801
1802 c1 -> cd();
1803 c1 -> Print( Form("%s/track_cluster_ratio_1D_MC.pdf(", out_folder_directory.c_str()) );
1804 c1 -> Clear();
1805 for (int i = 0; i < track_cluster_ratio_1D_MC.size(); i++)
1806 {
1807 c1 -> cd();
1808 track_cluster_ratio_1D_MC[i] -> Draw("hist");
1809 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
1810 draw_text -> DrawLatex(0.21, 0.90, Form("Centrality : %s",centrality_region[i].c_str()));
1811 c1 -> Print(Form("%s/track_cluster_ratio_1D_MC.pdf", out_folder_directory.c_str()));
1812 c1 -> Clear();
1813 }
1814 c1 -> Print( Form("%s/track_cluster_ratio_1D_MC.pdf)", out_folder_directory.c_str()) );
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839 c1 -> Print( Form("%s/track_eta_phi_2D.pdf(", out_folder_directory.c_str()) );
1840 for (int i = 0; i < track_eta_phi_2D.size(); i++)
1841 {
1842 track_eta_phi_2D[i] -> Draw("colz0");
1843 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
1844 draw_text -> DrawLatex(0.21, 0.90, Form("Centrality : %s",centrality_region[i].c_str()));
1845 c1 -> Print(Form("%s/track_eta_phi_2D.pdf", out_folder_directory.c_str()));
1846 c1 -> Clear();
1847 }
1848 c1 -> Print( Form("%s/track_eta_phi_2D.pdf)", out_folder_directory.c_str()) );
1849
1850
1851 c1 -> Print( Form("%s/track_eta_z_2D.pdf(", out_folder_directory.c_str()) );
1852 for (int i = 0; i < track_eta_z_2D.size(); i++)
1853 {
1854 track_eta_z_2D[i] -> Draw("colz0");
1855 DrawEtaZGrid();
1856 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
1857 draw_text -> DrawLatex(0.21, 0.90, Form("Centrality : %s",centrality_region[i].c_str()));
1858 c1 -> Print(Form("%s/track_eta_z_2D.pdf", out_folder_directory.c_str()));
1859 c1 -> Clear();
1860 }
1861 c1 -> Print( Form("%s/track_eta_z_2D.pdf)", out_folder_directory.c_str()) );
1862
1863
1864 c1 -> Print( Form("%s/track_delta_phi_1D.pdf(", out_folder_directory.c_str()) );
1865 for (int i = 0; i < track_delta_phi_1D.size(); i++)
1866 {
1867 track_delta_phi_1D[i] -> SetMinimum(0);
1868 track_delta_phi_1D[i] -> Draw("hist");
1869 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
1870 draw_text -> DrawLatex(0.21, 0.90, Form("Centrality : %s",centrality_region[i].c_str()));
1871 coord_line -> DrawLine(-1*phi_diff_cut, 0, -1 * phi_diff_cut, track_delta_phi_1D[i]->GetMaximum() * 1.1);
1872 coord_line -> DrawLine(phi_diff_cut, 0, phi_diff_cut, track_delta_phi_1D[i]->GetMaximum() * 1.1);
1873 c1 -> Print(Form("%s/track_delta_phi_1D.pdf", out_folder_directory.c_str()));
1874 c1 -> Clear();
1875 }
1876 c1 -> Print( Form("%s/track_delta_phi_1D.pdf)", out_folder_directory.c_str()) );
1877
1878
1879 c1 -> Print( Form("%s/track_delta_eta_1D.pdf(", out_folder_directory.c_str()) );
1880 for (int i = 0; i < track_delta_eta_1D.size(); i++)
1881 {
1882 track_delta_eta_1D[i] -> SetMinimum(0);
1883 track_delta_eta_1D[i] -> Draw("hist");
1884 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
1885 draw_text -> DrawLatex(0.21, 0.90, Form("Centrality : %s",centrality_region[i].c_str()));
1886
1887
1888 c1 -> Print(Form("%s/track_delta_eta_1D.pdf", out_folder_directory.c_str()));
1889 c1 -> Clear();
1890 }
1891 c1 -> Print( Form("%s/track_delta_eta_1D.pdf)", out_folder_directory.c_str()) );
1892
1893
1894 c1 -> Print( Form("%s/track_delta_eta_1D_post.pdf(", out_folder_directory.c_str()) );
1895 for (int i = 0; i < track_delta_eta_1D_post.size(); i++)
1896 {
1897 track_delta_eta_1D_post[i] -> SetMinimum(0);
1898 track_delta_eta_1D_post[i] -> Draw("hist");
1899 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
1900 draw_text -> DrawLatex(0.21, 0.90, Form("Centrality : %s",centrality_region[i].c_str()));
1901
1902
1903 c1 -> Print(Form("%s/track_delta_eta_1D_post.pdf", out_folder_directory.c_str()));
1904 c1 -> Clear();
1905 }
1906 c1 -> Print( Form("%s/track_delta_eta_1D_post.pdf)", out_folder_directory.c_str()) );
1907
1908
1909 c1 -> Print( Form("%s/track_DCA_distance.pdf(", out_folder_directory.c_str()) );
1910 for (int i = 0; i < track_DCA_distance.size(); i++)
1911 {
1912 track_DCA_distance[i] -> SetMinimum(0);
1913 track_DCA_distance[i] -> Draw("hist");
1914 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
1915 draw_text -> DrawLatex(0.21, 0.90, Form("Centrality : %s",centrality_region[i].c_str()));
1916 coord_line -> DrawLine(DCA_cut.first, 0, DCA_cut.first, track_DCA_distance[i]->GetMaximum() * 1.05);
1917 coord_line -> DrawLine(DCA_cut.second, 0, DCA_cut.second, track_DCA_distance[i]->GetMaximum() * 1.05);
1918 c1 -> Print(Form("%s/track_DCA_distance.pdf", out_folder_directory.c_str()));
1919 c1 -> Clear();
1920 }
1921 c1 -> Print( Form("%s/track_DCA_distance.pdf)", out_folder_directory.c_str()) );
1922
1923
1924 c1 -> Print( Form("%s/track_phi_DCA_2D.pdf(", out_folder_directory.c_str()) );
1925 for (int i = 0; i < track_phi_DCA_2D.size(); i++)
1926 {
1927 track_phi_DCA_2D[i] -> Draw("colz0");
1928 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
1929 draw_text -> DrawLatex(0.21, 0.90, Form("Centrality : %s",centrality_region[i].c_str()));
1930
1931 coord_line -> DrawLine(track_phi_DCA_2D[i] -> GetXaxis() -> GetXmin(), DCA_cut.first, track_phi_DCA_2D[i] -> GetXaxis() -> GetXmax(), DCA_cut.first);
1932 coord_line -> DrawLine(track_phi_DCA_2D[i] -> GetXaxis() -> GetXmin(), DCA_cut.second, track_phi_DCA_2D[i] -> GetXaxis() -> GetXmax(), DCA_cut.second);
1933 coord_line -> DrawLine(-1 * phi_diff_cut, track_phi_DCA_2D[i] -> GetYaxis() -> GetXmin(), -1 * phi_diff_cut, track_phi_DCA_2D[i] -> GetYaxis() -> GetXmax());
1934 coord_line -> DrawLine(phi_diff_cut, track_phi_DCA_2D[i] -> GetYaxis() -> GetXmin(), phi_diff_cut, track_phi_DCA_2D[i] -> GetYaxis() -> GetXmax());
1935 c1 -> Print(Form("%s/track_phi_DCA_2D.pdf", out_folder_directory.c_str()));
1936 c1 -> Clear();
1937 }
1938 c1 -> Print( Form("%s/track_phi_DCA_2D.pdf)", out_folder_directory.c_str()) );
1939
1940
1941 c1 -> Print( Form("%s/track_ratio_1D.pdf(", out_folder_directory.c_str()) );
1942 for (int i = 0; i < track_ratio_1D.size(); i++)
1943 {
1944 track_ratio_1D[i] -> SetMinimum(0);
1945 track_ratio_1D[i] -> Draw("hist");
1946 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
1947 draw_text -> DrawLatex(0.21, 0.90, Form("Centrality : %s",centrality_region[i].c_str()));
1948 c1 -> Print(Form("%s/track_ratio_1D.pdf", out_folder_directory.c_str()));
1949 c1 -> Clear();
1950 }
1951 c1 -> Print( Form("%s/track_ratio_1D.pdf)", out_folder_directory.c_str()) );
1952
1953
1954 for (int i = 0; i < final_track_delta_phi_1D.size(); i++)
1955 {
1956 c1 -> Print( Form("%s/final_track_delta_phi_1D_MBin%i.pdf(", out_folder_directory.c_str(), i) );
1957 for (int i1 = 0; i1 < final_track_delta_phi_1D[i].size(); i1++)
1958 {
1959 if (final_track_delta_phi_1D[i][i1] -> GetEntries() > 0) {
1960 double hist_offset = get_dist_offset(final_track_delta_phi_1D[i][i1], 15);
1961 gaus_pol1_fit->SetParameters( final_track_delta_phi_1D[i][i1] -> GetBinContent(final_track_delta_phi_1D[i][i1] -> GetMaximumBin()) - hist_offset, 0, final_track_delta_phi_1D[i][i1]->GetStdDev()/2., hist_offset, 0);
1962 final_track_delta_phi_1D[i][i1] -> Fit(gaus_pol1_fit,"NQ");
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973 d_gaus_pol1_fit -> SetParameters(final_track_delta_phi_1D[i][i1] -> GetBinContent(final_track_delta_phi_1D[i][i1] -> GetMaximumBin()) - hist_offset, 0.2, 0, final_track_delta_phi_1D[i][i1]->GetStdDev()/2., final_track_delta_phi_1D[i][i1]->GetStdDev()/2., hist_offset, 0);
1974 d_gaus_pol1_fit -> SetParLimits(1, 0, 0.5);
1975 d_gaus_pol1_fit -> SetParLimits(3, 0, 1000);
1976 d_gaus_pol1_fit -> SetParLimits(4, 0, 1000);
1977 final_track_delta_phi_1D[i][i1] -> Fit(d_gaus_pol1_fit,"NQ");
1978
1979 draw_d_gaus -> SetParameters(d_gaus_pol1_fit->GetParameter(0), d_gaus_pol1_fit->GetParameter(1), d_gaus_pol1_fit->GetParameter(2), d_gaus_pol1_fit->GetParameter(3), d_gaus_pol1_fit->GetParameter(4));
1980
1981 draw_pol1_line -> SetParameters(d_gaus_pol1_fit -> GetParameter(5), d_gaus_pol1_fit -> GetParameter(6));
1982
1983
1984
1985 bkg_fit_pol2 -> SetParameters(hist_offset, 0, -0.2, 0, signal_region);
1986 bkg_fit_pol2 -> FixParameter(4, signal_region);
1987 bkg_fit_pol2 -> SetParLimits(2, -100, 0);
1988 final_track_delta_phi_1D[i][i1] -> Fit(bkg_fit_pol2,"NQ");
1989
1990 draw_pol2_line -> SetParameters(bkg_fit_pol2 -> GetParameter(0), bkg_fit_pol2 -> GetParameter(1), bkg_fit_pol2 -> GetParameter(2), bkg_fit_pol2 -> GetParameter(3));
1991 }
1992
1993
1994
1995 final_track_delta_phi_1D[i][i1] -> SetMinimum(0);
1996 final_track_delta_phi_1D[i][i1] -> SetMaximum( final_track_delta_phi_1D[i][i1] -> GetBinContent(final_track_delta_phi_1D[i][i1] -> GetMaximumBin()) * 1.5);
1997 final_track_delta_phi_1D[i][i1] -> Draw("hist");
1998
1999
2000
2001 if (final_track_delta_phi_1D[i][i1] -> GetEntries() > 0) {draw_pol2_line -> Draw("lsame");}
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018 double pol2_bkg_integral = fabs(draw_pol2_line -> Integral( -1. * signal_region, signal_region )) / final_track_delta_phi_1D[i][i1] -> GetBinWidth(1);
2019
2020
2021 int binID_X = eta_z_convert_inverse_map[i1].first;
2022 int binID_Y = eta_z_convert_inverse_map[i1].second;
2023
2024
2025 if (binID_Y == tight_zvtx_bin) { final_dNdeta_1D[i]->SetBinContent(binID_X, good_tracklet_counting[i][i1] ); }
2026
2027 coord_line -> DrawLine(-1*signal_region, 0, -1 * signal_region, final_track_delta_phi_1D[i][i1] -> GetBinContent(final_track_delta_phi_1D[i][i1] -> GetMaximumBin()) * 1.5);
2028 coord_line -> DrawLine(signal_region, 0, signal_region, final_track_delta_phi_1D[i][i1] -> GetBinContent(final_track_delta_phi_1D[i][i1] -> GetMaximumBin()) * 1.5);
2029
2030 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2031 draw_text -> DrawLatex(0.21, 0.90, Form("Centrality : %s, #eta: %.2f ~ %.2f, Z: %.0f ~ %.0f mm",centrality_region[i].c_str(), eta_region_hist -> GetBinCenter(binID_X) - eta_region_hist -> GetBinWidth(binID_X)/2., eta_region_hist -> GetBinCenter(binID_X) + eta_region_hist -> GetBinWidth(binID_X)/2., coarse_eta_z_map -> GetYaxis() -> GetBinCenter(binID_Y) - coarse_eta_z_map -> GetYaxis() -> GetBinWidth(binID_Y)/2., coarse_eta_z_map -> GetYaxis() -> GetBinCenter(binID_Y) + coarse_eta_z_map -> GetYaxis() -> GetBinWidth(binID_Y)/2.));
2032 draw_text -> DrawLatex(0.21, 0.85, Form("MBin: %i, #eta bin: %i, Z bin: %i", i, binID_X, binID_Y));
2033
2034
2035
2036 c1 -> Print( Form("%s/final_track_delta_phi_1D_MBin%i.pdf", out_folder_directory.c_str(), i) );
2037 c1 -> Clear();
2038 }
2039 c1 -> Print( Form("%s/final_track_delta_phi_1D_MBin%i.pdf)", out_folder_directory.c_str(), i) );
2040 }
2041
2042
2043 for (int i = 0; i < final_track_multi_delta_phi_1D.size(); i++)
2044 {
2045 c1 -> Print( Form("%s/final_track_multi_delta_phi_1D_MBin%i.pdf(", out_folder_directory.c_str(), i) );
2046 for (int i1 = 0; i1 < final_track_multi_delta_phi_1D[i].size(); i1++)
2047 {
2048 double hist_offset = get_dist_offset(final_track_multi_delta_phi_1D[i][i1], 15);
2049 gaus_pol1_fit->SetParameters( final_track_multi_delta_phi_1D[i][i1] -> GetBinContent(final_track_multi_delta_phi_1D[i][i1] -> GetMaximumBin()) - hist_offset, 0, final_track_multi_delta_phi_1D[i][i1]->GetStdDev()/2., hist_offset, 0);
2050 if (final_track_multi_delta_phi_1D[i][i1] -> GetEntries() > 0) {final_track_multi_delta_phi_1D[i][i1] -> Fit(gaus_pol1_fit,"NQ");}
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060 d_gaus_pol1_fit -> SetParameters(final_track_multi_delta_phi_1D[i][i1] -> GetBinContent(final_track_multi_delta_phi_1D[i][i1] -> GetMaximumBin()) - hist_offset, 0.2, 0, final_track_multi_delta_phi_1D[i][i1]->GetStdDev()/2., final_track_multi_delta_phi_1D[i][i1]->GetStdDev()/2., hist_offset, 0);
2061 d_gaus_pol1_fit -> SetParLimits(1, 0, 0.5);
2062 d_gaus_pol1_fit -> SetParLimits(3, 0, 1000);
2063 d_gaus_pol1_fit -> SetParLimits(4, 0, 1000);
2064 if (final_track_multi_delta_phi_1D[i][i1] -> GetEntries() > 0) {final_track_multi_delta_phi_1D[i][i1] -> Fit(d_gaus_pol1_fit,"NQ");}
2065
2066 draw_d_gaus -> SetParameters(d_gaus_pol1_fit->GetParameter(0), d_gaus_pol1_fit->GetParameter(1), d_gaus_pol1_fit->GetParameter(2), d_gaus_pol1_fit->GetParameter(3), d_gaus_pol1_fit->GetParameter(4));
2067
2068 draw_pol1_line -> SetParameters(d_gaus_pol1_fit -> GetParameter(5), d_gaus_pol1_fit -> GetParameter(6));
2069
2070
2071
2072 bkg_fit_pol2 -> SetParameters(hist_offset, 0, -0.2, 0, signal_region);
2073 bkg_fit_pol2 -> FixParameter(4, signal_region);
2074 bkg_fit_pol2 -> SetParLimits(2, -100, 0);
2075 if (final_track_multi_delta_phi_1D[i][i1] -> GetEntries() > 0) {final_track_multi_delta_phi_1D[i][i1] -> Fit(bkg_fit_pol2,"NQ");}
2076
2077 draw_pol2_line -> SetParameters(bkg_fit_pol2 -> GetParameter(0), bkg_fit_pol2 -> GetParameter(1), bkg_fit_pol2 -> GetParameter(2), bkg_fit_pol2 -> GetParameter(3));
2078
2079 final_track_multi_delta_phi_1D[i][i1] -> SetMinimum(0);
2080 final_track_multi_delta_phi_1D[i][i1] -> SetMaximum( final_track_multi_delta_phi_1D[i][i1] -> GetBinContent(final_track_multi_delta_phi_1D[i][i1] -> GetMaximumBin()) * 1.5);
2081 final_track_multi_delta_phi_1D[i][i1] -> Draw("hist");
2082
2083
2084
2085 draw_pol2_line -> Draw("lsame");
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096 double gaus_integral = fabs(draw_gaus_line -> Integral( (draw_gaus_line -> GetParameter(1) - 3 * fabs(draw_gaus_line -> GetParameter(2))), draw_gaus_line -> GetParameter(1) + 3 * fabs(draw_gaus_line -> GetParameter(2)) )) / final_track_multi_delta_phi_1D[i][i1] -> GetBinWidth(1);
2097
2098
2099 double d_gaus_integral = fabs(draw_d_gaus -> Integral( -1. * signal_region, signal_region )) / final_track_multi_delta_phi_1D[i][i1] -> GetBinWidth(1);
2100
2101
2102 double pol2_bkg_integral = fabs(draw_pol2_line -> Integral( -1. * signal_region, signal_region )) / final_track_multi_delta_phi_1D[i][i1] -> GetBinWidth(1);
2103
2104
2105
2106 int binID_X = eta_z_convert_inverse_map[i1].first;
2107 int binID_Y = eta_z_convert_inverse_map[i1].second;
2108 if (binID_Y == tight_zvtx_bin && final_track_multi_delta_phi_1D[i][i1] -> GetEntries() != 0) { final_dNdeta_multi_1D[i]->SetBinContent(binID_X, good_tracklet_multi_counting[i][i1] - pol2_bkg_integral ); }
2109
2110 coord_line -> DrawLine(-1*signal_region, 0, -1 * signal_region, final_track_multi_delta_phi_1D[i][i1] -> GetBinContent(final_track_multi_delta_phi_1D[i][i1] -> GetMaximumBin()) * 1.5);
2111 coord_line -> DrawLine(signal_region, 0, signal_region, final_track_multi_delta_phi_1D[i][i1] -> GetBinContent(final_track_multi_delta_phi_1D[i][i1] -> GetMaximumBin()) * 1.5);
2112
2113 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2114 draw_text -> DrawLatex(0.21, 0.90, Form("Centrality : %s, #eta: %.2f ~ %.2f, Z: %.0f ~ %.0f mm",centrality_region[i].c_str(), eta_region_hist -> GetBinCenter(binID_X) - eta_region_hist -> GetBinWidth(binID_X)/2., eta_region_hist -> GetBinCenter(binID_X) + eta_region_hist -> GetBinWidth(binID_X)/2., coarse_eta_z_map -> GetYaxis() -> GetBinCenter(binID_Y) - coarse_eta_z_map -> GetYaxis() -> GetBinWidth(binID_Y)/2., coarse_eta_z_map -> GetYaxis() -> GetBinCenter(binID_Y) + coarse_eta_z_map -> GetYaxis() -> GetBinWidth(binID_Y)/2.));
2115 draw_text -> DrawLatex(0.21, 0.85, Form("MBin: %i, #eta bin: %i, Z bin: %i", i, binID_X, binID_Y));
2116
2117
2118 draw_text -> DrawLatex(0.21, 0.80, Form("pol2: %.2f + %.2f(x-%.2f) + %.2f(x-%.2f)^{2}", bkg_fit_pol2 -> GetParameter(0), bkg_fit_pol2 -> GetParameter(1), bkg_fit_pol2 -> GetParameter(3), bkg_fit_pol2 -> GetParameter(2), bkg_fit_pol2 -> GetParameter(3)));
2119 c1 -> Print( Form("%s/final_track_multi_delta_phi_1D_MBin%i.pdf", out_folder_directory.c_str(), i) );
2120 c1 -> Clear();
2121 }
2122 c1 -> Print( Form("%s/final_track_multi_delta_phi_1D_MBin%i.pdf)", out_folder_directory.c_str(), i) );
2123 }
2124
2125
2126 c1 -> Print( Form("%s/final_dNdeta_1D.pdf(", out_folder_directory.c_str()) );
2127 for (int i = 0; i < final_dNdeta_1D.size(); i++)
2128 {
2129 double N_correction_evt_MC = (i == final_dNdeta_1D_MC.size() - 1) ? MBin_Z_evt_hist_2D_MC -> GetBinContent(MBin_Z_evt_hist_2D_MC -> GetNbinsX(),tight_zvtx_bin) : MBin_Z_evt_hist_2D_MC -> GetBinContent(i+1,tight_zvtx_bin);
2130 final_dNdeta_1D_MC[i] -> Scale(1./double(final_dNdeta_1D_MC[i] -> GetBinWidth(1) ));
2131 final_dNdeta_1D_MC[i] -> Scale(1./double(N_correction_evt_MC));
2132
2133 double N_correction_evt = (i == final_dNdeta_1D_MC.size() - 1) ? MBin_Z_evt_hist_2D -> GetBinContent(MBin_Z_evt_hist_2D -> GetNbinsX(),tight_zvtx_bin) : MBin_Z_evt_hist_2D -> GetBinContent(i+1,tight_zvtx_bin);
2134 final_dNdeta_1D[i] -> Scale(1./double(final_dNdeta_1D[i] -> GetBinWidth(1) ));
2135 final_dNdeta_1D[i] -> Scale(1./double(N_correction_evt));
2136 final_dNdeta_1D[i] -> GetYaxis() -> SetRangeUser(0, final_dNdeta_1D[i] -> GetMaximum() * 1.5);
2137
2138 final_dNdeta_multi_1D[i] -> Scale(1./double(final_dNdeta_multi_1D[i] -> GetBinWidth(1) ));
2139 final_dNdeta_multi_1D[i] -> Scale(1./double(N_correction_evt));
2140
2141
2142 final_dNdeta_1D[i] -> Draw("ep");
2143 final_dNdeta_1D_MC[i] -> Draw("hist same");
2144 final_dNdeta_multi_1D[i] -> Draw("ep same");
2145 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2146 draw_text -> DrawLatex(0.21, 0.90, Form("Centrality : %s, Z: %.2f ~ %.2f",centrality_region[i].c_str(), coarse_eta_z_map -> GetYaxis() -> GetBinCenter(tight_zvtx_bin) - coarse_eta_z_map -> GetYaxis() -> GetBinWidth(tight_zvtx_bin)/2., coarse_eta_z_map -> GetYaxis() -> GetBinCenter(tight_zvtx_bin) + coarse_eta_z_map -> GetYaxis() -> GetBinWidth(tight_zvtx_bin)/2.));
2147 draw_text -> DrawLatex(0.21, 0.86, Form("Nevt MC : %.1f, Nevt reco : %.1f",N_correction_evt_MC, N_correction_evt));
2148 draw_text -> DrawLatex(0.21, 0.82, Form("MC entry : %.2f, tight entry : %.2f, loose entry : %.2f", final_dNdeta_1D_MC[i] -> Integral(), final_dNdeta_1D[i] -> Integral(), final_dNdeta_multi_1D[i] -> Integral()));
2149 c1 -> Print(Form("%s/final_dNdeta_1D.pdf", out_folder_directory.c_str()));
2150 c1 -> Clear();
2151 }
2152 c1 -> Print( Form("%s/final_dNdeta_1D.pdf)", out_folder_directory.c_str()) );
2153
2154
2155 track_cluster_ratio_multiplicity_2D -> Draw("colz0");
2156 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2157 c1 -> Print( Form("%s/track_cluster_ratio_multiplicity_2D.pdf", out_folder_directory.c_str()) );
2158 c1 -> Clear();
2159
2160
2161 track_cluster_ratio_multiplicity_2D_MC -> Draw("colz0");
2162 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2163 c1 -> Print( Form("%s/track_cluster_ratio_multiplicity_2D_MC.pdf", out_folder_directory.c_str()) );
2164 c1 -> Clear();
2165
2166
2167 track_correlation_2D -> Draw("colz0");
2168 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2169 correlation_Line -> Draw("lsame");
2170 c1 -> Print( Form("%s/track_correlation_2D.pdf", out_folder_directory.c_str()) );
2171 c1 -> Clear();
2172
2173
2174 track_ratio_2D -> Draw("colz0");
2175 coord_line -> DrawLine( track_ratio_2D->GetXaxis()->GetXmin(), 1, track_ratio_2D->GetXaxis()->GetXmax(), 1 );
2176 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2177 correlation_Line -> Draw("lsame");
2178 c1 -> Print( Form("%s/track_ratio_2D.pdf", out_folder_directory.c_str()) );
2179 c1 -> Clear();
2180
2181
2182 reco_eta_correlation_2D -> Draw("colz0");
2183 correlation_Line -> Draw("lsame");
2184 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2185 c1 -> Print( Form("%s/reco_eta_correlation_2D.pdf", out_folder_directory.c_str()) );
2186 c1 -> Clear();
2187
2188
2189 reco_eta_diff_reco3P_2D -> Draw("colz0");
2190 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2191 c1 -> Print( Form("%s/reco_eta_diff_reco3P_2D.pdf", out_folder_directory.c_str()) );
2192 c1 -> Clear();
2193
2194
2195 reco_eta_diff_1D -> Draw("hist");
2196 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2197 c1 -> Print( Form("%s/reco_eta_diff_1D.pdf", out_folder_directory.c_str()) );
2198 c1 -> Clear();
2199
2200
2201 c1 -> Print( Form("%s/track_DeltaPhi_eta_2D.pdf(", out_folder_directory.c_str()) );
2202 for (int i = 0; i < track_DeltaPhi_eta_2D.size(); i++)
2203 {
2204 track_DeltaPhi_eta_2D[i] -> Draw("colz0");
2205 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2206 draw_text -> DrawLatex(0.21, 0.90, Form("Centrality : %s",centrality_region[i].c_str()));
2207 c1 -> Print(Form("%s/track_DeltaPhi_eta_2D.pdf", out_folder_directory.c_str()));
2208 c1 -> Clear();
2209 }
2210 c1 -> Print( Form("%s/track_DeltaPhi_eta_2D.pdf)", out_folder_directory.c_str()) );
2211
2212
2213 c1 -> Print( Form("%s/track_DeltaPhi_DeltaEta_2D.pdf(", out_folder_directory.c_str()) );
2214 for (int i = 0; i < track_DeltaPhi_DeltaEta_2D.size(); i++)
2215 {
2216 track_DeltaPhi_DeltaEta_2D[i] -> Draw("colz0");
2217 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2218 draw_text -> DrawLatex(0.21, 0.90, Form("Centrality : %s",centrality_region[i].c_str()));
2219 c1 -> Print(Form("%s/track_DeltaPhi_DeltaEta_2D.pdf", out_folder_directory.c_str()));
2220 c1 -> Clear();
2221 }
2222 c1 -> Print( Form("%s/track_DeltaPhi_DeltaEta_2D.pdf)", out_folder_directory.c_str()) );
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242 c1 -> Print( Form("%s/track_eta_z_2D_MC.pdf(", out_folder_directory.c_str()) );
2243 for (int i = 0; i < track_eta_z_2D_MC.size(); i++)
2244 {
2245 track_eta_z_2D_MC[i] -> Draw("colz0");
2246 DrawEtaZGrid();
2247 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2248 draw_text -> DrawLatex(0.21, 0.90, Form("Centrality : %s",centrality_region[i].c_str()));
2249 c1 -> Print(Form("%s/track_eta_z_2D_MC.pdf", out_folder_directory.c_str()));
2250 c1 -> Clear();
2251 }
2252 c1 -> Print( Form("%s/track_eta_z_2D_MC.pdf)", out_folder_directory.c_str()) );
2253
2254
2255 clu_used_centrality_2D -> Draw("colz0");
2256 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2257 c1 -> Print( Form("%s/clu_used_centrality_2D.pdf", out_folder_directory.c_str()) );
2258 c1 -> Clear();
2259
2260
2261
2262 cluster4_track_phi_1D -> Draw("hist");
2263 cluster4_track_phi_1D -> SetMinimum(0);
2264 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2265 c1 -> Print( Form("%s/cluster4_track_phi_1D.pdf", out_folder_directory.c_str()) );
2266 c1 -> Clear();
2267
2268
2269 cluster3_track_phi_1D -> Draw("hist");
2270 cluster3_track_phi_1D -> SetMinimum(0);
2271 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2272 c1 -> Print( Form("%s/cluster3_track_phi_1D.pdf", out_folder_directory.c_str()) );
2273 c1 -> Clear();
2274
2275
2276 cluster3_inner_track_phi_1D -> Draw("hist");
2277 cluster3_inner_track_phi_1D -> SetMinimum(0);
2278 for (int i = 0; i < cluster3_inner_track_phi_1D -> GetNbinsX(); i++)
2279 {
2280 if (cluster3_inner_track_phi_1D -> GetBinContent(i+1) > 200)
2281 {
2282 cout<<i+1<<" mega Inner track phi bin center: "<<cluster3_inner_track_phi_1D -> GetBinCenter(i+1)<<" bin content: "<<cluster3_inner_track_phi_1D -> GetBinContent(i+1)<<endl;
2283 }
2284 }
2285
2286 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2287 c1 -> Print( Form("%s/cluster3_inner_track_phi_1D.pdf", out_folder_directory.c_str()) );
2288 c1 -> Clear();
2289
2290
2291 cluster3_outer_track_phi_1D -> Draw("hist");
2292 cluster3_outer_track_phi_1D -> SetMinimum(0);
2293 for (int i = 0; i < cluster3_outer_track_phi_1D -> GetNbinsX(); i++)
2294 {
2295 if (cluster3_outer_track_phi_1D -> GetBinContent(i+1) > 200)
2296 {
2297 cout<<i+1<<" mega Outer track phi bin center: "<<cluster3_outer_track_phi_1D -> GetBinCenter(i+1)<<" bin content: "<<cluster3_outer_track_phi_1D -> GetBinContent(i+1)<<endl;
2298 }
2299 }
2300 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2301 c1 -> Print( Form("%s/cluster3_outer_track_phi_1D.pdf", out_folder_directory.c_str()) );
2302 c1 -> Clear();
2303
2304
2305 NClu4_track_centrality_2D -> Draw("colz0");
2306 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2307 c1 -> Print( Form("%s/NClu4_track_centrality_2D.pdf", out_folder_directory.c_str()) );
2308 c1 -> Clear();
2309
2310
2311 NClu3_track_centrality_2D -> Draw("colz0");
2312 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2313 c1 -> Print( Form("%s/NClu3_track_centrality_2D.pdf", out_folder_directory.c_str()) );
2314 c1 -> Clear();
2315
2316
2317 coarse_eta_z_map -> Draw("colz0");
2318 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2319 c1 -> Print( Form("%s/coarse_eta_z_map.pdf", out_folder_directory.c_str()) );
2320 c1 -> Clear();
2321
2322
2323 c1 -> Print( Form("%s/coarse_eta_z_2D_MC.pdf(", out_folder_directory.c_str()) );
2324 for (int i = 0; i < coarse_eta_z_2D_MC.size(); i++)
2325 {
2326 coarse_eta_z_2D_MC[i] -> Draw("colz0");
2327 DrawEtaZGrid();
2328 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2329 draw_text -> DrawLatex(0.21, 0.90, Form("Centrality : %s",centrality_region[i].c_str()));
2330 c1 -> Print(Form("%s/coarse_eta_z_2D_MC.pdf", out_folder_directory.c_str()));
2331 c1 -> Clear();
2332 }
2333 c1 -> Print( Form("%s/coarse_eta_z_2D_MC.pdf)", out_folder_directory.c_str()) );
2334
2335
2336 MBin_Z_evt_hist_2D -> Draw("colz0");
2337 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2338 c1 -> Print( Form("%s/MBin_Z_evt_hist_2D.pdf", out_folder_directory.c_str()) );
2339 c1 -> Clear();
2340
2341
2342 MBin_Z_evt_hist_2D_MC -> Draw("colz0");
2343 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2344 c1 -> Print( Form("%s/MBin_Z_evt_hist_2D_MC.pdf", out_folder_directory.c_str()) );
2345 c1 -> Clear();
2346
2347
2348 c1 -> Print( Form("%s/coarse_Reco_SignalNTracklet_Single_eta_z_2D.pdf(", out_folder_directory.c_str()) );
2349 for (int i = 0; i < coarse_Reco_SignalNTracklet_Single_eta_z_2D.size(); i++)
2350 {
2351 coarse_Reco_SignalNTracklet_Single_eta_z_2D[i] -> Draw("colz0");
2352 DrawEtaZGrid();
2353 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2354 draw_text -> DrawLatex(0.21, 0.90, Form("Centrality : %s",centrality_region[i].c_str()));
2355 c1 -> Print(Form("%s/coarse_Reco_SignalNTracklet_Single_eta_z_2D.pdf", out_folder_directory.c_str()));
2356 c1 -> Clear();
2357 }
2358 c1 -> Print( Form("%s/coarse_Reco_SignalNTracklet_Single_eta_z_2D.pdf)", out_folder_directory.c_str()) );
2359
2360
2361 c1 -> Print( Form("%s/coarse_Reco_SignalNTracklet_Multi_eta_z_2D.pdf(", out_folder_directory.c_str()) );
2362 for (int i = 0; i < coarse_Reco_SignalNTracklet_Multi_eta_z_2D.size(); i++)
2363 {
2364 coarse_Reco_SignalNTracklet_Multi_eta_z_2D[i] -> Draw("colz0");
2365 DrawEtaZGrid();
2366 ltx->DrawLatex(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, Form("#it{#bf{sPHENIX}} %s", plot_text.c_str()));
2367 draw_text -> DrawLatex(0.21, 0.90, Form("Centrality : %s",centrality_region[i].c_str()));
2368 c1 -> Print(Form("%s/coarse_Reco_SignalNTracklet_Multi_eta_z_2D.pdf", out_folder_directory.c_str()));
2369 c1 -> Clear();
2370 }
2371 c1 -> Print( Form("%s/coarse_Reco_SignalNTracklet_Multi_eta_z_2D.pdf)", out_folder_directory.c_str()) );
2372 }
2373
2374 void INTTEta::EndRun()
2375 {
2376 for (int i = 0; i < N_GoodEvent_vec.size(); i++)
2377 {
2378 cout<<"N good evt break down : "<< i <<" "<<N_GoodEvent_vec[i]<<endl;
2379 }
2380
2381 cout<<"N good evt inclusive : "<<N_GoodEvent<<endl;
2382
2383 out_file -> cd();
2384 tree_out -> SetDirectory(out_file);
2385
2386
2387
2388 for (int i = 0; i < final_track_multi_delta_phi_1D.size(); i++)
2389 {
2390 for (int i1 = 0; i1 < final_track_multi_delta_phi_1D[i].size(); i1++)
2391 {
2392 final_track_multi_delta_phi_1D[i][i1] -> Write(Form("Reco_DeltaPhi1D_Multi_MBin%i_Eta%i_Z%i", i, eta_z_convert_inverse_map[i1].first, eta_z_convert_inverse_map[i1].second));
2393 }
2394 }
2395
2396
2397
2398 for (int i = 0; i < final_track_delta_phi_1D.size(); i++)
2399 {
2400 for (int i1 = 0; i1 < final_track_delta_phi_1D[i].size(); i1++)
2401 {
2402 final_track_delta_phi_1D[i][i1] -> Write(Form("Reco_DeltaPhi1D_Single_MBin%i_Eta%i_Z%i", i, eta_z_convert_inverse_map[i1].first, eta_z_convert_inverse_map[i1].second));
2403 }
2404 }
2405
2406
2407 for (int i = 0; i < coarse_Reco_SignalNTracklet_Multi_eta_z_2D.size(); i++)
2408 {
2409 coarse_Reco_SignalNTracklet_Multi_eta_z_2D[i] -> Write(Form("Reco_SignalNTracklet_Multi_MBin%i",i));
2410 }
2411 for (int i = 0; i < coarse_Reco_SignalNTracklet_Single_eta_z_2D.size(); i++)
2412 {
2413 coarse_Reco_SignalNTracklet_Single_eta_z_2D[i] -> Write(Form("Reco_SignalNTracklet_Single_MBin%i",i));
2414 }
2415
2416
2417 for (int i = 0; i < coarse_eta_z_2D_MC.size(); i++)
2418 {
2419 coarse_eta_z_2D_MC[i] -> Write(Form("NTrueTrack_MBin%i",i));
2420 }
2421
2422
2423 for (int i = 0; i < coarse_eta_z_2D_fulleta_MC.size(); i++)
2424 {
2425 coarse_eta_z_2D_fulleta_MC[i] -> Write(Form("NTrueTrack_FullEta_MBin%i",i));
2426 }
2427
2428
2429 coarse_eta_z_map -> Write("Eta_Z_reference");
2430
2431
2432 MBin_Z_evt_hist_2D -> Write("MBin_Z_evt_map");
2433
2434
2435 MBin_Z_evt_hist_2D_MC -> Write("MBin_Z_evt_map_MC");
2436
2437
2438 for (int i = 0; i < track_eta_z_2D_MC.size(); i++)
2439 {
2440 track_eta_z_2D_MC[i] -> Write(Form("Fine_TrueTrackEtaZ_MBin%i",i));
2441 }
2442
2443 for (int i = 0; i < track_eta_z_2D.size(); i++)
2444 {
2445 track_eta_z_2D[i] -> Write(Form("Fine_RecoTrackEtaZ_MBin%i",i));
2446 }
2447
2448
2449 clu_used_centrality_2D -> Write("CluUsed_Centrality2D");
2450
2451
2452
2453 cluster3_track_phi_1D -> Write("cluster3_track_phi_1D");
2454 cluster3_inner_track_phi_1D -> Write("cluster3_inner_track_phi_1D");
2455 cluster3_outer_track_phi_1D -> Write("cluster3_outer_track_phi_1D");
2456 cluster4_track_phi_1D -> Write("cluster4_track_phi_1D");
2457 NClu3_track_centrality_2D -> Write("NClu3_track_centrality_2D");
2458 NClu4_track_centrality_2D -> Write("NClu4_track_centrality_2D");
2459 clu3_track_ReducedChi2_1D -> Write("clu3_track_ReducedChi2_1D");
2460 clu4_track_ReducedChi2_1D -> Write("clu4_track_ReducedChi2_1D");
2461
2462 for (int i = 0; i < track_cluster_ratio_1D_MC.size(); i++){track_cluster_ratio_1D_MC[i] -> Write(Form("track_cluster_ratio_1D_MC_MBin%i",i));}
2463 for (int i = 0; i < track_cluster_ratio_1D.size(); i++) {track_cluster_ratio_1D[i] -> Write(Form("track_cluster_ratio_1D_MBin%i",i));}
2464
2465 track_cluster_ratio_multiplicity_2D_MC -> Write("track_cluster_ratio_multiplicity_2D_MC");
2466 track_cluster_ratio_multiplicity_2D -> Write("track_cluster_ratio_multiplicity_2D");
2467 track_correlation_2D -> Write("track_correlation_2D");
2468
2469 for (int i = 0; i < track_DeltaPhi_eta_2D.size(); i++){ track_DeltaPhi_eta_2D[i] -> Write(Form("track_DeltaPhi_eta_2D_MBin%i",i)); }
2470 for (int i = 0; i < track_eta_phi_2D.size(); i++){ track_eta_phi_2D[i] -> Write(Form("track_eta_phi_2D_MBin%i",i)); }
2471 for (int i = 0; i < track_ratio_1D.size(); i++){ track_ratio_1D[i] -> Write(Form("track_ratio_1D_MBin%i",i)); }
2472 track_ratio_2D -> Write("track_ratio_2D");
2473
2474 for (int i = 0; i < dNdeta_1D.size(); i++) {dNdeta_1D[i] -> Write(Form("FineBin_Ntracklet_MBin%i",i));}
2475 for (int i = 0; i < dNdeta_1D_MC.size(); i++) {dNdeta_1D_MC[i] -> Write(Form("FineBin_NTrueTrack_MBin%i",i));}
2476 for (int i = 0; i < dNdeta_1D_MC_edge_eta_cut.size(); i++) {dNdeta_1D_MC_edge_eta_cut[i] -> Write(Form("FineBin_NTrueTrack_EdgeEtaCut_MBin%i",i));}
2477
2478 exclusive_NClus_inner -> Write("exclusive_NClus_inner");
2479 exclusive_NClus_outer -> Write("exclusive_NClus_outer");
2480 exclusive_NClus_sum -> Write("exclusive_NClus_sum");
2481
2482 exclusive_cluster_inner_eta -> Write("exclusive_cluster_inner_eta");
2483 exclusive_cluster_inner_phi -> Write("exclusive_cluster_inner_phi");
2484 exclusive_cluster_outer_eta -> Write("exclusive_cluster_outer_eta");
2485 exclusive_cluster_outer_phi -> Write("exclusive_cluster_outer_phi");
2486 exclusive_cluster_all_eta -> Write("exclusive_cluster_all_eta");
2487 exclusive_cluster_all_phi -> Write("exclusive_cluster_all_phi");
2488
2489 exclusive_cluster_inner_eta_phi_2D -> Write("exclusive_cluster_inner_eta_phi_2D");
2490 exclusive_cluster_outer_eta_phi_2D -> Write("exclusive_cluster_outer_eta_phi_2D");
2491
2492 exclusive_tight_tracklet_eta -> Write("exclusive_tight_tracklet_eta");
2493 exclusive_tight_tracklet_phi -> Write("exclusive_tight_tracklet_phi");
2494 exclusive_loose_tracklet_eta -> Write("exclusive_loose_tracklet_eta");
2495 exclusive_loose_tracklet_phi -> Write("exclusive_loose_tracklet_phi");
2496
2497 exclusive_cluster_inner_eta_adc_2D -> Write("exclusive_cluster_inner_eta_adc_2D");
2498 exclusive_cluster_outer_eta_adc_2D -> Write("exclusive_cluster_outer_eta_adc_2D");
2499
2500 exclusive_cluster_inner_adc -> Write("exclusive_cluster_inner_adc");
2501 exclusive_cluster_outer_adc -> Write("exclusive_cluster_outer_adc");
2502
2503 tree_out -> Write("", TObject::kOverwrite);
2504
2505 out_file -> Close();
2506
2507 std::cout<<"in N event : "<<N_GoodEvent<<"the total N reco tracks is short in : "<<N_reco_cluster_short<<std::endl;
2508
2509 return;
2510 }
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527 double INTTEta::grEY_stddev(TGraphErrors * input_grr)
2528 {
2529 vector<double> input_vector; input_vector.clear();
2530 for (int i = 0; i < input_grr -> GetN(); i++) {input_vector.push_back( input_grr -> GetPointY(i) );}
2531
2532 double average = accumulate( input_vector.begin(), input_vector.end(), 0.0 ) / double(input_vector.size());
2533
2534 double sum_subt = 0;
2535 for (int ele : input_vector) {sum_subt+=pow((ele-average),2);}
2536
2537 return sqrt(sum_subt/(input_vector.size()-1));
2538 }
2539
2540
2541 pair<double, double> INTTEta::mirrorPolynomial(double a, double b) {
2542
2543 double mirroredA = 1.0 / a;
2544 double mirroredB = -b / a;
2545
2546 return {mirroredA, mirroredB};
2547 }
2548
2549
2550
2551
2552
2553
2554 pair<double,double> INTTEta::Get_eta(vector<double>p0, vector<double>p1, vector<double>p2)
2555 {
2556
2557
2558 if (track_gr -> GetN() != 0) {track_gr -> Set(0);}
2559
2560 vector<double> r_vec = {p0[0], p1[0], p2[0]};
2561 vector<double> z_vec = {p0[1], p1[1], p2[1]};
2562 vector<double> re_vec = {0, 0, 0};
2563 vector<double> ze_vec = {p0[2], ( fabs( p1[1] ) < 130 ) ? 8. : 10., ( fabs( p2[1] ) < 130 ) ? 8. : 10.};
2564
2565
2566
2567 for (int i = 0; i < 3; i++)
2568 {
2569 track_gr -> SetPoint(i,r_vec[i],z_vec[i]);
2570 track_gr -> SetPointError(i,re_vec[i],ze_vec[i]);
2571
2572
2573 }
2574
2575 double vertical_line = ( fabs( grEY_stddev(track_gr) ) < 0.00001 ) ? 1 : 0;
2576
2577 if (vertical_line) {return {0,0};}
2578 else
2579 {
2580 fit_rz -> SetParameters(0,0);
2581
2582 track_gr -> Fit(fit_rz,"NQ");
2583
2584 pair<double,double> ax_b = mirrorPolynomial(fit_rz -> GetParameter(1),fit_rz -> GetParameter(0));
2585
2586 return {(fit_rz -> GetChisquare() / double(fit_rz -> GetNDF())), -1 * TMath::Log( fabs( tan( atan2(ax_b.first, (ax_b.first > 0) ? 1. : -1. ) / 2 ) ) )};
2587 }
2588
2589 }
2590
2591
2592
2593 double INTTEta::get_delta_phi(double angle_1, double angle_2)
2594 {
2595 vector<double> vec_abs = {fabs(angle_1 - angle_2), fabs(angle_1 - angle_2 + 360), fabs(angle_1 - angle_2 - 360)};
2596 vector<double> vec = {(angle_1 - angle_2), (angle_1 - angle_2 + 360), (angle_1 - angle_2 - 360)};
2597 return vec[std::distance(vec_abs.begin(), std::min_element(vec_abs.begin(),vec_abs.end()))];
2598 }
2599
2600 double INTTEta::get_track_phi(double inner_clu_phi_in, double delta_phi_in)
2601 {
2602 double track_phi = inner_clu_phi_in - (delta_phi_in/2.);
2603 if (track_phi < 0) {track_phi += 360;}
2604 else if (track_phi > 360) {track_phi -= 360;}
2605 else if (track_phi == 360) {track_phi = 0;}
2606 else {track_phi = track_phi;}
2607 return track_phi;
2608 }
2609
2610 double INTTEta::convertTo360(double radian) {
2611
2612 double angle = radian * (180./M_PI);
2613
2614 if (fabs(radian) == M_PI) {return 180.;}
2615 else if (radian == 0)
2616 {
2617 return 0;
2618 }
2619 else if ( radian > 0 )
2620 {
2621 return angle;
2622 }
2623 else
2624 {
2625 return angle + 360;
2626 }
2627 }
2628
2629 double INTTEta::get_clu_eta(vector<double> vertex, vector<double> clu_pos)
2630 {
2631 double correct_x = clu_pos[0] - vertex[0];
2632 double correct_y = clu_pos[1] - vertex[1];
2633 double correct_z = clu_pos[2] - vertex[2];
2634 double clu_r = sqrt(pow(correct_x,2) + pow(correct_y,2));
2635
2636
2637 return -0.5 * TMath::Log((sqrt(pow(correct_z,2)+pow(clu_r,2))-(correct_z)) / (sqrt(pow(correct_z,2)+pow(clu_r,2))+(correct_z)));
2638 }
2639
2640 pair<int,int> INTTEta::GetTH2BinXY(int histNbinsX, int histNbinsY, int binglobal)
2641 {
2642
2643 if (binglobal == -1) {return {-1,-1};}
2644
2645 int nx = histNbinsX+2;
2646 int ny = histNbinsY+2;
2647
2648 int binx = binglobal%nx;
2649 int biny = ((binglobal-binx)/nx)%ny;
2650
2651
2652
2653
2654 return {binx, biny};
2655 }
2656
2657 double INTTEta::GetTH2Index1D(pair<int,int> XY_index, int histNbinsX)
2658 {
2659 if (XY_index.first == -1) {return -1;}
2660
2661
2662
2663 return (XY_index.first - 1) + (XY_index.second - 1) * histNbinsX;
2664 }
2665
2666 void INTTEta::DrawEtaZGrid()
2667 {
2668
2669 for (int i = 0; i < eta_region.size(); i++) { coord_line -> DrawLine(eta_region[i], z_region[0], eta_region[i], z_region[z_region.size() - 1]); }
2670
2671
2672 for (int i = 0; i < z_region.size(); i++) { coord_line -> DrawLine(eta_region[0], z_region[i], eta_region[eta_region.size() - 1], z_region[i]); }
2673 }
2674
2675 double INTTEta::get_TH1F_Entries(TH1F * hist_in)
2676 {
2677 double entry_counting = 0;
2678 for (int i = 0; i < hist_in -> GetNbinsX(); i++) {entry_counting += hist_in -> GetBinContent(i+1);}
2679
2680 return entry_counting;
2681 }
2682
2683 #endif
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277