Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
veto_analysis.C
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file veto_analysis.C
1 static const int N_ENERGIES = 8;
2 #include "load_files.C"
3 
4 void veto_analysis() {
5 
6  int scan = 2;
7  int location = 1;
8 
9  gStyle->SetOptFit(1111);
10  gStyle->SetOptStat(0);
11 
12  int energies[N_ENERGIES];
13  string filenames[N_ENERGIES];
14  load_files(scan,location,energies,filenames);
15 
16  double hodoscope_cut = 30;
17 
18  TFile *fin[N_ENERGIES];
19  TTree *trees[N_ENERGIES];
20 
21  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;
22  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;
23  float Veto1_t, Veto2_t, Veto3_t, Veto4_t;
24  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;
25  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;
26 
27  for(int i=0; i<N_ENERGIES; i++){
28  fin[i] = new TFile(filenames[i].c_str());
29 
30  ostringstream name;
31  name << "test1";
32  trees[i] = (TTree *)fin[i]->Get(name.str().c_str());
33 
34  name.str("");
35  name.clear();
36 
37  name << "tree_" << energies[i];
38  trees[i]->SetName(name.str().c_str());
39 
40  trees[i]->SetBranchAddress("E5by5_t",&E5by5_t);
41  trees[i]->SetBranchAddress("C1_t",&C1_t);
42  trees[i]->SetBranchAddress("C2_inner_t",&C2_inner_t);
43  trees[i]->SetBranchAddress("C2_outer_t",&C2_outer_t);
44  trees[i]->SetBranchAddress("Horz_HODO_R0_t",&Horz_HODO_R0_t);
45  trees[i]->SetBranchAddress("Horz_HODO_R1_t",&Horz_HODO_R1_t);
46  trees[i]->SetBranchAddress("Horz_HODO_R2_t",&Horz_HODO_R2_t);
47  trees[i]->SetBranchAddress("Horz_HODO_R3_t",&Horz_HODO_R3_t);
48  trees[i]->SetBranchAddress("Horz_HODO_R4_t",&Horz_HODO_R4_t);
49  trees[i]->SetBranchAddress("Horz_HODO_R5_t",&Horz_HODO_R5_t);
50  trees[i]->SetBranchAddress("Horz_HODO_R6_t",&Horz_HODO_R6_t);
51  trees[i]->SetBranchAddress("Horz_HODO_R7_t",&Horz_HODO_R7_t);
52  trees[i]->SetBranchAddress("Vert_HODO_R0_t",&Vert_HODO_R0_t);
53  trees[i]->SetBranchAddress("Vert_HODO_R1_t",&Vert_HODO_R1_t);
54  trees[i]->SetBranchAddress("Vert_HODO_R2_t",&Vert_HODO_R2_t);
55  trees[i]->SetBranchAddress("Vert_HODO_R3_t",&Vert_HODO_R3_t);
56  trees[i]->SetBranchAddress("Vert_HODO_R4_t",&Vert_HODO_R4_t);
57  trees[i]->SetBranchAddress("Vert_HODO_R5_t",&Vert_HODO_R5_t);
58  trees[i]->SetBranchAddress("Vert_HODO_R6_t",&Vert_HODO_R6_t);
59  trees[i]->SetBranchAddress("Vert_HODO_R7_t",&Vert_HODO_R7_t);
60  trees[i]->SetBranchAddress("Veto1_t",&Veto1_t);
61  trees[i]->SetBranchAddress("Veto2_t",&Veto2_t);
62  trees[i]->SetBranchAddress("Veto3_t",&Veto3_t);
63  trees[i]->SetBranchAddress("Veto4_t",&Veto4_t);
64  trees[i]->SetBranchAddress("TowerE_row_0_t",&TowerE_row_0_t);
65  trees[i]->SetBranchAddress("TowerE_row_1_t",&TowerE_row_1_t);
66  trees[i]->SetBranchAddress("TowerE_row_2_t",&TowerE_row_2_t);
67  trees[i]->SetBranchAddress("TowerE_row_3_t",&TowerE_row_3_t);
68  trees[i]->SetBranchAddress("TowerE_row_4_t",&TowerE_row_4_t);
69  trees[i]->SetBranchAddress("TowerE_row_5_t",&TowerE_row_5_t);
70  trees[i]->SetBranchAddress("TowerE_row_6_t",&TowerE_row_6_t);
71  trees[i]->SetBranchAddress("TowerE_row_7_t",&TowerE_row_7_t);
72  trees[i]->SetBranchAddress("TowerE_column_0_t",&TowerE_column_0_t);
73  trees[i]->SetBranchAddress("TowerE_column_1_t",&TowerE_column_1_t);
74  trees[i]->SetBranchAddress("TowerE_column_2_t",&TowerE_column_2_t);
75  trees[i]->SetBranchAddress("TowerE_column_3_t",&TowerE_column_3_t);
76  trees[i]->SetBranchAddress("TowerE_column_4_t",&TowerE_column_4_t);
77  trees[i]->SetBranchAddress("TowerE_column_5_t",&TowerE_column_5_t);
78  trees[i]->SetBranchAddress("TowerE_column_6_t",&TowerE_column_6_t);
79  trees[i]->SetBranchAddress("TowerE_column_7_t",&TowerE_column_7_t);
80  }
81 
82  TH1D *hVeto[4][N_ENERGIES];
83  TCanvas *c1 = new TCanvas("c1","Veto 1",1000,500);
84  TCanvas *c2 = new TCanvas("c2","Veto 2",1000,500);
85  TCanvas *c3 = new TCanvas("c3","Veto 3",1000,500);
86  TCanvas *c4 = new TCanvas("c4","Veto 4",1000,500);
87 
88  c1->Divide(4,2);
89  c2->Divide(4,2);
90  c3->Divide(4,2);
91  c4->Divide(4,2);
92 
93  for(int i=0; i<N_ENERGIES; i++){
94 
95 // cout << "starting: " << energies[i] << " GeV" << endl;
96  int entries = trees[i]->GetEntries();
97 
98  for (int k=0; k<4; k++) {
99  ostringstream name;
100  name << "hVeto_" <<k<< "_"<< energies[i]<<"GeV";
101  ostringstream title;
102  title << " " << energies[i] << " GeV";
103 
104  hVeto[k][i] = new TH1D(name.str().c_str(),title.str().c_str(),100,0,300);
105 
106  name.str("");
107  name.clear();
108  }
109 
110  for(int j = 0; j<entries; j++){
111  trees[i]->GetEntry(j);
112 
113  hVeto[0][i]->Fill(Veto1_t);
114  hVeto[1][i]->Fill(Veto2_t);
115  hVeto[2][i]->Fill(Veto3_t);
116  hVeto[3][i]->Fill(Veto4_t);
117  }
118  c1->cd(i+1);
119  gPad->SetLogy();
120  hVeto[0][i]->Draw();
121  c2->cd(i+1);
122  gPad->SetLogy();
123  hVeto[1][i]->Draw();
124  c3->cd(i+1);
125  gPad->SetLogy();
126  hVeto[2][i]->Draw();
127  c4->cd(i+1);
128  gPad->SetLogy();
129  hVeto[3][i]->Draw();
130  }
131 
132  ostringstream outname;
133 
134  outname << "plots/veto1_scan" << scan << ".pdf";
135  c1->Print(outname.str().c_str());
136 }
137 
138 
139