Back to home page

sPhenix code displayed by LXR

 
 

    


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         //trees[i]->SetBranchAddress("C2_t",&C2_t);
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