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 )
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",
22 const char *fileName12a1 = "BadChannels2012_12a1.root",
23 const char *fileName12a2 = "BadChannels2012_12a2.root",
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",
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",
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",
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",
49 gSystem->Load("libOADB");
50 //gSystem->Load("libOADB"); //comment if compiled
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");
58 TObjArray array11a(12); array11a.SetName("BadChannels11a");
61 TObjArray array11b(12); array11b.SetName("BadChannels11b");
64 TObjArray array11c1(12); array11c1.SetName("BadChannels11c1");
65 TObjArray array11c2(12); array11c2.SetName("BadChannels11c2");
66 TObjArray array11c3(12); array11c3.SetName("BadChannels11c3");
69 TObjArray array11d(12); array11d.SetName("BadChannels11d");
72 TObjArray array11e(12); array11e.SetName("BadChannels11e");
75 TObjArray array11f(12); array11f.SetName("BadChannels11f");
78 TObjArray array11h(12); array11h.SetName("BadChannels11h");
81 TObjArray array12a1(12); array12a1.SetName("BadChannels12a1");
82 TObjArray array12a2(12); array12a2.SetName("BadChannels12a2");
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");
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");
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");
103 TObjArray array12e(12); array12e.SetName("BadChannels12e");
106 TObjArray array12f(12); array12f.SetName("BadChannels12f");
109 TObjArray array12g(12); array12g.SetName("BadChannels12g");
112 TObjArray array12h(12); array12h.SetName("BadChannels12h");
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");
145 //Create OADB container for BadChannels
146 AliOADBContainer* con = new AliOADBContainer("AliEMCALBadChannels");
149 for (Int_t mod=0;mod<12;mod++){
150 cout<<"SM "<< mod<<endl;
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));
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));
191 con->AddDefaultObject(&array10_1);
192 con->AddDefaultObject(&array10_2);
193 con->AddDefaultObject(&array10_3);
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);
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);
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);
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);
241 con->AppendObject(&array12a1,172439,176325);
242 con->AppendObject(&array12a2,176326,177295);
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);
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);
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);
263 con->AppendObject(&array12e,186365,186602);
264 con->AppendObject(&array12f,186668,188123);
265 con->AppendObject(&array12g,188356,188503);
266 con->AppendObject(&array12h,189122,192732);
268 con->WriteToFile("BetaBadChannels.root");