Geant4 Cross Reference |
1 { 1 { 2 2 3 TFile *input_file_1 = new TFile("test35a.roo 3 TFile *input_file_1 = new TFile("test35a.root"); 4 TFile *input_file_2 = new TFile("test35b.roo 4 TFile *input_file_2 = new TFile("test35b.root"); 5 5 6 TCanvas *c1 = new TCanvas("c1", "test35", 20 6 TCanvas *c1 = new TCanvas("c1", "test35", 200, 10, 700, 500); 7 c1->SetGridx(); 7 c1->SetGridx(); 8 c1->SetGridy(); 8 c1->SetGridy(); 9 c1->SetLogx(); 9 c1->SetLogx(); 10 c1->SetLogy(); 10 c1->SetLogy(); 11 11 12 // histogram for energy spectra 12 // histogram for energy spectra 13 int n = 41; 13 int n = 41; 14 float bin[41]; 14 float bin[41]; 15 15 16 for (int i = 0; i < n; i++) { 16 for (int i = 0; i < n; i++) { 17 bin[i] =pow(10,(-2+0.1*i)); 17 bin[i] =pow(10,(-2+0.1*i)); 18 } 18 } 19 // 19 // 20 TH1 *h_1 = new TH1D("unbiased","Source spect 20 TH1 *h_1 = new TH1D("unbiased","Source spectrum",40,bin); 21 TH1 *h_2 = new TH1D("biased","Source spectru 21 TH1 *h_2 = new TH1D("biased","Source spectrum",40,bin); 22 input_file_1->cd(); 22 input_file_1->cd(); 23 input_file_1->ls(); 23 input_file_1->ls(); 24 // get the tuple t1 24 // get the tuple t1 25 double energy, weight; 25 double energy, weight; 26 TTree *t1 = (TTree *) input_file_1->Get("MyT 26 TTree *t1 = (TTree *) input_file_1->Get("MyTuple"); 27 t1->SetBranchAddress("Energy", &energy); 27 t1->SetBranchAddress("Energy", &energy); 28 t1->SetBranchAddress("Weight", &weight); 28 t1->SetBranchAddress("Weight", &weight); 29 cout <<t1->GetEntries() << endl; 29 cout <<t1->GetEntries() << endl; 30 for (int i = 0; i < t1->GetEntries(); i++) { 30 for (int i = 0; i < t1->GetEntries(); i++) { 31 t1.GetEntry(i); 31 t1.GetEntry(i); 32 // cout << energy << " " << weight << e 32 // cout << energy << " " << weight << endl; 33 h_1->Fill(energy,weight); 33 h_1->Fill(energy,weight); 34 } 34 } 35 input_file_2->cd(); 35 input_file_2->cd(); 36 TTree *t2 = (TTree *) input_file_2->Get("MyT 36 TTree *t2 = (TTree *) input_file_2->Get("MyTuple"); 37 t2->SetBranchAddress("Energy", &energy); 37 t2->SetBranchAddress("Energy", &energy); 38 t2->SetBranchAddress("Weight", &weight); 38 t2->SetBranchAddress("Weight", &weight); 39 cout <<t2->GetEntries() << endl; 39 cout <<t2->GetEntries() << endl; 40 for (int i = 0; i < t1->GetEntries(); i++) { 40 for (int i = 0; i < t1->GetEntries(); i++) { 41 t2.GetEntry(i); 41 t2.GetEntry(i); 42 h_2->Fill(energy,weight); 42 h_2->Fill(energy,weight); 43 } 43 } 44 // h_2->SetFillColor(kRed); 44 // h_2->SetFillColor(kRed); 45 h_2->SetLineStyle(kDashed); 45 h_2->SetLineStyle(kDashed); 46 h_2->SetLineColor(kBlue); 46 h_2->SetLineColor(kBlue); 47 h_2->Draw(); 47 h_2->Draw(); 48 h_1->Draw("same") ; 48 h_1->Draw("same") ; 49 c1->Update(); 49 c1->Update(); 50 c1->Print("./test35.png"); 50 c1->Print("./test35.png"); 51 51 52 input_file_1->Close(); 52 input_file_1->Close(); 53 input_file_2->Close(); 53 input_file_2->Close(); 54 } 54 } 55 55