BOSS 7.0.7
BESIII Offline Software System
Loading...
Searching...
No Matches
HadronConstants/DedxCalibRunConst.cxx
Go to the documentation of this file.
1TString old_str = "../RungEangle/DedxConst_test.root";
2
4{
5 Int_t runno;
6 Double_t runmean, rungain, runresol;
7
8 TFile fdedx("DedxConst_test.root","recreate"); // output
9 TTree* runbyrun = new TTree("runcalib", "runcalib");
10 runbyrun -> Branch("runno", &runno, "runno/I");
11 runbyrun -> Branch("runmean", &runmean, "runmean/D");
12 runbyrun -> Branch("rungain", &rungain, "rungain/D");
13 runbyrun -> Branch("runresol", &runresol, "runresol/D");
14
15 TFile fconst0(old_str); //input
16 TTree *tree_rung = (TTree*)fconst0.Get("runcalib");
17 tree_rung -> SetBranchAddress("rungain", &rungain);
18 tree_rung -> SetBranchAddress("runmean", &runmean);
19 tree_rung -> SetBranchAddress("runno", &runno);
20 tree_rung -> SetBranchAddress("runresol", &runresol);
21
22 long NRUN = tree_rung -> GetEntries();
23 cout<<"Run Number == "<<NRUN<<endl;
24 for(long runid =0; runid<NRUN; runid++)
25 {
26 tree_rung->GetEntry(runid);
27 runbyrun ->Fill();
28 }
29
30 TTree *tree_resg = (TTree*)fconst0.Get("resolcalib");
31 Double_t resolpar[1];
32 tree_resg -> SetBranchAddress("resol", resolpar);
33 tree_resg -> GetEntry(0);
34
35 TTree *tree_gaing = (TTree*)fconst0.Get("gaincalib");
36 Double_t gainpar[1];
37 tree_gaing -> SetBranchAddress("gain", gainpar);
38 tree_gaing -> GetEntry(0);
39
40 fconst0.Close();
41 cout<<"runbyrun const OK!!!"<<endl;
42
43 // wire gain const
44 TFile fconst1(old_str); //for adding runs in 11414-14604 only
45 Double_t gwire[6796];
46 TTree *tree_wireg = (TTree*)fconst1.Get("wiregcalib");
47 tree_wireg -> SetBranchAddress("wireg", gwire);
48 tree_wireg -> GetEntry(0);
49 fconst1.Close();
50 cout<<"wiregcalib const OK!!!"<<endl;
51
52 // satuaration const
53 TFile fconst2(old_str);
54 Double_t ggs0[43], ggs1[43], ggs2[43], ggs3[43];
55 TTree *tree_ggs = (TTree*)fconst2.Get("ggscalib");
56 tree_ggs -> SetBranchAddress("ggs0", ggs0);
57 tree_ggs -> SetBranchAddress("ggs1", ggs1);
58 tree_ggs -> SetBranchAddress("ggs2", ggs2);
59 tree_ggs -> SetBranchAddress("ggs3", ggs3);
60 tree_ggs->GetEntry(0);
61 fconst2.Close();
62 cout<<"ggscalib const OK!!!"<<endl;
63
64 // driftdist const
65 TFile fconst3(old_str);
66 Double_t ddg0[43], ddg1[43], ddg2[43], ddg3[43];
67 TTree *tree_ddg = (TTree*)fconst3.Get("ddgcalib");
68 tree_ddg -> SetBranchAddress("ddg0", ddg0);
69 tree_ddg -> SetBranchAddress("ddg1", ddg1);
70 tree_ddg -> SetBranchAddress("ddg2", ddg2);
71 tree_ddg -> SetBranchAddress("ddg3", ddg3);
72 tree_ddg -> GetEntry(0);
73 fconst3.Close();
74 cout<<"ddgcalib const OK!!!"<<endl;
75
76 // entrance angle const
77 TFile fconst4(old_str);
78 Double_t entra0[43], entra1[43], entra2[43], entra3[43];
79 TTree *tree_entra = (TTree*)fconst4.Get("entracalib");
80 tree_entra -> SetBranchAddress("entra0", entra0);
81 tree_entra -> SetBranchAddress("entra1", entra1);
82 tree_entra -> SetBranchAddress("entra2", entra2);
83 tree_entra -> SetBranchAddress("entra3", entra3);
84
85 //int entry[1]; double denangle[100];
86 //tree_entra -> SetBranchAddress("1denangle_entry", entry);
87 //tree_entra -> SetBranchAddress("1denangle", denangle);
88 tree_entra->GetEntry(0);
89 fconst4.Close();
90
91 // TFile fconst4_1("/ihepbatch/besd26/anff/655/Calib/root_file/Eangle/total_655/EAngle_20448-23454_new_noTrunc_1dfitNorm.root");
92 TFile fconst4_1(old_str);
93 int entry[1]; double denangle[100];
94 TTree *tree_entra1 = (TTree*)fconst4_1.Get("entracalib");
95 tree_entra1 -> SetBranchAddress("1denangle_entry", entry);
96 tree_entra1 -> SetBranchAddress("1denangle", denangle);
97 tree_entra1 ->GetEntry(0);
98 fconst4_1.Close();
99 cout<<"entrance angle const OK!!!"<<endl;
100
101 // zhit const
102 TFile fconst5(old_str);
103 Double_t zdep0[43], zdep1[43], zdep2[43], zdep3[43];
104 TTree *tree_zdep = (TTree*)fconst5.Get("zdepcalib");
105 tree_zdep -> SetBranchAddress("zdep0", zdep0);
106 tree_zdep -> SetBranchAddress("zdep1", zdep1);
107 tree_zdep -> SetBranchAddress("zdep2", zdep2);
108 tree_zdep -> SetBranchAddress("zdep3", zdep3);
109 tree_zdep->GetEntry(0);
110 fconst5.Close();
111 cout<<"zdepcalib const OK!!!"<<endl;
112
113 // layer gain const
114 TFile fconst6(old_str);
115 Double_t glayer[43];
116 TTree *tree_layerg = (TTree*)fconst6.Get("layergcalib");
117 tree_layerg -> SetBranchAddress("layerg", glayer);
118 tree_layerg->GetEntry(0);
119 fconst6.Close();
120 cout<<"layergcalib const OK!!!"<<endl;
121
122 // costhetacalib const
123 // TFile fconst7("/ihepbatch/besd26/anff/655/Calib/root_file/Costheta/total_655/CosthetaRoot_20448-23454_new.root");
124 // TTree *tree_costheta = (TTree*)fconst7.Get("costhetacalib");
125 TFile fconst7(old_str);
126 TTree *tree_costheta = (TTree*)fconst7.Get("ggscalib");
127 double gcostheta[80];
128 tree_costheta ->SetBranchAddress("costheta",gcostheta);
129 tree_costheta->GetEntry(0);
130 fconst7.Close();
131 cout<<"costhetacalib const OK!!!"<<endl;
132
133 // t0calib const
134 TFile fconst8(old_str);
135 TTree *tree_t0=(TTree*)fconst8.Get("gaincalib");
136 double gt0[35];
137 double gdedx[35];
138 tree_t0->SetBranchAddress("t0", gt0);
139 tree_t0->SetBranchAddress("dedx",gdedx);
140 for(int i=0; i<tree_t0->GetEntries(); i++) tree_t0->GetEntry(i);
141 fconst8.Close();
142 cout<<"t0calib const OK!!!"<<endl;
143
144 // docaeangle const
145 //TFile fconst9("/afs/ihep.ac.cn/bes3/offline/CalibConst/dedx/6.5.4/DedxConst_after_docaeangle.root");
146 TFile fconst9(old_str);
147 const int n = 1600;
148 double Iner_gain[n], Iner_chi[n], Iner_hits[n];
149 double Out_gain[n], Out_chi[n], Out_hits[n];
150 double Id_doca[n], Ip_eangle[n];
151
152 TTree *tree_docasin = (TTree*)fconst9.Get("ddgcalib");
153 tree_docasin -> SetBranchAddress("Iner_gain", Iner_gain);
154 tree_docasin -> SetBranchAddress("Iner_chi", Iner_chi);
155 tree_docasin -> SetBranchAddress("Iner_hits", Iner_hits);
156 tree_docasin -> SetBranchAddress("Out_gain", Out_gain);
157 tree_docasin -> SetBranchAddress("Out_chi", Out_chi);
158 tree_docasin -> SetBranchAddress("Out_hits", Out_hits);
159 tree_docasin -> SetBranchAddress("Id_doca", Id_doca);
160 tree_docasin -> SetBranchAddress("Ip_eangle", Ip_eangle);
161 tree_docasin -> GetEntry(0);
162 fconst9.Close();
163
164 cout<<"ddgcalib const OK!!!"<<endl;
165
166 TFile fconst10("hadron.root");
167 // TFile fconst10("/ihepbatch/besd26/anff/655/Calib/root_file/Hadron/total_655/Hadron_20448-23454.root");
168 // TFile fconst10("/panfs/panfs.ihep.ac.cn/home/data/anff/dEdxCal/662_cal/Hadron/constfile/Hadron_20333-23454.root");
169 int hadronNo;
170 double ghadron[5];
171 TTree *tree_hadron = (TTree*)fconst10.Get("ggscalib");
172 tree_hadron -> SetBranchAddress("hadron", ghadron);
173 tree_hadron -> SetBranchAddress("hadronNo",&hadronNo);
174 tree_hadron->GetEntry(0);
175 fconst10.Close();
176 cout<<"hadron const OK!!!"<<endl;
177
178 //output of const file
179 fdedx.cd();
180 TTree* gain = new TTree("gaincalib", "gaincalib");
181 gain -> Branch("gain", gainpar, "gain[1]/D");
182 gain -> Branch("t0", gt0, "t0[35]/D");
183 gain -> Branch("dedx", gdedx, "dedx[35]/D");
184
185 TTree* resol = new TTree("resolcalib", "resolcalib");
186 resol -> Branch("resol", resolpar, "resol[1]/D");
187
188 TTree* wireg = new TTree("wiregcalib", "wiregcalib");
189 wireg -> Branch("wireg", gwire, "wireg[6796]/D");
190 wireg-> SetBasketSize("wireg",2000000); //not need in 661,but have to be done in 655
191
192 TTree* ggs = new TTree("ggscalib", "ggscalib");
193 ggs -> Branch("ggs0", ggs0, "ggs[43]/D");
194 ggs -> Branch("ggs1", ggs1, "ggs[43]/D");
195 ggs -> Branch("ggs2", ggs2, "ggs[43]/D");
196 ggs -> Branch("ggs3", ggs3, "ggs[43]/D");
197 ggs -> Branch("costheta", gcostheta, "costheta[80]/D");
198 ggs -> Branch("hadron",ghadron,"hadron[5]/D");
199 ggs -> Branch("hadronNo",&hadronNo,"hadronNo/I");
200
201 TTree* ddg = new TTree("ddgcalib", "ddgcalib");
202 ddg -> Branch("ddg0", ddg0, "ddg[43]/D");
203 ddg -> Branch("ddg1", ddg1, "ddg[43]/D");
204 ddg -> Branch("ddg2", ddg2, "ddg[43]/D");
205 ddg -> Branch("ddg3", ddg3, "ddg[43]/D");
206 ddg -> Branch("Iner_gain", Iner_gain, "Iner_gain[1600]/D");
207 ddg -> Branch("Out_gain", Out_gain, "Out_gain[1600]/D");
208 ddg -> Branch("Iner_chi", Iner_chi, "Iner_chi[1600]/D");
209 ddg -> Branch("Out_chi", Out_chi, "Out_chi[1600]/D");
210 ddg -> Branch("Iner_hits", Iner_hits, "Iner_hits[1600]/D");
211 ddg -> Branch("Out_hits", Out_hits, "Out_hits[1600]/D");
212 ddg -> Branch("Id_doca", Id_doca, "Id_doca[1600]/D");
213 ddg -> Branch("Ip_eangle", Ip_eangle, "Ip_eangle[1600]/D");
214
215 TTree* entra = new TTree("entracalib", "entracalib");
216 entra -> Branch("entra0", entra0, "entra[43]/D");
217 entra -> Branch("entra1", entra1, "entra[43]/D");
218 entra -> Branch("entra2", entra2, "entra[43]/D");
219 entra -> Branch("entra3", entra3, "entra[43]/D");
220 entra -> Branch("1denangle_entry", entry, "1denangle_entry[1]/I");
221 entra -> Branch("1denangle", denangle, "1denangle[100]/D");
222
223 TTree* zdep = new TTree("zdepcalib", "zdepcalib");
224 zdep -> Branch("zdep0", zdep0, "zdep[43]/D");
225 zdep -> Branch("zdep1", zdep1, "zdep[43]/D");
226 zdep -> Branch("zdep2", zdep2, "zdep[43]/D");
227 zdep -> Branch("zdep3", zdep3, "zdep[43]/D");
228
229 TTree* layerg = new TTree("layergcalib", "layergcalib");
230 layerg -> Branch("layerg", glayer, "layerg[43]/D");
231
232 //Fill constroot file!!!
233 gain->Fill();
234 resol->Fill();
235 wireg -> Fill();
236 ggs -> Fill();
237 ddg -> Fill();
238 entra -> Fill();
239 zdep -> Fill();
240 layerg -> Fill();
241 ///////////////////////////////////////////////////
242 //wireg->Write();
243 //ggs->Write();
244 //ddg->Write();
245 //entra->Write();
246 //zdep->Write();
247 //layerg->Write();
248 //gain->Write();
249 //resol->Write();
250 //runbyrun ->Write();
251 fdedx.Write();
252 fdedx.Close();
253 cout<<"All const OK!!!"<<endl;
254}
curve Branch("CurveSize",&CurveSize,"CurveSize/I")
curve Fill()
curve GetEntry(0)
curve SetBranchAddress("CurveSize",&CurveSize)