]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EMCAL/macros/OADB/CreateEMCAL_OADB_BadChannels.C
Set default PF pattern when not set properly in OCDB
[u/mrichter/AliRoot.git] / EMCAL / macros / OADB / CreateEMCAL_OADB_BadChannels.C
1 /*
2 This a modification in a code sent by Marco Bregant, which, originally, created the OADB for misalignment matrices
3 In this macro, the histograms with BadChannels Factors are loaded and some TObjarrays are filled with these histograms.
4 At the end, a OADB container is created receiving these arrays.
5 The histograms with badchannels can be made by a list of towers ID ( see the macro CreateEMCAL_OADB_BadChannelsHistos.C ) or 
6 directly from the OCDB ( see AliEMCALOCDBTenderConverter.cxx from Jiri Kral )
7 */
8 // ******* Create OADB Container for EMCal Bad Channels
9 void CreateEMCAL_OADB_BadChannels(const char *fileName10_1      =       "BadChannels2010_1.root",
10                                   const char *fileName10_2      =       "BadChannels2010_2.root",
11                                   const char *fileName10_3      =       "BadChannels2010_3.root",
12                                   const char *fileName11a       =       "BadChannels2011_11a.root", 
13                                   const char *fileName11b       =       "BadChannels2011_11b.root",
14                                   const char *fileName11c1      =       "BadChannels2011_11c1.root", 
15                                   const char *fileName11c2      =       "BadChannels2011_11c2.root", //Subperiod with different histograms
16                                   const char *fileName11c3      =       "BadChannels2011_11c3.root",
17                                   const char *fileName11d       =       "BadChannels2011_11d.root",
18                                   const char *fileName11e       =       "BadChannels2011_11e.root",
19                                   const char *fileName11f       =       "BadChannels2011_11f.root",
20                                   const char *fileName11h       =       "BadChannels2011_11h.root",
21
22                                   const char *fileName12a1      =       "BadChannels2012_12a1.root",
23                                   const char *fileName12a2      =       "BadChannels2012_12a2.root",
24
25                                   const char *fileName12b1      =       "BadChannels2012_12b1.root",
26                                   const char *fileName12b2      =       "BadChannels2012_12b2.root",
27                                   const char *fileName12b3      =       "BadChannels2012_12b3.root",
28                                   const char *fileName12b4      =       "BadChannels2012_12b4.root",
29                                   
30                                   const char *fileName12c1      =       "BadChannels2012_12c1.root",
31                                   const char *fileName12c2      =       "BadChannels2012_12c2.root",
32                                   const char *fileName12c3      =       "BadChannels2012_12c3.root",
33                                   const char *fileName12c4      =       "BadChannels2012_12c4.root",
34                                   
35                                   const char *fileName12d1      =       "BadChannels2012_12d1.root",
36                                   const char *fileName12d2      =       "BadChannels2012_12d2.root",
37                                   const char *fileName12d3      =       "BadChannels2012_12d3.root",
38                                   const char *fileName12d4      =       "BadChannels2012_12d4.root",
39                                   
40                                   const char *fileName12e       =       "BadChannels2012_12e.root",
41                                   const char *fileName12f       =       "BadChannels2012_12f.root",
42                                   const char *fileName12g       =       "BadChannels2012_12g.root",
43                                   const char *fileName12h       =       "BadChannels2012_12h.root",
44
45                   
46                                 )
47 {
48
49     gSystem->Load("libOADB");      
50     //gSystem->Load("libOADB"); //comment if compiled
51       
52     //LHC10
53     TObjArray array10_1(12);            array10_1.SetName("BadChannels10_1");
54     TObjArray array10_2(12);            array10_2.SetName("BadChannels10_2");
55     TObjArray array10_3(12);            array10_3.SetName("BadChannels10_3");
56    
57     //LHC11a
58     TObjArray array11a(12);             array11a.SetName("BadChannels11a");
59
60     //LHC11b
61     TObjArray array11b(12);             array11b.SetName("BadChannels11b");
62     
63     //LHC11c
64     TObjArray array11c1(12);            array11c1.SetName("BadChannels11c1");
65     TObjArray array11c2(12);            array11c2.SetName("BadChannels11c2");
66     TObjArray array11c3(12);            array11c3.SetName("BadChannels11c3");
67
68     //LHC11d
69     TObjArray array11d(12);             array11d.SetName("BadChannels11d");
70
71     //LHC11e
72     TObjArray array11e(12);             array11e.SetName("BadChannels11e");
73
74     //LHC11f
75     TObjArray array11f(12);             array11f.SetName("BadChannels11f");
76
77     //LHC11h
78     TObjArray array11h(12);             array11h.SetName("BadChannels11h");
79
80     //LHC12a
81     TObjArray array12a1(12);            array12a1.SetName("BadChannels12a1");
82     TObjArray array12a2(12);            array12a2.SetName("BadChannels12a2");
83
84     //LHC12b
85     TObjArray array12b1(12);            array12b1.SetName("BadChannels12b1");
86     TObjArray array12b2(12);            array12b2.SetName("BadChannels12b2");
87     TObjArray array12b3(12);            array12b3.SetName("BadChannels12b3");
88     TObjArray array12b4(12);            array12b4.SetName("BadChannels12b4");
89     
90     //LHC12c
91     TObjArray array12c1(12);            array12c1.SetName("BadChannels12c1");
92     TObjArray array12c2(12);            array12c2.SetName("BadChannels12c2");
93     TObjArray array12c3(12);            array12c3.SetName("BadChannels12c3");
94     TObjArray array12c4(12);            array12c4.SetName("BadChannels12c4");
95     
96     //LHC12d
97     TObjArray array12d1(12);            array12d1.SetName("BadChannels12d1");
98     TObjArray array12d2(12);            array12d2.SetName("BadChannels12d2");
99     TObjArray array12d3(12);            array12d3.SetName("BadChannels12d3");
100     TObjArray array12d4(12);            array12d4.SetName("BadChannels12d4");
101     
102     //LHC12e
103     TObjArray array12e(12);             array12e.SetName("BadChannels12e");
104     
105     //LHC12f
106     TObjArray array12f(12);             array12f.SetName("BadChannels12f");
107
108     //LHC12g
109     TObjArray array12g(12);             array12g.SetName("BadChannels12g");
110
111     //LHC12h
112     TObjArray array12h(12);             array12h.SetName("BadChannels12h");
113     
114     TFile       *f10_1  =       new TFile(fileName10_1,"read"); 
115     TFile       *f10_2  =       new TFile(fileName10_2,"read"); 
116     TFile       *f10_3  =       new TFile(fileName10_3,"read"); 
117     TFile       *f11a   =       new TFile(fileName11a,"read");
118     TFile       *f11b   =       new TFile(fileName11b,"read");
119     TFile       *f11c1  =       new TFile(fileName11c1,"read");
120     TFile       *f11c2  =       new TFile(fileName11c2,"read");
121     TFile       *f11c3  =       new TFile(fileName11c3,"read");
122     TFile       *f11d   =       new TFile(fileName11d,"read");
123     TFile       *f11e   =       new TFile(fileName11e,"read");
124     TFile       *f11f   =       new TFile(fileName11f,"read");
125     TFile       *f11h   =       new TFile(fileName11h,"read");
126     TFile       *f12a1  =       new TFile(fileName12a1,"read");
127     TFile       *f12a2  =       new TFile(fileName12a2,"read");
128     TFile       *f12b1  =       new TFile(fileName12b1,"read");
129     TFile       *f12b2  =       new TFile(fileName12b2,"read");
130     TFile       *f12b3  =       new TFile(fileName12b3,"read");
131     TFile       *f12b4  =       new TFile(fileName12b4,"read");
132     TFile       *f12c1  =       new TFile(fileName12c1,"read");
133     TFile       *f12c2  =       new TFile(fileName12c2,"read");
134     TFile       *f12c3  =       new TFile(fileName12c3,"read");
135     TFile       *f12c4  =       new TFile(fileName12c4,"read");
136     TFile       *f12d1  =       new TFile(fileName12d1,"read");
137     TFile       *f12d2  =       new TFile(fileName12d2,"read");
138     TFile       *f12d3  =       new TFile(fileName12d3,"read");
139     TFile       *f12d4  =       new TFile(fileName12d4,"read");
140     TFile       *f12e   =       new TFile(fileName12e,"read");
141     TFile       *f12f   =       new TFile(fileName12f,"read");
142     TFile       *f12g   =       new TFile(fileName12g,"read");
143     TFile       *f12h   =       new TFile(fileName12h,"read");
144     
145     //Create OADB container for BadChannels
146     AliOADBContainer* con = new AliOADBContainer("AliEMCALBadChannels");
147
148     char name[30];
149     for (Int_t mod=0;mod<12;mod++){
150         cout<<"SM "<< mod<<endl;
151         
152         if (mod<4)  {
153             sprintf(name,"EMCALBadChannelMap_Mod%d",mod);
154             cout<<"BadChannels2010:"<<name<<endl;
155             array10_1.Add(f10_1->Get(name));
156             array10_2.Add(f10_2->Get(name));
157             array10_3.Add(f10_3->Get(name));
158
159         }
160             sprintf(name,"EMCALBadChannelMap_Mod%d",mod);
161             cout<<"BadChannels 2011 and 2012:"<<name<<endl;
162             array11a.Add(f11a->Get(name));
163             array11b.Add(f11b->Get(name));
164             array11c1.Add(f11c1->Get(name));
165             array11c2.Add(f11c2->Get(name));
166             array11c3.Add(f11c3->Get(name));
167             array11d.Add(f11d->Get(name));
168             array11e.Add(f11e->Get(name));
169             array11f.Add(f11f->Get(name));
170             array11h.Add(f11h->Get(name));
171             array12a1.Add(f12a1->Get(name));
172             array12a2.Add(f12a2->Get(name));    
173             array12b1.Add(f12b1->Get(name));
174             array12b2.Add(f12b2->Get(name));
175             array12b3.Add(f12b3->Get(name));
176             array12b4.Add(f12b4->Get(name));
177             array12c1.Add(f12c1->Get(name));
178             array12c2.Add(f12c2->Get(name));
179             array12c3.Add(f12c3->Get(name));
180             array12c4.Add(f12c4->Get(name));
181             array12d1.Add(f12d1->Get(name));
182             array12d2.Add(f12d2->Get(name));
183             array12d3.Add(f12d3->Get(name));
184             array12d4.Add(f12d4->Get(name));
185             array12e.Add(f12e->Get(name));
186             array12f.Add(f12f->Get(name));
187             array12g.Add(f12g->Get(name));
188             array12h.Add(f12h->Get(name));
189    } //mod
190     
191     con->AddDefaultObject(&array10_1);
192     con->AddDefaultObject(&array10_2);
193     con->AddDefaultObject(&array10_3);
194     
195     con->AddDefaultObject(&array11a);
196     con->AddDefaultObject(&array11b);
197     con->AddDefaultObject(&array11c1);
198     con->AddDefaultObject(&array11c2);
199     con->AddDefaultObject(&array11c3);
200     con->AddDefaultObject(&array11d);
201     con->AddDefaultObject(&array11e);
202     con->AddDefaultObject(&array11f);
203     con->AddDefaultObject(&array11h);
204
205     con->AddDefaultObject(&array12a1);
206     con->AddDefaultObject(&array12a2);   
207     con->AddDefaultObject(&array12b1);
208     con->AddDefaultObject(&array12b2);
209     con->AddDefaultObject(&array12b3);
210     con->AddDefaultObject(&array12b4);
211     con->AddDefaultObject(&array12c1);
212     con->AddDefaultObject(&array12c2);
213     con->AddDefaultObject(&array12c3);
214     con->AddDefaultObject(&array12c4);
215     con->AddDefaultObject(&array12d1);
216     con->AddDefaultObject(&array12d2);
217     con->AddDefaultObject(&array12d3);
218     con->AddDefaultObject(&array12d4);     
219     con->AddDefaultObject(&array12e);   
220     con->AddDefaultObject(&array12f);   
221     con->AddDefaultObject(&array12g);   
222     con->AddDefaultObject(&array12h);   
223     
224     //Establishing run number with the correct objects
225     con->AppendObject(&array10_1,112000,120742);
226     con->AppendObject(&array10_2,120743,121984);
227     con->AppendObject(&array10_1,121985,124186);
228     con->AppendObject(&array10_3,124187,125296);
229     con->AppendObject(&array10_1,125297,140000);
230
231     con->AppendObject(&array11a,144871,146860);
232     con->AppendObject(&array11b,148531,150629);
233     con->AppendObject(&array11c1,151636,153569);
234     con->AppendObject(&array11c2,153570,154733);
235     con->AppendObject(&array11c3,154734,155384);
236     con->AppendObject(&array11d,156477,159635);
237     con->AppendObject(&array11e,160670,162740);
238     con->AppendObject(&array11f,162933,165746);
239     con->AppendObject(&array11h,166529,170673);
240
241     con->AppendObject(&array12a1,172439,176325);
242     con->AppendObject(&array12a2,176326,177295);
243     
244     con->AppendObject(&array12b1,177381,177383);
245     con->AppendObject(&array12b2,177384,177443);
246     con->AppendObject(&array12b3,177444,177682);
247     con->AppendObject(&array12b2,177683,177843); 
248     con->AppendObject(&array12b4,177844,177849);
249     con->AppendObject(&array12b2,177850,178220);
250   
251     con->AppendObject(&array12c1,179569,180126);
252     con->AppendObject(&array12c2,180127,180194);
253     con->AppendObject(&array12c3,180195,180200);
254     con->AppendObject(&array12c4,180289,182740); 
255     con->AppendObject(&array12c1,182741,182744);
256    
257     con->AppendObject(&array12d1,183913,184481);
258     con->AppendObject(&array12d2,184482,185455);
259     con->AppendObject(&array12d3,185456,185784);
260     con->AppendObject(&array12d4,185909,186035); 
261     con->AppendObject(&array12d2,186036,186320); 
262
263     con->AppendObject(&array12e,186365,186602); 
264     con->AppendObject(&array12f,186668,188123); 
265     con->AppendObject(&array12g,188356,188503); 
266     con->AppendObject(&array12h,189122,192732); 
267
268     con->WriteToFile("BetaBadChannels.root");   
269 }
270