ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/yangyong/combineICEE/getCrystaldeadflag.cc
Revision: 1.1
Committed: Tue Apr 10 20:03:11 2012 UTC (13 years, 1 month ago) by yangyong
Content type: text/plain
Branch: MAIN
CVS Tags: V2012comb, pi0etaee_laser20111122_eefloatalpha, HEAD
Error occurred while calculating annotation data.
Log Message:
LaserTag:
EcalLaserAPDPNRatios_data_20111122_158851_180363
and alpha Tag ( for Endcap Only)
EcalLaserAlphas_lto420-620_progr_data_20111122

File Contents

# Content
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 }