ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/yangyong/combineICEB/getCrystaldeadflag.cc
Revision: 1.2
Committed: Tue Apr 10 19:41:08 2012 UTC (13 years, 1 month ago) by yangyong
Content type: text/plain
Branch: MAIN
CVS Tags: V2012combv2c, V2012combv2b, V2012combv2a, V2012combv2, V2012combv1, V2011combv1, pi0etaeb_laser20111122, HEAD
Changes since 1.1: +295 -0 lines
Log Message:
LaserTag:
EcalLaserAPDPNRatios_data_20111122_158851_180363

and alpha Tag ( for Endcap Only)
EcalLaserAlphas_lto420-620_progr_data_20111122

File Contents

# User Rev Content
1 yangyong 1.2 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(const char *file_input , int ndeadflagg[170][360]){
111    
112    
113     cout<<"READING fro deadcystalbarrel file "<<file_input<<endl;
114     ifstream inputcc(file_input,ios::in);
115     if (inputcc.fail()){
116     cout<<"error open file barrel.. " << file_input<<endl;
117     exit(1);
118     }
119    
120     int ieta;
121     int iphi;
122     int flag;
123    
124     int n = 0;
125     int ndead = 0;
126    
127     int ncorner;
128     int nside;
129    
130     int ndeadflag;
131    
132     //format
133     /// ieta, iphi ( after convxtalid, ieta+85 ) , flag ( 0/1) ncorner, nside, ndeadflag
134    
135     while (inputcc.good()){
136    
137     inputcc >> ieta >> iphi >> flag >> ncorner >> nside >> ndeadflag;
138    
139     flag_ietaiphi[ieta][iphi] = flag;
140     ndeadcorner_ietaiphi[ieta][iphi] = ncorner;
141     ndeadside_ietaiphi[ieta][iphi] = nside;
142    
143     ndeadflagg[ieta][iphi] = ndeadflag;
144    
145    
146     n ++;
147     if( flag ==1) ndead ++;
148    
149     if( n>= 61200) break;
150     }
151    
152     cout<<"deadflag read: "<< n <<" "<< ndead <<endl;
153    
154    
155    
156     }
157    
158     void getCrystaldeadflagBarrel(){
159    
160     char *file_input = new char[500];
161    
162     //sprintf(file_input,"crystal_deadflag.txt");
163     sprintf(file_input,"/uscms/home/yongy/work/crystal_deadflag_alcapiz.tightCut.eg2ps2.runto144114.txt");
164     sprintf(file_input,"/uscms/home/yongy/work/crystal_deadflag_alcapiz.run2010b.146428to194442.txt");
165     sprintf(file_input,"crystal_deadflag_alcapiz.run2010b.146428to194442.txtnew"); ///two more crystals set to dead by hand.
166    
167    
168     ///2011A
169     sprintf(file_input,"crystal_deadflag_alcapiz.run2011a.160405to163869.txt");
170    
171    
172    
173    
174     sprintf(file_input,"crystal_deadflag_eb_dflag64.txt");
175    
176    
177    
178     if(doPizEta ==1){
179    
180     // if(dataflag==25){
181     // sprintf(file_input,"/uscms/home/yongy/work/crystal_deadflag_alcapiz.looseCut.runto139980.txt");
182     // }else if( dataflag==24){
183     // sprintf(file_input,"/uscms/home/yongy/work/crystal_deadflag_alcapiz.tightCut.runto143193.txt");
184     // }else if( dataflag==23){
185     // sprintf(file_input,"/uscms/home/yongy/work/crystal_deadflag_alcapiz.tightCut.eg2ps2.runto144114.txt");
186     // }
187     // else if( dataflag ==26 || dataflag == 27 || dataflag == 28){
188     // sprintf(file_input,"/uscms/home/yongy/work/crystal_deadflag_alcapiz.run2010b.146428to194442.txt");
189     // }
190     // else{
191     // cout<<"warning deadcrystalmap .."<< dataflag<<endl;
192     // }
193    
194    
195     }else{
196    
197     // if(dataflag==201){
198     // sprintf(file_input,"/uscms/home/yongy/work/crystal_deadflag_alcaeta.runto143193.txt");
199     // }else if(dataflag==202){
200     // sprintf(file_input,"/uscms/home/yongy/work/crystal_deadflag_alcaeta.eg2ps2.runto143193.txt");
201     // }
202    
203     // else{
204     // cout<<"warning deadcrystalmap .."<< dataflag<<endl;
205     // }
206    
207     }
208    
209     cout<<"READING fro deadcystalbarrel file "<<file_input<<endl;
210     ifstream inputcc(file_input,ios::in);
211     if (inputcc.fail()){
212     cout<<"error open file barrel.. " << file_input<<endl;
213     exit(1);
214     }
215    
216     int ieta;
217     int iphi;
218     int flag;
219    
220     int n = 0;
221     int ndead = 0;
222    
223     int ncorner;
224     int nside;
225    
226     int ndeadflag;
227    
228     //format
229     /// ieta, iphi ( after convxtalid, ieta+85 ) , flag ( 0/1) ncorner, nside, ndeadflag
230    
231     while (inputcc.good()){
232    
233     inputcc >> ieta >> iphi >> flag >> ncorner >> nside >> ndeadflag;
234     flag_ietaiphi[ieta][iphi] = flag;
235     ndeadcorner_ietaiphi[ieta][iphi] = ncorner;
236     ndeadside_ietaiphi[ieta][iphi] = nside;
237    
238     ndeadflag_ietaiphi[ieta][iphi] = ndeadflag;
239    
240    
241     n ++;
242     if( flag ==1) ndead ++;
243    
244     if( n>= 61200) break;
245     }
246    
247     cout<<"deadflag read: "<< n <<" "<< ndead <<endl;
248    
249    
250     }
251    
252    
253    
254     void getCorrFactorDead(){
255    
256     for(int j=0; j< 20; j++){
257     corrfactorDead[j] = 1;
258     }
259    
260    
261     }
262    
263    
264     ///No iteration, just normalize the mass peak of crystals next to dead crystals to the peak of crytsals without dead crystals nearby
265     // and corretion on the cluster energy
266    
267     ///maybe apply correction to mpair ; mpair *= fcorr1 * fcorr2
268    
269    
270     void getCorrFactorDead_Barrel_CorrectionOnClusterEnergy(){
271    
272     char *filename = new char[500];
273    
274     if( applyCorrEta == 1 && applyCorrPhi ==1){
275     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);
276     }else if( applyCorrEta == 21 && applyCorrPhi ==11){
277     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);
278     }
279    
280     //calibres/deriveCalibConst.testCalibv1.dflag19.pe1.cut4.rmOvlap0.step10.method1.corrEta1.corrPhi0.corrSM1.corrDead0.precalib1.vtx0.encorr24.evtNot-1.root
281    
282     cout<<filename<<endl;
283    
284     TFile *ff =new TFile(filename,"read");
285    
286     TH1F *hh_corr_dead = (TH1F*)ff->Get("hh_corr_deadv1");
287    
288     for(int b=1; b<= hh_corr_dead->GetNbinsX(); b++){
289     corrfactorDead[b-1] = hh_corr_dead->GetBinContent(b);
290     if( b==1 || corrfactorDead[b-1]!=1) cout<<"corr_dead"<<b-1<<" "<< corrfactorDead[b-1]<<endl;
291     }
292     cout<<"correction of dead crystal read.."<<endl;
293    
294    
295     }