00001
00002 #include <cmath>
00003
00004 void FillMdcKalTrackHist(void){
00005
00006 const char* const filename = "MdcKalTrackValidNTuple.root";
00007
00008 TFile *fin = new TFile(filename);
00009
00010 TTree *r1 = (TTree *)fin->Get("n101");
00011
00012
00013 Double_t zhelixe[5];
00014 Double_t zhelixmu[5];
00015 Double_t zhelix[5];
00016 Double_t zhelixk[5];
00017 Double_t zhelixp[5];
00018
00019 Double_t fhelixe[5];
00020 Double_t fhelixmu[5];
00021 Double_t fhelix[5];
00022 Double_t fhelixk[5];
00023 Double_t fhelixp[5];
00024
00025 Double_t helix_rec[5];
00026 Double_t stat[5][2];
00027
00028 r1->SetBranchAddress("zhelixe", &zhelixe);
00029 r1->SetBranchAddress("zhelixmu", &zhelixmu);
00030 r1->SetBranchAddress("zhelix", &zhelix);
00031 r1->SetBranchAddress("zhelixk", &zhelixk);
00032 r1->SetBranchAddress("zhelixp", &zhelixp);
00033
00034 r1->SetBranchAddress("fhelixe", &fhelixe);
00035 r1->SetBranchAddress("fhelixmu", &fhelixmu);
00036 r1->SetBranchAddress("fhelix", &fhelix);
00037 r1->SetBranchAddress("fhelixk", &fhelixk);
00038 r1->SetBranchAddress("fhelixp", &fhelixp);
00039
00040 r1->SetBranchAddress("stat", &stat);
00041
00042
00043
00044 TFile *fout = new TFile("MdcKalTrackValidHist.root","recreate");
00045
00046 TH1F *zdr_e = new TH1F("zdr_e", "zdr_e of zhelixe",100,-1,1);
00047 TH1F *zdr_mu = new TH1F("zdr_mu","zdr_mu of zhelixe",100,-1,1);
00048 TH1F *zdr_pi = new TH1F("zdr_pi","zdr_pi of zhelixe",100,-1,1);
00049 TH1F *zdr_k = new TH1F("zdr_k", "zdr_k of zhelixe",100,-1,1);
00050 TH1F *zdr_p = new TH1F("zdr_p", "zdr_p of zhelixe",100,-1,1);
00051
00052 TH1F *zdz_e = new TH1F("zdz_e", "zdz_e of zhelixe",100,-10,10);
00053 TH1F *zdz_mu = new TH1F("zdz_mu","zdz_mu of zhelixe",100,-10,10);
00054 TH1F *zdz_pi = new TH1F("zdz_pi","zdz_pi of zhelixe",100,-10,10);
00055 TH1F *zdz_k = new TH1F("zdz_k", "zdz_k of zhelixe",100,-10,10);
00056 TH1F *zdz_p = new TH1F("zdz_p", "zdz_p of zhelixe",100,-10,10);
00057
00058
00059 TH1F *zpt_e = new TH1F("zpt_e", "zpt of e",100,0,1.5);
00060 TH1F *zpt_mu = new TH1F("zpt_mu","zpt of mu",100,0,1.5);
00061 TH1F *zpt_pi = new TH1F("zpt_pi","zpt of pi",100,0,1.5);
00062 TH1F *zpt_k = new TH1F("zpt_k", "zpt of k",100,0,1.5);
00063 TH1F *zpt_p = new TH1F("zpt_p", "zpt of p",100,0,1.5);
00064
00065 TH1F *zptot_e = new TH1F("zptot_e", "zptot of e",100,0,2);
00066 TH1F *zptot_mu = new TH1F("zptot_mu","zptot of mu",100,0,2);
00067 TH1F *zptot_pi = new TH1F("zptot_pi","zptot of pi",100,0,2);
00068 TH1F *zptot_k = new TH1F("zptot_k", "zptot of k",100,0,2);
00069 TH1F *zptot_p = new TH1F("zptot_p", "zptot of p",100,0,2);
00070
00071 TH1F *dr_rec = new TH1F("dr_rec", "zpt of e",100,-1,1);
00072 TH1F *dz_rec = new TH1F("dz_rec", "zpt of e",100,-10,10);
00073 TH1F *pt_rec = new TH1F("pt_rec", "zpt of e",100,0,1.5);
00074 TH1F *ptot_rec = new TH1F("ptot_rec", "zpt of e",100,0,2);
00075
00076
00077 for(Int_t i=0; i<r1->GetEntries(); i++){
00078
00079 r1->GetEntry(i);
00080
00081 if(stat[0][0]==0) {
00082 zdr_e->Fill(zhelixe[0]);
00083 zdz_e->Fill(zhelixe[3]);
00084 zpt_e->Fill(1./fabs(zhelixe[2]));
00085 zptot_e->Fill(sqrt(1+zhelixe[4]*zhelixe[4])/fabs(zhelixe[2]));
00086 }
00087
00088
00089 if(stat[1][0]==0) {
00090 zdr_mu->Fill(zhelixmu[0]);
00091 zdz_mu->Fill(zhelixmu[3]);
00092 zpt_mu->Fill(1./fabs(zhelixmu[2]));
00093 zptot_mu->Fill(sqrt(1+zhelixmu[4]*zhelixmu[4])/fabs(zhelixmu[2]));
00094 }
00095
00096 if(stat[2][0]==0) {
00097 zdr_pi->Fill(zhelix[0]);
00098 zdz_pi->Fill(zhelix[3]);
00099 zpt_pi->Fill(1./fabs(zhelix[2]));
00100 zptot_pi->Fill(sqrt(1+zhelix[4]*zhelix[4])/fabs(zhelix[2]));
00101 }
00102
00103 if(stat[3][0]==0) {
00104 zdr_k->Fill(zhelixk[0]);
00105 zdz_k->Fill(zhelixk[3]);
00106 zpt_k->Fill(1./fabs(zhelixk[2]));
00107 zptot_k->Fill(sqrt(1+zhelixk[4]*zhelixk[4])/fabs(zhelixk[2]));
00108 }
00109
00110 if(stat[4][0]==0) {
00111 zdr_p->Fill(zhelixp[0]);
00112 zdz_p->Fill(zhelixp[3]);
00113 zpt_p->Fill(1./fabs(zhelixp[2]));
00114 zptot_p->Fill(sqrt(1+zhelixp[4]*zhelixp[4])/fabs(zhelixp[2]));
00115 }
00116 }
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129 zdr_e->Write();
00130 zdr_mu->Write();
00131 zdr_pi->Write();
00132 zdr_k->Write();
00133 zdr_p->Write();
00134
00135 zdz_e->Write();
00136 zdz_mu->Write();
00137 zdz_pi->Write();
00138 zdz_k->Write();
00139 zdz_p->Write();
00140
00141 zpt_e->Write();
00142 zpt_mu->Write();
00143 zpt_pi->Write();
00144 zdr_k->Write();
00145 zdr_p->Write();
00146
00147 zptot_e->Write();
00148 zptot_mu->Write();
00149 zptot_pi->Write();
00150 zptot_k->Write();
00151 zptot_p->Write();
00152
00153 fin->Close();
00154 fout->Close();
00155 }
00156
00157
00158