Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:14:42

0001 static const int N_ENERGIES = 8;
0002 #include "load_files.C"
0003 void cherenkov_analysis() {
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     double hodoscope_cut = 30;
0015 
0016     TFile *fin[N_ENERGIES];
0017     TTree *trees[N_ENERGIES];
0018 
0019     float E5by5_t, C1_t,  C2_inner_t, C2_outer_t,  Horz_HODO_R0_t, Horz_HODO_R1_t, Horz_HODO_R2_t, Horz_HODO_R3_t, Horz_HODO_R4_t;
0020     float C2_inner_new_t, C2_outer_new_t;
0021     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;
0022     float Veto1_t, Veto2_t, Veto3_t, Veto4_t;
0023     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;
0024     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;
0025 
0026     for(int i=0; i<N_ENERGIES; i++){
0027         fin[i] = new TFile(filenames[i].c_str());
0028 
0029         ostringstream name;
0030         name << "test1";
0031         trees[i] = (TTree *)fin[i]->Get(name.str().c_str());
0032 
0033         name.str("");
0034         name.clear();
0035 
0036         name << "tree_" << energies[i];
0037         trees[i]->SetName(name.str().c_str());
0038 
0039         trees[i]->SetBranchAddress("E5by5_t",&E5by5_t);
0040         trees[i]->SetBranchAddress("C1_t",&C1_t);
0041         trees[i]->SetBranchAddress("C2_inner_t",&C2_inner_t);
0042         trees[i]->SetBranchAddress("C2_outer_t",&C2_outer_t);
0043         if (scan==3) {
0044             trees[i]->SetBranchAddress("C2_outer_new_t",&C2_outer_new_t);
0045             trees[i]->SetBranchAddress("C2_inner_new_t",&C2_inner_new_t);
0046         }
0047         trees[i]->SetBranchAddress("Horz_HODO_R0_t",&Horz_HODO_R0_t);
0048         trees[i]->SetBranchAddress("Horz_HODO_R1_t",&Horz_HODO_R1_t);
0049         trees[i]->SetBranchAddress("Horz_HODO_R2_t",&Horz_HODO_R2_t);
0050         trees[i]->SetBranchAddress("Horz_HODO_R3_t",&Horz_HODO_R3_t);
0051         trees[i]->SetBranchAddress("Horz_HODO_R4_t",&Horz_HODO_R4_t);
0052         trees[i]->SetBranchAddress("Horz_HODO_R5_t",&Horz_HODO_R5_t);
0053         trees[i]->SetBranchAddress("Horz_HODO_R6_t",&Horz_HODO_R6_t);
0054         trees[i]->SetBranchAddress("Horz_HODO_R7_t",&Horz_HODO_R7_t);
0055         trees[i]->SetBranchAddress("Vert_HODO_R0_t",&Vert_HODO_R0_t);
0056         trees[i]->SetBranchAddress("Vert_HODO_R1_t",&Vert_HODO_R1_t);
0057         trees[i]->SetBranchAddress("Vert_HODO_R2_t",&Vert_HODO_R2_t);
0058         trees[i]->SetBranchAddress("Vert_HODO_R3_t",&Vert_HODO_R3_t);
0059         trees[i]->SetBranchAddress("Vert_HODO_R4_t",&Vert_HODO_R4_t);
0060         trees[i]->SetBranchAddress("Vert_HODO_R5_t",&Vert_HODO_R5_t);
0061         trees[i]->SetBranchAddress("Vert_HODO_R6_t",&Vert_HODO_R6_t);
0062         trees[i]->SetBranchAddress("Vert_HODO_R7_t",&Vert_HODO_R7_t);
0063         trees[i]->SetBranchAddress("Veto1_t",&Veto1_t);
0064         trees[i]->SetBranchAddress("Veto2_t",&Veto2_t);
0065         trees[i]->SetBranchAddress("Veto3_t",&Veto3_t);
0066         trees[i]->SetBranchAddress("Veto4_t",&Veto4_t);
0067         trees[i]->SetBranchAddress("TowerE_row_0_t",&TowerE_row_0_t);
0068         trees[i]->SetBranchAddress("TowerE_row_1_t",&TowerE_row_1_t);
0069         trees[i]->SetBranchAddress("TowerE_row_2_t",&TowerE_row_2_t);
0070         trees[i]->SetBranchAddress("TowerE_row_3_t",&TowerE_row_3_t);
0071         trees[i]->SetBranchAddress("TowerE_row_4_t",&TowerE_row_4_t);
0072         trees[i]->SetBranchAddress("TowerE_row_5_t",&TowerE_row_5_t);
0073         trees[i]->SetBranchAddress("TowerE_row_6_t",&TowerE_row_6_t);
0074         trees[i]->SetBranchAddress("TowerE_row_7_t",&TowerE_row_7_t);
0075         trees[i]->SetBranchAddress("TowerE_column_0_t",&TowerE_column_0_t);
0076         trees[i]->SetBranchAddress("TowerE_column_1_t",&TowerE_column_1_t);
0077         trees[i]->SetBranchAddress("TowerE_column_2_t",&TowerE_column_2_t);
0078         trees[i]->SetBranchAddress("TowerE_column_3_t",&TowerE_column_3_t);
0079         trees[i]->SetBranchAddress("TowerE_column_4_t",&TowerE_column_4_t);
0080         trees[i]->SetBranchAddress("TowerE_column_5_t",&TowerE_column_5_t);
0081         trees[i]->SetBranchAddress("TowerE_column_6_t",&TowerE_column_6_t);
0082         trees[i]->SetBranchAddress("TowerE_column_7_t",&TowerE_column_7_t);
0083     }
0084 
0085     TH1D *hCherenkov[N_ENERGIES];
0086     TH2D *hCherenkov_corr[N_ENERGIES];
0087     TCanvas *c2 = new TCanvas("c2","c2",1000,500);
0088     c2->Divide(4,2);
0089     for(int i=0; i<N_ENERGIES; i++){
0090 
0091         cout << "starting: " << energies[i] << " GeV" << endl;
0092         int entries = trees[i]->GetEntries();
0093 
0094         ostringstream name;
0095         name << "hCherenkov_" << i;
0096         ostringstream title;
0097         title << " " << energies[i] << " GeV";
0098      
0099         hCherenkov[i] = new TH1D(name.str().c_str(),title.str().c_str(),100,-500,1000);
0100 
0101         name.str("");
0102         name.clear();
0103         name << "hCherenkov_corr_" << i;
0104 
0105         hCherenkov_corr[i] = new TH2D(name.str().c_str(),name.str().c_str(),100,-500,2500,2500,-500,2500);
0106 
0107         for(int j = 0; j<entries; j++){
0108             trees[i]->GetEntry(j);
0109 
0110             //cut on hodoscope
0111             bool horizontal_hodoscope = false;
0112             bool vertical_hodoscope = false;
0113             if(Horz_HODO_R0_t > hodoscope_cut)horizontal_hodoscope = true;
0114             if(Horz_HODO_R1_t > hodoscope_cut)horizontal_hodoscope = true;
0115             if(Horz_HODO_R2_t > hodoscope_cut)horizontal_hodoscope = true;
0116             if(Horz_HODO_R3_t > hodoscope_cut)horizontal_hodoscope = true;
0117             if(Horz_HODO_R4_t > hodoscope_cut)horizontal_hodoscope = true;
0118             if(Horz_HODO_R5_t > hodoscope_cut)horizontal_hodoscope = true;
0119             if(Horz_HODO_R6_t > hodoscope_cut)horizontal_hodoscope = true;
0120             if(Horz_HODO_R7_t > hodoscope_cut)horizontal_hodoscope = true;
0121        
0122             if(Vert_HODO_R0_t > hodoscope_cut)vertical_hodoscope = true;
0123             if(Vert_HODO_R1_t > hodoscope_cut)vertical_hodoscope = true;
0124             if(Vert_HODO_R2_t > hodoscope_cut)vertical_hodoscope = true;
0125             if(Vert_HODO_R3_t > hodoscope_cut)vertical_hodoscope = true;
0126             if(Vert_HODO_R4_t > hodoscope_cut)vertical_hodoscope = true;
0127             if(Vert_HODO_R5_t > hodoscope_cut)vertical_hodoscope = true;
0128             if(Vert_HODO_R6_t > hodoscope_cut)vertical_hodoscope = true;
0129             if(Vert_HODO_R7_t > hodoscope_cut)vertical_hodoscope = true;
0130             if(!horizontal_hodoscope || !vertical_hodoscope)continue;
0131 
0132 
0133             if (scan==3) {
0134                 double c2_total = C2_inner_new_t + C2_outer_new_t;
0135             }
0136             if (scan==2) {
0137                 double c2_total = C2_inner_t + C2_outer_t;
0138             }
0139             hCherenkov[i]->Fill(c2_total);
0140         }
0141         c2->cd(i+1);
0142         c2->GetPad(i+1)->SetLogy();
0143         hCherenkov[i]->Draw("colz");
0144     }
0145 
0146     ostringstream outname;
0147 
0148     outname << "plots/cherenkov_scan" << scan << ".pdf";
0149     c2->Print(outname.str().c_str());
0150 }
0151 
0152 
0153