1 |
void getCrystaldeadflagEndcap(){
|
2 |
|
3 |
|
4 |
char *file_input = new char[500];
|
5 |
|
6 |
sprintf(file_input,"crystal_deadflag_run2011amay10.txt");
|
7 |
|
8 |
|
9 |
|
10 |
cout<<"READING fro deadcystalbarrel file "<<file_input<<endl;
|
11 |
ifstream inputcc(file_input,ios::in);
|
12 |
if (inputcc.fail()){
|
13 |
cout<<"error open file.. " << file_input<<endl;
|
14 |
exit(1);
|
15 |
}
|
16 |
|
17 |
int iz;
|
18 |
int ieta;
|
19 |
int iphi;
|
20 |
int flag;
|
21 |
|
22 |
int n = 0;
|
23 |
int ndead = 0;
|
24 |
|
25 |
int ncorner;
|
26 |
int nside;
|
27 |
|
28 |
int ndeadflag;
|
29 |
|
30 |
while (inputcc.good()){
|
31 |
|
32 |
inputcc >> iz >> ieta >> iphi >> flag >> ncorner >> nside >> ndeadflag;
|
33 |
if( abs(iz) !=1){
|
34 |
cout<<"worng ?? " << iz <<endl;
|
35 |
exit(1);
|
36 |
}
|
37 |
|
38 |
int izz = iz < 0 ? 0:1;
|
39 |
flag_endcap[izz][ieta][iphi] = flag;
|
40 |
ndeadcorner_endcap[izz][ieta][iphi] = ncorner;
|
41 |
ndeadside_endcap[izz][ieta][iphi] = nside;
|
42 |
ndeadflag_endcap[izz][ieta][iphi] = ndeadflag;
|
43 |
|
44 |
|
45 |
n ++;
|
46 |
if( flag ==1) ndead ++;
|
47 |
|
48 |
if( n>= 14648) break;
|
49 |
}
|
50 |
|
51 |
cout<<"deadflag read: "<< n <<" "<< ndead <<endl;
|
52 |
|
53 |
|
54 |
}
|
55 |
|
56 |
|
57 |
void getCrystaldeadflagEndcap_v1(char *file_input,int ndeadflagg[2][101][101]){
|
58 |
// char *file_input = new char[500];
|
59 |
//sprintf(file_input,"crystal_deadflag_run2011amay10.txt");
|
60 |
|
61 |
|
62 |
cout<<"READING fro deadcystalbarrel file "<<file_input<<endl;
|
63 |
ifstream inputcc(file_input,ios::in);
|
64 |
if (inputcc.fail()){
|
65 |
cout<<"error open file.. " << file_input<<endl;
|
66 |
exit(1);
|
67 |
}
|
68 |
|
69 |
int iz;
|
70 |
int ieta;
|
71 |
int iphi;
|
72 |
int flag;
|
73 |
|
74 |
int n = 0;
|
75 |
int ndead = 0;
|
76 |
|
77 |
int ncorner;
|
78 |
int nside;
|
79 |
|
80 |
int ndeadflag;
|
81 |
|
82 |
while (inputcc.good()){
|
83 |
|
84 |
inputcc >> iz >> ieta >> iphi >> flag >> ncorner >> nside >> ndeadflag;
|
85 |
if( abs(iz) !=1){
|
86 |
cout<<"worng ?? " << iz <<endl;
|
87 |
exit(1);
|
88 |
}
|
89 |
|
90 |
int izz = iz < 0 ? 0:1;
|
91 |
flag_endcap[izz][ieta][iphi] = flag;
|
92 |
ndeadcorner_endcap[izz][ieta][iphi] = ncorner;
|
93 |
ndeadside_endcap[izz][ieta][iphi] = nside;
|
94 |
ndeadflagg[izz][ieta][iphi] = ndeadflag;
|
95 |
|
96 |
|
97 |
n ++;
|
98 |
if( flag ==1) ndead ++;
|
99 |
|
100 |
if( n>= 14648) break;
|
101 |
}
|
102 |
|
103 |
cout<<"deadflag read: "<< n <<" "<< ndead <<endl;
|
104 |
|
105 |
|
106 |
}
|
107 |
|
108 |
|
109 |
|
110 |
void getCrystaldeadflagBarrel_v1(char *file_input , int ndeadflagg[170][360]){
|
111 |
|
112 |
// char *file_input = new char[500];
|
113 |
|
114 |
// //sprintf(file_input,"crystal_deadflag.txt");
|
115 |
// sprintf(file_input,"/uscms/home/yongy/work/crystal_deadflag_alcapiz.tightCut.eg2ps2.runto144114.txt");
|
116 |
// sprintf(file_input,"/uscms/home/yongy/work/crystal_deadflag_alcapiz.run2010b.146428to194442.txt");
|
117 |
// sprintf(file_input,"crystal_deadflag_alcapiz.run2010b.146428to194442.txtnew"); ///two more crystals set to dead by hand.
|
118 |
|
119 |
|
120 |
cout<<"READING fro deadcystalbarrel file "<<file_input<<endl;
|
121 |
ifstream inputcc(file_input,ios::in);
|
122 |
if (inputcc.fail()){
|
123 |
cout<<"error open file barrel.. " << file_input<<endl;
|
124 |
exit(1);
|
125 |
}
|
126 |
|
127 |
int ieta;
|
128 |
int iphi;
|
129 |
int flag;
|
130 |
|
131 |
int n = 0;
|
132 |
int ndead = 0;
|
133 |
|
134 |
int ncorner;
|
135 |
int nside;
|
136 |
|
137 |
int ndeadflag;
|
138 |
|
139 |
//format
|
140 |
/// ieta, iphi ( after convxtalid, ieta+85 ) , flag ( 0/1) ncorner, nside, ndeadflag
|
141 |
|
142 |
while (inputcc.good()){
|
143 |
|
144 |
inputcc >> ieta >> iphi >> flag >> ncorner >> nside >> ndeadflag;
|
145 |
|
146 |
flag_ietaiphi[ieta][iphi] = flag;
|
147 |
ndeadcorner_ietaiphi[ieta][iphi] = ncorner;
|
148 |
ndeadside_ietaiphi[ieta][iphi] = nside;
|
149 |
|
150 |
ndeadflagg[ieta][iphi] = ndeadflag;
|
151 |
|
152 |
|
153 |
n ++;
|
154 |
if( flag ==1) ndead ++;
|
155 |
|
156 |
if( n>= 61200) break;
|
157 |
}
|
158 |
|
159 |
cout<<"deadflag read: "<< n <<" "<< ndead <<endl;
|
160 |
|
161 |
|
162 |
|
163 |
}
|
164 |
|
165 |
void getCrystaldeadflagBarrel(){
|
166 |
|
167 |
char *file_input = new char[500];
|
168 |
|
169 |
//sprintf(file_input,"crystal_deadflag.txt");
|
170 |
sprintf(file_input,"/uscms/home/yongy/work/crystal_deadflag_alcapiz.tightCut.eg2ps2.runto144114.txt");
|
171 |
sprintf(file_input,"/uscms/home/yongy/work/crystal_deadflag_alcapiz.run2010b.146428to194442.txt");
|
172 |
sprintf(file_input,"crystal_deadflag_alcapiz.run2010b.146428to194442.txtnew"); ///two more crystals set to dead by hand.
|
173 |
|
174 |
|
175 |
///2011A
|
176 |
sprintf(file_input,"crystal_deadflag_alcapiz.run2011a.160405to163869.txt");
|
177 |
|
178 |
|
179 |
|
180 |
|
181 |
sprintf(file_input,"crystal_deadflag_eb_dflag64.txt");
|
182 |
|
183 |
|
184 |
|
185 |
if(doPizEta ==1){
|
186 |
|
187 |
// if(dataflag==25){
|
188 |
// sprintf(file_input,"/uscms/home/yongy/work/crystal_deadflag_alcapiz.looseCut.runto139980.txt");
|
189 |
// }else if( dataflag==24){
|
190 |
// sprintf(file_input,"/uscms/home/yongy/work/crystal_deadflag_alcapiz.tightCut.runto143193.txt");
|
191 |
// }else if( dataflag==23){
|
192 |
// sprintf(file_input,"/uscms/home/yongy/work/crystal_deadflag_alcapiz.tightCut.eg2ps2.runto144114.txt");
|
193 |
// }
|
194 |
// else if( dataflag ==26 || dataflag == 27 || dataflag == 28){
|
195 |
// sprintf(file_input,"/uscms/home/yongy/work/crystal_deadflag_alcapiz.run2010b.146428to194442.txt");
|
196 |
// }
|
197 |
// else{
|
198 |
// cout<<"warning deadcrystalmap .."<< dataflag<<endl;
|
199 |
// }
|
200 |
|
201 |
|
202 |
}else{
|
203 |
|
204 |
// if(dataflag==201){
|
205 |
// sprintf(file_input,"/uscms/home/yongy/work/crystal_deadflag_alcaeta.runto143193.txt");
|
206 |
// }else if(dataflag==202){
|
207 |
// sprintf(file_input,"/uscms/home/yongy/work/crystal_deadflag_alcaeta.eg2ps2.runto143193.txt");
|
208 |
// }
|
209 |
|
210 |
// else{
|
211 |
// cout<<"warning deadcrystalmap .."<< dataflag<<endl;
|
212 |
// }
|
213 |
|
214 |
}
|
215 |
|
216 |
cout<<"READING fro deadcystalbarrel file "<<file_input<<endl;
|
217 |
ifstream inputcc(file_input,ios::in);
|
218 |
if (inputcc.fail()){
|
219 |
cout<<"error open file barrel.. " << file_input<<endl;
|
220 |
exit(1);
|
221 |
}
|
222 |
|
223 |
int ieta;
|
224 |
int iphi;
|
225 |
int flag;
|
226 |
|
227 |
int n = 0;
|
228 |
int ndead = 0;
|
229 |
|
230 |
int ncorner;
|
231 |
int nside;
|
232 |
|
233 |
int ndeadflag;
|
234 |
|
235 |
//format
|
236 |
/// ieta, iphi ( after convxtalid, ieta+85 ) , flag ( 0/1) ncorner, nside, ndeadflag
|
237 |
|
238 |
while (inputcc.good()){
|
239 |
|
240 |
inputcc >> ieta >> iphi >> flag >> ncorner >> nside >> ndeadflag;
|
241 |
flag_ietaiphi[ieta][iphi] = flag;
|
242 |
ndeadcorner_ietaiphi[ieta][iphi] = ncorner;
|
243 |
ndeadside_ietaiphi[ieta][iphi] = nside;
|
244 |
|
245 |
ndeadflag_ietaiphi[ieta][iphi] = ndeadflag;
|
246 |
|
247 |
|
248 |
n ++;
|
249 |
if( flag ==1) ndead ++;
|
250 |
|
251 |
if( n>= 61200) break;
|
252 |
}
|
253 |
|
254 |
cout<<"deadflag read: "<< n <<" "<< ndead <<endl;
|
255 |
|
256 |
|
257 |
}
|
258 |
|
259 |
|
260 |
|
261 |
void getCorrFactorDead(){
|
262 |
|
263 |
for(int j=0; j< 20; j++){
|
264 |
corrfactorDead[j] = 1;
|
265 |
}
|
266 |
|
267 |
|
268 |
}
|
269 |
|
270 |
|
271 |
///No iteration, just normalize the mass peak of crystals next to dead crystals to the peak of crytsals without dead crystals nearby
|
272 |
// and corretion on the cluster energy
|
273 |
|
274 |
///maybe apply correction to mpair ; mpair *= fcorr1 * fcorr2
|
275 |
|
276 |
|
277 |
void getCorrFactorDead_Barrel_CorrectionOnClusterEnergy(){
|
278 |
|
279 |
char *filename = new char[500];
|
280 |
|
281 |
if( applyCorrEta == 1 && applyCorrPhi ==1){
|
282 |
sprintf(filename,"/uscmst1b_scratch/lpc1/3DayLifetime/yangyong/calib_smear0v1/calibres/deriveCalibConst.testCalibv1.dflag%d.pe%d.cut%d.rmOvlap%d.step%d.method%d.corrEta%d.corrPhi%d.corrSM%d.corrDead%d.precalib%d.vtx%d.encorr%d.evtNot%d.trig%d.root", dataflag,doPizEta, cutset,rmOverlap,11,1,1,0,1,-1, usePreCalib,useVtx,applyEnCorr,-1,trigger);
|
283 |
}else if( applyCorrEta == 21 && applyCorrPhi ==11){
|
284 |
sprintf(filename,"/uscmst1b_scratch/lpc1/3DayLifetime/yangyong/calib_smear0v1/calibres/deriveCalibConst.testCalibv1.dflag%d.pe%d.cut%d.rmOvlap%d.step%d.method%d.corrEta%d.corrPhi%d.corrSM%d.corrDead%d.precalib%d.vtx%d.encorr%d.evtNot%d.trig%d.root", dataflag,doPizEta, cutset,rmOverlap,11,1,21,10,1,-1, usePreCalib,useVtx,applyEnCorr,-1,trigger);
|
285 |
}
|
286 |
|
287 |
//calibres/deriveCalibConst.testCalibv1.dflag19.pe1.cut4.rmOvlap0.step10.method1.corrEta1.corrPhi0.corrSM1.corrDead0.precalib1.vtx0.encorr24.evtNot-1.root
|
288 |
|
289 |
cout<<filename<<endl;
|
290 |
|
291 |
TFile *ff =new TFile(filename,"read");
|
292 |
|
293 |
TH1F *hh_corr_dead = (TH1F*)ff->Get("hh_corr_deadv1");
|
294 |
|
295 |
for(int b=1; b<= hh_corr_dead->GetNbinsX(); b++){
|
296 |
corrfactorDead[b-1] = hh_corr_dead->GetBinContent(b);
|
297 |
if( b==1 || corrfactorDead[b-1]!=1) cout<<"corr_dead"<<b-1<<" "<< corrfactorDead[b-1]<<endl;
|
298 |
}
|
299 |
cout<<"correction of dead crystal read.."<<endl;
|
300 |
|
301 |
|
302 |
}
|