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 UpdateEMCAL_OADB_BadChannels(const char *fileNameOADB ="$ALICE_ROOT/OADB/EMCAL/EMCALBadChannels.root",
10 const char *fileName12i1 ="BadChannels2012_12i1.root",
11 const char *fileName12i2 ="BadChannels2012_12i2.root",
12 const char *fileName13b ="BadChannels2012_13b.root",
13 const char *fileName13c ="BadChannels2012_13c.root",
14 const char *fileName13d ="BadChannels2012_13d.root",
15 const char *fileName13e ="BadChannels2012_13e.root",
16 const char *fileName13f ="BadChannels2012_13f.root",
17 const char *fileName13f1 ="BadChannels2012_13f1.root",
18 const char *fileName13f2 ="BadChannels2012_13f2.root",
19 const char *fileName13f3 ="BadChannels2012_13f3.root",
20 const char *fileName13f4 ="BadChannels2012_13f4.root"
24 gSystem->Load("libOADB");
25 //gSystem->Load("libOADB"); //comment if compiled
27 //Create OADB container for BadChannels
28 AliOADBContainer *con=new AliOADBContainer("");
29 con->InitFromFile(Form(fileNameOADB),"AliEMCALBadChannels");
33 TObjArray array12i1(12); array12i1.SetName("BadChannels12i1");
34 TObjArray array12i2(12); array12i2.SetName("BadChannels12i2");
38 TObjArray array13b(12); array13b.SetName("BadChannels13b");
41 TObjArray array13c(12); array13c.SetName("BadChannels13c");
44 TObjArray array13d(12); array13d.SetName("BadChannels13d");
47 TObjArray array13e(12); array13e.SetName("BadChannels13e");
50 TObjArray array13f(12); array13f.SetName("BadChannels13f");
51 TObjArray array13f1(12); array13f1.SetName("BadChannels13f1");
52 TObjArray array13f2(12); array13f2.SetName("BadChannels13f2");
53 TObjArray array13f3(12); array13f3.SetName("BadChannels13f3");
54 TObjArray array13f4(12); array13f4.SetName("BadChannels13f4");
59 TFile *f12i1 = new TFile(fileName12i1,"read");
60 TFile *f12i2 = new TFile(fileName12i2,"read");
62 TFile *f13b = new TFile(fileName13b,"read");
63 TFile *f13c = new TFile(fileName13c,"read");
64 TFile *f13d = new TFile(fileName13d,"read");
65 TFile *f13e = new TFile(fileName13e,"read");
67 TFile *f13f = new TFile(fileName13f,"read");
68 TFile *f13f1 = new TFile(fileName13f1,"read");
69 TFile *f13f2 = new TFile(fileName13f2,"read");
70 TFile *f13f3 = new TFile(fileName13f3,"read");
71 TFile *f13f4 = new TFile(fileName13f4,"read");
74 for (Int_t mod=0;mod<12;mod++){
75 cout<<"SM "<< mod<<endl;
77 sprintf(name,"EMCALBadChannelMap_Mod%d",mod);
78 cout<<"BadChannels 2012 and 2013:"<<name<<endl;
79 array12i1.Add(f12i1->Get(name));
80 array12i2.Add(f12i2->Get(name));
81 array13b.Add(f13b->Get(name));
82 array13c.Add(f13c->Get(name));
83 array13d.Add(f13d->Get(name));
84 array13e.Add(f13e->Get(name));
85 array13f.Add(f13f->Get(name));
86 array13f1.Add(f13f1->Get(name));
87 array13f2.Add(f13f2->Get(name));
88 array13f3.Add(f13f3->Get(name));
89 array13f4.Add(f13f4->Get(name));
93 con->AddDefaultObject(&array12i1);
94 con->AddDefaultObject(&array12i2);
95 con->AddDefaultObject(&array13b);
96 con->AddDefaultObject(&array13c);
97 con->AddDefaultObject(&array13d);
98 con->AddDefaultObject(&array13e);
99 con->AddDefaultObject(&array13f);
100 con->AddDefaultObject(&array13f1);
101 con->AddDefaultObject(&array13f2);
102 con->AddDefaultObject(&array13f3);
103 con->AddDefaultObject(&array13f4);
105 //Establishing run number with the correct objects
106 con->AppendObject(&array12i1,192745,192824);
107 con->AppendObject(&array12i2,193004,193766);
108 con->AppendObject(&array13b,195344,195483);
109 con->AppendObject(&array13c,195529,195677);
110 con->AppendObject(&array13d,195681,195873);
111 con->AppendObject(&array13e,195935,196311);
112 con->AppendObject(&array13f,196433,196535);
113 con->AppendObject(&array13f1,196563,196608);
114 con->AppendObject(&array13f2,196646,197092);
115 con->AppendObject(&array13f3,197094,197099);
116 con->AppendObject(&array13f2,197138,197302);
117 con->AppendObject(&array13f,197341,197342);
118 con->AppendObject(&array13f4,197348,197388);
119 con->WriteToFile("BetaBadChannels.root");