File indexing completed on 2025-08-05 08:14:43
0001 static const int N_ENERGIES = 8;
0002 #include "load_files.C"
0003 void hodoscope_plot() {
0004 int scan = 2;
0005 int location = 1;
0006
0007 gStyle->SetOptFit(1111);
0008 gStyle->SetOptStat(0);
0009
0010 int energies[N_ENERGIES];
0011 string filenames[N_ENERGIES];
0012 load_files(scan,location,energies,filenames);
0013
0014 TFile *fin[N_ENERGIES];
0015 TTree *trees[N_ENERGIES];
0016
0017 float E5by5_t, C1_t, C2_t, Horz_HODO_R0_t, Horz_HODO_R1_t, Horz_HODO_R2_t, Horz_HODO_R3_t, Horz_HODO_R4_t;
0018 float Horz_HODO_R5_t, Horz_HODO_R6_t, Horz_HODO_R7_t, Vert_HODO_R0_t, Vert_HODO_R1_t, Vert_HODO_R2_t,Vert_HODO_R3_t, Vert_HODO_R4_t, Vert_HODO_R5_t, Vert_HODO_R6_t, Vert_HODO_R7_t;
0019 float Veto1_t, Veto2_t, Veto3_t, Veto4_t;
0020 float TowerE_row_0_t, TowerE_row_1_t, TowerE_row_2_t, TowerE_row_3_t, TowerE_row_4_t, TowerE_row_5_t, TowerE_row_6_t, TowerE_row_7_t;
0021 float TowerE_column_0_t, TowerE_column_1_t, TowerE_column_2_t, TowerE_column_3_t, TowerE_column_4_t, TowerE_column_5_t, TowerE_column_6_t, TowerE_column_7_t;
0022
0023 for(int i=0; i<N_ENERGIES; i++){
0024 fin[i] = new TFile(filenames[i].c_str());
0025
0026 ostringstream name;
0027 name << "test1";
0028 trees[i] = (TTree *)fin[i]->Get(name.str().c_str());
0029
0030 name.str("");
0031 name.clear();
0032
0033 name << "tree_" << energies[i];
0034 trees[i]->SetName(name.str().c_str());
0035
0036 trees[i]->SetBranchAddress("E5by5_t",&E5by5_t);
0037 trees[i]->SetBranchAddress("C1_t",&C1_t);
0038
0039 trees[i]->SetBranchAddress("Horz_HODO_R0_t",&Horz_HODO_R0_t);
0040 trees[i]->SetBranchAddress("Horz_HODO_R1_t",&Horz_HODO_R1_t);
0041 trees[i]->SetBranchAddress("Horz_HODO_R2_t",&Horz_HODO_R2_t);
0042 trees[i]->SetBranchAddress("Horz_HODO_R3_t",&Horz_HODO_R3_t);
0043 trees[i]->SetBranchAddress("Horz_HODO_R4_t",&Horz_HODO_R4_t);
0044 trees[i]->SetBranchAddress("Horz_HODO_R5_t",&Horz_HODO_R5_t);
0045 trees[i]->SetBranchAddress("Horz_HODO_R6_t",&Horz_HODO_R6_t);
0046 trees[i]->SetBranchAddress("Horz_HODO_R7_t",&Horz_HODO_R7_t);
0047 trees[i]->SetBranchAddress("Vert_HODO_R0_t",&Vert_HODO_R0_t);
0048 trees[i]->SetBranchAddress("Vert_HODO_R1_t",&Vert_HODO_R1_t);
0049 trees[i]->SetBranchAddress("Vert_HODO_R2_t",&Vert_HODO_R2_t);
0050 trees[i]->SetBranchAddress("Vert_HODO_R3_t",&Vert_HODO_R3_t);
0051 trees[i]->SetBranchAddress("Vert_HODO_R4_t",&Vert_HODO_R4_t);
0052 trees[i]->SetBranchAddress("Vert_HODO_R5_t",&Vert_HODO_R5_t);
0053 trees[i]->SetBranchAddress("Vert_HODO_R6_t",&Vert_HODO_R6_t);
0054 trees[i]->SetBranchAddress("Vert_HODO_R7_t",&Vert_HODO_R7_t);
0055 trees[i]->SetBranchAddress("Veto1_t",&Veto1_t);
0056 trees[i]->SetBranchAddress("Veto2_t",&Veto2_t);
0057 trees[i]->SetBranchAddress("Veto3_t",&Veto3_t);
0058 trees[i]->SetBranchAddress("Veto4_t",&Veto4_t);
0059 trees[i]->SetBranchAddress("TowerE_row_0_t",&TowerE_row_0_t);
0060 trees[i]->SetBranchAddress("TowerE_row_1_t",&TowerE_row_1_t);
0061 trees[i]->SetBranchAddress("TowerE_row_2_t",&TowerE_row_2_t);
0062 trees[i]->SetBranchAddress("TowerE_row_3_t",&TowerE_row_3_t);
0063 trees[i]->SetBranchAddress("TowerE_row_4_t",&TowerE_row_4_t);
0064 trees[i]->SetBranchAddress("TowerE_row_5_t",&TowerE_row_5_t);
0065 trees[i]->SetBranchAddress("TowerE_row_6_t",&TowerE_row_6_t);
0066 trees[i]->SetBranchAddress("TowerE_row_7_t",&TowerE_row_7_t);
0067 trees[i]->SetBranchAddress("TowerE_column_0_t",&TowerE_column_0_t);
0068 trees[i]->SetBranchAddress("TowerE_column_1_t",&TowerE_column_1_t);
0069 trees[i]->SetBranchAddress("TowerE_column_2_t",&TowerE_column_2_t);
0070 trees[i]->SetBranchAddress("TowerE_column_3_t",&TowerE_column_3_t);
0071 trees[i]->SetBranchAddress("TowerE_column_4_t",&TowerE_column_4_t);
0072 trees[i]->SetBranchAddress("TowerE_column_5_t",&TowerE_column_5_t);
0073 trees[i]->SetBranchAddress("TowerE_column_6_t",&TowerE_column_6_t);
0074 trees[i]->SetBranchAddress("TowerE_column_7_t",&TowerE_column_7_t);
0075 }
0076 TH1D *hH[N_ENERGIES];
0077 TH2D *hH_row[N_ENERGIES], *hH_column[N_ENERGIES];
0078 TH1D *hV[N_ENERGIES];
0079 TH2D *hV_row[N_ENERGIES], *hV_column[N_ENERGIES];
0080
0081 double hodoscope_cut = 30;
0082
0083 TCanvas *ch = new TCanvas("ch","horizontal",1000,1000);
0084 ch->Divide(3,3);
0085 TCanvas *cv = new TCanvas("cv","vertical",1000,1000);
0086 cv->Divide(3,3);
0087
0088 TCanvas *chr = new TCanvas("chr","horizontal row",1000,1000);
0089 chr->Divide(3,3);
0090 TCanvas *cvr = new TCanvas("cvr","vertical row",1000,1000);
0091 cvr->Divide(3,3);
0092
0093 TCanvas *chc = new TCanvas("chc","horizontal column",1000,1000);
0094 chc->Divide(3,3);
0095 TCanvas *cvc = new TCanvas("cvc","vertical column",1000,1000);
0096 cvc->Divide(3,3);
0097 for(int i=0; i<N_ENERGIES; i++){
0098
0099 cout << "starting: " << energies[i] << " GeV" << endl;
0100 int entries = trees[i]->GetEntries();
0101
0102 ostringstream name;
0103
0104 ostringstream title;
0105 title << " " << energies[i] << " GeV";
0106 name << "hH_" << i;
0107 hH[i] = new TH1D(name.str().c_str(),title.str().c_str(),24,-0.5,7.5);
0108 hH[i]->GetXaxis()->SetTitle("horizontal hodoscope position");
0109 name.str("");
0110 name.clear();
0111 name << "hH_row_" << i;
0112 hH_row[i] = new TH2D(name.str().c_str(),title.str().c_str(),24,-0.5,7.5,8,-0.5,7.5);
0113 hH_row[i]->GetXaxis()->SetTitle("horizontal hodoscope position");
0114 hH_row[i]->GetYaxis()->SetTitle("EMCal row ");
0115 name.str("");
0116 name.clear();
0117 name << "hH_column_" << i;
0118 hH_column[i] = new TH2D(name.str().c_str(),title.str().c_str(),24,-0.5,7.5,8,-0.5,7.5);
0119 hH_column[i]->GetXaxis()->SetTitle("horizontal hodoscope position");
0120 hH_column[i]->GetYaxis()->SetTitle("EMCal column ");
0121
0122 name.str("");
0123 name.clear();
0124 name << "hV_" << i;
0125 hV[i] = new TH1D(name.str().c_str(),title.str().c_str(),24,-0.5,7.5);
0126 hV[i]->GetXaxis()->SetTitle("vertical hodoscope position");
0127 name.str("");
0128 name.clear();
0129 name << "hV_row_" << i;
0130 hV_row[i] = new TH2D(name.str().c_str(),title.str().c_str(),24,-0.5,7.5,8,-0.5,7.5);
0131 hV_row[i]->GetXaxis()->SetTitle("vertical hodoscope position");
0132 hV_row[i]->GetYaxis()->SetTitle("EMCal row");
0133
0134 name.str("");
0135 name.clear();
0136 name << "hV_column_" << i;
0137 hV_column[i] = new TH2D(name.str().c_str(),title.str().c_str(),24,-0.5,7.5,8,-0.5,7.5);
0138 hV_column[i]->GetXaxis()->SetTitle("vertical hodoscope position");
0139 hV_column[i]->GetYaxis()->SetTitle("EMCal column");
0140
0141 for(int j = 0; j<entries; j++){
0142 trees[i]->GetEntry(j);
0143 double position_h = 0.0;
0144 double energy_h = 0.0;
0145 double position_v = 0.0;
0146 double energy_v = 0.0;
0147 if(Horz_HODO_R0_t > hodoscope_cut){
0148 position_h += Horz_HODO_R0_t*0.0;
0149 energy_h += Horz_HODO_R0_t;
0150 }
0151 if(Horz_HODO_R1_t > hodoscope_cut){
0152 position_h += Horz_HODO_R1_t*1.0;
0153 energy_h += Horz_HODO_R1_t;
0154 }
0155 if(Horz_HODO_R2_t > hodoscope_cut){
0156 position_h += Horz_HODO_R2_t*2.0;
0157 energy_h += Horz_HODO_R2_t;
0158 }
0159 if(Horz_HODO_R3_t > hodoscope_cut){
0160 position_h += Horz_HODO_R3_t*3.0;
0161 energy_h += Horz_HODO_R3_t;
0162 }
0163 if(Horz_HODO_R4_t > hodoscope_cut){
0164 position_h += Horz_HODO_R4_t*4.0;
0165 energy_h += Horz_HODO_R4_t;
0166 }
0167 if(Horz_HODO_R5_t > hodoscope_cut){
0168 position_h += Horz_HODO_R5_t*5.0;
0169 energy_h += Horz_HODO_R5_t;
0170 }
0171 if(Horz_HODO_R6_t > hodoscope_cut){
0172 position_h += Horz_HODO_R6_t*6.0;
0173 energy_h += Horz_HODO_R6_t;
0174 }
0175 if(Horz_HODO_R7_t > hodoscope_cut){
0176 position_h += Horz_HODO_R7_t*7.0;
0177 energy_h += Horz_HODO_R7_t;
0178 }
0179
0180 if(Vert_HODO_R0_t > hodoscope_cut){
0181 position_v += Vert_HODO_R0_t*0.0;
0182 energy_v += Vert_HODO_R0_t;
0183 }
0184 if(Vert_HODO_R1_t > hodoscope_cut){
0185 position_v += Vert_HODO_R1_t*1.0;
0186 energy_v += Vert_HODO_R1_t;
0187 }
0188 if(Vert_HODO_R2_t > hodoscope_cut){
0189 position_v += Vert_HODO_R2_t*2.0;
0190 energy_v += Vert_HODO_R2_t;
0191 }
0192 if(Vert_HODO_R3_t > hodoscope_cut){
0193 position_v += Vert_HODO_R3_t*3.0;
0194 energy_v += Vert_HODO_R3_t;
0195 }
0196 if(Vert_HODO_R4_t > hodoscope_cut){
0197 position_v += Vert_HODO_R4_t*4.0;
0198 energy_v += Vert_HODO_R4_t;
0199 }
0200 if(Vert_HODO_R5_t > hodoscope_cut){
0201 position_v += Vert_HODO_R5_t*5.0;
0202 energy_v += Vert_HODO_R5_t;
0203 }
0204 if(Vert_HODO_R6_t > hodoscope_cut){
0205 position_v += Vert_HODO_R6_t*6.0;
0206 energy_v += Vert_HODO_R6_t;
0207 }
0208 if(Vert_HODO_R7_t > hodoscope_cut){
0209 position_v += Vert_HODO_R7_t*7.0;
0210 energy_v += Vert_HODO_R7_t;
0211 }
0212
0213 position_h /= energy_h;
0214 position_v /= energy_v;
0215 hH[i]->Fill(position_h);
0216 hV[i]->Fill(position_v);
0217
0218 hH_row[i]->Fill(position_h,0,TowerE_row_0_t);
0219 hH_row[i]->Fill(position_h,1,TowerE_row_1_t);
0220 hH_row[i]->Fill(position_h,2,TowerE_row_2_t);
0221 hH_row[i]->Fill(position_h,3,TowerE_row_3_t);
0222 hH_row[i]->Fill(position_h,4,TowerE_row_4_t);
0223 hH_row[i]->Fill(position_h,5,TowerE_row_5_t);
0224 hH_row[i]->Fill(position_h,6,TowerE_row_6_t);
0225 hH_row[i]->Fill(position_h,7,TowerE_row_7_t);
0226
0227 hH_column[i]->Fill(position_h,0,TowerE_column_0_t);
0228 hH_column[i]->Fill(position_h,1,TowerE_column_1_t);
0229 hH_column[i]->Fill(position_h,2,TowerE_column_2_t);
0230 hH_column[i]->Fill(position_h,3,TowerE_column_3_t);
0231 hH_column[i]->Fill(position_h,4,TowerE_column_4_t);
0232 hH_column[i]->Fill(position_h,5,TowerE_column_5_t);
0233 hH_column[i]->Fill(position_h,6,TowerE_column_6_t);
0234 hH_column[i]->Fill(position_h,7,TowerE_column_7_t);
0235
0236 hV_row[i]->Fill(position_v,0,TowerE_row_0_t);
0237 hV_row[i]->Fill(position_v,1,TowerE_row_1_t);
0238 hV_row[i]->Fill(position_v,2,TowerE_row_2_t);
0239 hV_row[i]->Fill(position_v,3,TowerE_row_3_t);
0240 hV_row[i]->Fill(position_v,4,TowerE_row_4_t);
0241 hV_row[i]->Fill(position_v,5,TowerE_row_5_t);
0242 hV_row[i]->Fill(position_v,6,TowerE_row_6_t);
0243 hV_row[i]->Fill(position_v,7,TowerE_row_7_t);
0244
0245 hV_column[i]->Fill(position_v,0,TowerE_column_0_t);
0246 hV_column[i]->Fill(position_v,1,TowerE_column_1_t);
0247 hV_column[i]->Fill(position_v,2,TowerE_column_2_t);
0248 hV_column[i]->Fill(position_v,3,TowerE_column_3_t);
0249 hV_column[i]->Fill(position_v,4,TowerE_column_4_t);
0250 hV_column[i]->Fill(position_v,5,TowerE_column_5_t);
0251 hV_column[i]->Fill(position_v,6,TowerE_column_6_t);
0252 hV_column[i]->Fill(position_v,7,TowerE_column_7_t);
0253 }
0254 ch->cd(i+1);
0255 hH[i]->Draw("colz");
0256 cv->cd(i+1);
0257 hV[i]->Draw("colz");
0258
0259 chc->cd(i+1);
0260 hH_column[i]->Draw("colz");
0261 cvc->cd(i+1);
0262 hV_column[i]->Draw("colz");
0263
0264 chr->cd(i+1);
0265 hH_row[i]->Draw("colz");
0266 cvr->cd(i+1);
0267 hV_row[i]->Draw("colz");
0268 }
0269
0270 ostringstream outname;
0271
0272 outname << "plots/horizontal_hodoscope_scan" << scan << "_location_" << location << ".pdf";
0273 ch->Print(outname.str().c_str());
0274 outname.str("");
0275 outname.clear();
0276 outname << "plots/vertical_hodoscope_scan" << scan << "_location_" << location << ".pdf";
0277 cv->Print(outname.str().c_str());
0278 outname.str("");
0279 outname.clear();
0280 outname << "plots/horizontal_hodoscope_column_scan" << scan << "_location_" << location << ".pdf";
0281 chc->Print(outname.str().c_str());
0282 outname.str("");
0283 outname.clear();
0284 outname << "plots/horizontal_hodoscope_row_scan" << scan << "_location_" << location << ".pdf";
0285 chr->Print(outname.str().c_str());
0286 outname.str("");
0287 outname.clear();
0288 outname << "plots/vertical_hodoscope_column_scan" << scan << "_location_" << location << ".pdf";
0289 cvc->Print(outname.str().c_str());
0290 outname.str("");
0291 outname.clear();
0292 outname << "plots/vertical_hodoscope_raw_scan" << scan << "_location_" << location << ".pdf";
0293 cvr->Print(outname.str().c_str());
0294 }
0295
0296