3 TFile*
f =
new TFile(
"cluster_emc.root");
4 TTree *
t=(TTree *) f->Get(
"pndsim") ;
6 t->SetBranchAddress(
"EmcCluster",&cluster_array);
8 t->AddFriend(
"pndsim",
"digi_emc.root");
9 TClonesArray*
digi_array=
new TClonesArray(
"PndEmcDigi");
10 t->SetBranchAddress(
"EmcDigi",&digi_array);
12 TFile*
fsim =
new TFile(
"sim_emc.root");
13 TTree *
tsim=(TTree *) fsim->Get(
"pndsim") ;
18 tsim->SetBranchAddress(
"MCTrack",&mctrack_array);
29 TH1F *
h1=
new TH1F(
"h1",
"Theta difference",200,-5.,5.);
30 TH1F *
h2=
new TH1F(
"h2",
"Phi difference",200,-5.,5.);
31 TH1F *
h3=
new TH1F(
"h3",
"Cluster energy",100,0.85,1.05);
32 TH2F *
h2theta=
new TH2F(
"h2theta",
"Theta difference",200,0.,180.,200,-5.,5.);
33 TH2F *
h2phi=
new TH2F(
"h2phi",
"Phi difference",200,0.,180.,200,-5.,5.);
34 TH1F *
hE1=
new TH1F(
"hE1",
"E1",200,0.,1.05);
35 TH1F *
hE1E9=
new TH1F(
"hE1E9",
"E1 / E9",200,0.,1.05);
36 TH1F *
hE9E25=
new TH1F(
"hE9E25",
"E9 / E25",200,0.,1.05);
42 for (Int_t j=0; j< t->GetEntriesFast(); j++)
45 for (Int_t
i=0;
i<cluster_array->GetEntriesFast();
i++)
48 cluster_energy=cluster->
energy();
50 h3->Fill(cluster_energy);
53 hE1E9->Fill(esum.E1E9());
54 hE9E25->Fill(esum.E9E25());
59 for (Int_t j=0; j< t->GetEntriesFast(); j++)
66 theta=photon_momentum.Theta();
67 phi=photon_momentum.Phi();
76 for (Int_t
i=0;
i<cluster_array->GetEntriesFast();
i++)
79 cluster_energy=cluster->
energy();
80 if (cluster_energy>max_energy)
83 TVector3 cluster_pos=cluster->
where();
84 cluster_theta=cluster_pos.Theta();
85 cluster_phi=cluster_pos.Phi();
94 h2theta->Fill(theta*TMath::RadToDeg(),theta_diff);
98 h2phi->Fill(phi*TMath::RadToDeg(),phi_diff);
103 TCanvas*
c1 =
new TCanvas(
"c1",
"Cluster Energy", 100, 100, 800, 800);
104 h3->SetTitle(
"Cluster energy of 1 GeV photon");
105 h3->GetXaxis()->SetTitle(
"Energy, GeV");
109 TCanvas*
c2 =
new TCanvas(
"c2",
"#theta_{reco} - #theta_{truth}", 100, 100, 800, 800);
110 h1->SetTitle(
"Difference between cluster and initial photon theta angle");
111 h1->GetXaxis()->SetTitle(
"#theta_{reco} - #theta_{truth}, degree");
123 TCanvas*
c3 =
new TCanvas(
"c3",
"#phi_{reco} - #phi_{truth}", 100, 100, 800, 800);
124 h2->SetTitle(
"Difference between cluster and initial photon phi angle");
125 h2->GetXaxis()->SetTitle(
"#phi_{reco} - #phi_{truth}, degree");
128 TCanvas*
c4 =
new TCanvas(
"c4",
"#theta_{reco} - #theta_{truth} vs #theta_{truth}", 100, 100, 800, 800);
129 h2theta->SetTitle(
"Difference between cluster and initial photon theta angle");
130 h2theta->GetXaxis()->SetTitle(
"#theta_{truth}, degree");
131 h2theta->GetYaxis()->SetTitle(
"#theta_{reco} - #theta_{truth}, degree");
134 TCanvas*
c5 =
new TCanvas(
"c5",
"#phi_{reco} - #phi_{truth} vs #phi_{truth}", 100, 100, 800, 800);
135 h2phi->SetTitle(
"Difference between cluster and initial photon phi angle");
136 h2phi->GetXaxis()->SetTitle(
"#phi_{truth}, degree");
137 h2phi->GetYaxis()->SetTitle(
"#phi_{reco} - #phi_{truth}, degree");
140 TCanvas*
c6 =
new TCanvas(
"c6",
"Cluster Properties", 100, 100, 800, 800);
142 c6->cd(1); hE1->Draw();
143 c6->cd(2); hE1E9->Draw();
144 c6->cd(3); hE9E25->Draw();
TClonesArray * digi_array
TVector3 GetMomentum() const
TClonesArray * cluster_array
static void Init(Int_t MapVersion)
a cluster (group of neighboring crystals) of hit emc crystals
Int_t NumberOfDigis() const
virtual Double_t energy() const
TClonesArray * mctrack_array