//This a modification in a code sent by Marco Bregant, which, originally, created the OADB for misalignment matrices
//In this macro, the histograms with Recalibraton Factors are loaded and some TObjarrays are filled with these histograms.
// At the end, a OADB container is created receiving these arrays.
void CreateEMCAL_OADB_Recalib(const char *fileName10s_d="RecalDB/summer_december_2010/RecalibrationFactors.root",const char *fileName10d="RecalDB/december2010/RecalibrationFactors.root",
const char *fileName10s="RecalDB/summer2010/RecalibrationFactors.root", const char *fileName11v1="RecalDB/2011_v1/RecalibrationFactors.root")
{
gSystem->Load("libOADB");
Bool_t Recalib2010=kTRUE;
Bool_t Recalib2011=kTRUE;
// **** Loading the root files with Recalibration Factors:
TFile* f10s_d=new TFile(fileName10s_d);
TFile* f10d=new TFile(fileName10d);
TFile* f10s=new TFile(fileName10s);
TFile* f11v1=new TFile(fileName11v1);
// ********* Arrays with the objects *********************
TObjArray array10s_d(4); //summer_december_2010/
TObjArray array10dec(4); //december2010
TObjArray array10s(4); //summer2010
TObjArray array11v1(10); // 2011_v1
array10s_d.SetName("Recalib");
array10dec.SetName("Recalib");
array10s.SetName("Recalib");
array11v1.SetName("Recalib");
char name[30];
// Filling The objects above with the EMCALRecalFactors_SM Histos:
for (Int_t mod=0;mod<10;mod++){
cout<<"SM "<< mod<<endl;
// Recalib Objects for 2010:
if (Recalib2010&&mod<4) { //if 2010 4 SMs
sprintf(name,"EMCALRecalFactors_SM%d",mod);
cout<<"Recalib2010:"<<name<<endl;
//Summer_December:
array10s_d.Add(f10s_d->Get(name));
//December:
array10dec.Add(f10d->Get(name));
//Summer:
array10s.Add(&array10s_d);
}
// Recalib Objects for 2011:
if (Recalib2011) { //if 2011 10 SMs
sprintf(name,"EMCALRecalFactors_SM%d",mod);
cout<<"Recalib2011:"<<name<<endl;
array11v1.Add(f11v1->Get(name));
}
} //mod
//********************************************************************
// ************** Establishing different configuration according to the pass ***********
// ************ Latest Tender Information : (September 3rd 2011) AliRootTrunk revision 51405 ***********************
// ******* 2010 ******************
TObjArray array10b_pass2(4);//runRC >= 114737 && runRC <= 117223
array10b_pass2.SetName("pass2");
TObjArray array10c_pass2(4);//runRC >= 118503 && runRC <= 121040
array10c_pass2.SetName("pass2");
TObjArray array10c_pass3(4);//runRC >= 118503 && runRC <= 121040
array10c_pass3.SetName("pass3");
TObjArray array10d_pass1(4);//runRC >= 122195 && runRC <= 126437
array10d_pass1.SetName("pass1");
TObjArray array10e_pass1(4);//runRC >= 127712 && runRC <= 130850
array10e_pass1.SetName("pass1");
TObjArray array10f_pass1a(4);//runRC >= 133004 && runRC < 134657
array10f_pass1a.SetName("pass1");
//December:
TObjArray array10d_pass2(4); //runRC >= 122195 && runRC <= 126437
array10d_pass2.SetName("pass2");
TObjArray array10f_pass1b(4);//runRC >= 134657 && runRC <= 135029
array10f_pass1b.SetName("pass1");
TObjArray array10g_pass1(4); //runRC >= 135654 && runRC <= 136377
array10g_pass1.SetName("pass1");
TObjArray array10h_pass1a(4); //Until Christmas: runRC >= 136851 && runRC < 137231
array10h_pass1a.SetName("pass1");
//Summer:
TObjArray array10h_pass1b(4); //runRC >= 137231 && runRC <= 139517
array10h_pass1b.SetName("pass1");
//Summer_December:
array10b_pass2.Add(&array10s_d);//runRC >= 114737 && runRC <= 117223
array10c_pass2.Add(&array10s_d);//runRC >= 118503 && runRC <= 121040
array10c_pass3.Add(&array10s_d);//runRC >= 118503 && runRC <= 121040
array10d_pass1.Add(&array10s_d);//runRC >= 122195 && runRC <= 126437
array10e_pass1.Add(&array10s_d);//runRC >= 127712 && runRC <= 130850
array10f_pass1a.Add(&array10s_d);//runRC >= 133004 && runRC < 134657
//December:
array10d_pass2.Add(&array10dec); //runRC >= 122195 && runRC <= 126437
array10f_pass1b.Add(&array10dec);//runRC >= 134657 && runRC <= 135029
array10g_pass1.Add(&array10dec); //runRC >= 135654 && runRC <= 136377
array10h_pass1a.Add(&array10dec); //Until Christmas: runRC >= 136851 && runRC < 137231
//Summer:
array10h_pass1b.Add(&array10s); //runRC >= 137231 && runRC <= 139517
//*********** 2011 ***************************************
TObjArray array11a_pass1(10); // LHC11a pass1
array11a_pass1.SetName("pass1");
TObjArray array11a_pass2(10); // LHC11a pass2
array11a_pass2.SetName("pass2");
TObjArray array11c_pass1(10); // LHC11c pass1
array11c_pass1.SetName("pass1");
array11a_pass1.Add(&array11v1);
array11a_pass2.Add(&array11v1);
array11c_pass1.Add(&array11v1);
// *************************************************************************************
// ******** Establishing the objects for the specific Periods ************************
// 2010
TObjArray array10b(4);
array10b.SetName("LHC10b");
TObjArray array10c(4);
array10c.SetName("LHC10c");
TObjArray array10d(4);
array10d.SetName("LHC10d");
TObjArray array10e(4);
array10e.SetName("LHC10e");
TObjArray array10fa(4);
array10fa.SetName("LHC10fa");
TObjArray array10fb(4);
array10fb.SetName("LHC10fb");
TObjArray array10g(4);
array10g.SetName("LHC10g");
TObjArray array10ha(4);
array10ha.SetName("LHC10ha");
TObjArray array10hb(4);
array10hb.SetName("LHC10hb");
array10b.Add(&array10b_pass2);
array10c.Add(&array10c_pass2);
array10c.Add(&array10c_pass3);
array10d.Add(&array10d_pass1);
array10d.Add(&array10d_pass2);
array10e.Add(&array10e_pass1);
array10fa.Add(&array10f_pass1a);
array10fb.Add(&array10f_pass1b);
array10g.Add(&array10g_pass1);
array10ha.Add(&array10h_pass1a);
array10hb.Add(&array10h_pass1b);
// ************
//2011
TObjArray array11a(10);
array11a.SetName("LHC11a");
TObjArray array11c(10);
array11c.SetName("LHC11c");
array11a.Add(&array11a_pass1);
array11a.Add(&array11a_pass2);
array11c.Add(&array11c_pass1);
// *****************
// Creating Container
AliOADBContainer* con = new AliOADBContainer("AliEMCALRecalib");
con->AddDefaultObject((TObject*) &array10b);
con->AddDefaultObject((TObject*) &array10c);
con->AddDefaultObject((TObject*) &array10d);
con->AddDefaultObject((TObject*) &array10e);
con->AddDefaultObject((TObject*) &array10fa);
con->AddDefaultObject((TObject*) &array10fb);
con->AddDefaultObject((TObject*) &array10g);
con->AddDefaultObject((TObject*) &array10ha);
con->AddDefaultObject((TObject*) &array10hb);
con->AddDefaultObject((TObject*) &array11a);
con->AddDefaultObject((TObject*) &array11c);
// Appending objects to their specific Run number
con->AppendObject(&array10b,114737,117223);
con->AppendObject(&array10c,118503,121040);
con->AppendObject(&array10d,122195,126437);
con->AppendObject(&array10e,127712,130850);
con->AppendObject(&array10fa,133004,134656);
con->AppendObject(&array10fb,134657,135029);
con->AppendObject(&array10g,135654,136377);
con->AppendObject(&array10ha,136851,137230);
con->AppendObject(&array10hb,137231,139517);
con->AppendObject(&array11a,144871,146860);
con->AppendObject(&array11c,151636,155384);
con->WriteToFile("BetaRecalib.root");
test(); // If someone wants to test container
}
void test(){
//
// let's read back the file
AliOADBContainer *cont=new AliOADBContainer("");
cont->InitFromFile("BetaRecalib.root", "AliEMCALRecalib");
//
cout<<"_________--------------- dump ---------------------___________"<<endl;
cont->Dump();
cout<<"_________--------------- list ---------------------___________"<<endl;
//cont0.List();
cout<<"cont->GetDefaultList()->Print()"<<endl;
cont->GetDefaultList()->Print();
TObjArray *recal=cont->GetObject(118503); //GetObject(int runnumber)
recal->ls();
TObjArray *recalpass=recal->FindObject("pass2");
if(!recalpass){
cout<<" norecalpass"<<endl;
return;
}
TObjArray *recalib=recalpass->FindObject("Recalib");
if(!recalib){
cout<<" no recalib found"<<endl;
return;
}
TH2F *h2=(TH2F*)recalib->FindObject("EMCALRecalFactors_SM0");
if(!h2){
return;
cout<<" no histo found"<<endl;
}
h2->DrawCopy("colz");
cout<<"That's all folks!"<<endl;
}
CreateEMCAL_OADB_Recalib.C:1 CreateEMCAL_OADB_Recalib.C:2 CreateEMCAL_OADB_Recalib.C:3 CreateEMCAL_OADB_Recalib.C:4 CreateEMCAL_OADB_Recalib.C:5 CreateEMCAL_OADB_Recalib.C:6 CreateEMCAL_OADB_Recalib.C:7 CreateEMCAL_OADB_Recalib.C:8 CreateEMCAL_OADB_Recalib.C:9 CreateEMCAL_OADB_Recalib.C:10 CreateEMCAL_OADB_Recalib.C:11 CreateEMCAL_OADB_Recalib.C:12 CreateEMCAL_OADB_Recalib.C:13 CreateEMCAL_OADB_Recalib.C:14 CreateEMCAL_OADB_Recalib.C:15 CreateEMCAL_OADB_Recalib.C:16 CreateEMCAL_OADB_Recalib.C:17 CreateEMCAL_OADB_Recalib.C:18 CreateEMCAL_OADB_Recalib.C:19 CreateEMCAL_OADB_Recalib.C:20 CreateEMCAL_OADB_Recalib.C:21 CreateEMCAL_OADB_Recalib.C:22 CreateEMCAL_OADB_Recalib.C:23 CreateEMCAL_OADB_Recalib.C:24 CreateEMCAL_OADB_Recalib.C:25 CreateEMCAL_OADB_Recalib.C:26 CreateEMCAL_OADB_Recalib.C:27 CreateEMCAL_OADB_Recalib.C:28 CreateEMCAL_OADB_Recalib.C:29 CreateEMCAL_OADB_Recalib.C:30 CreateEMCAL_OADB_Recalib.C:31 CreateEMCAL_OADB_Recalib.C:32 CreateEMCAL_OADB_Recalib.C:33 CreateEMCAL_OADB_Recalib.C:34 CreateEMCAL_OADB_Recalib.C:35 CreateEMCAL_OADB_Recalib.C:36 CreateEMCAL_OADB_Recalib.C:37 CreateEMCAL_OADB_Recalib.C:38 CreateEMCAL_OADB_Recalib.C:39 CreateEMCAL_OADB_Recalib.C:40 CreateEMCAL_OADB_Recalib.C:41 CreateEMCAL_OADB_Recalib.C:42 CreateEMCAL_OADB_Recalib.C:43 CreateEMCAL_OADB_Recalib.C:44 CreateEMCAL_OADB_Recalib.C:45 CreateEMCAL_OADB_Recalib.C:46 CreateEMCAL_OADB_Recalib.C:47 CreateEMCAL_OADB_Recalib.C:48 CreateEMCAL_OADB_Recalib.C:49 CreateEMCAL_OADB_Recalib.C:50 CreateEMCAL_OADB_Recalib.C:51 CreateEMCAL_OADB_Recalib.C:52 CreateEMCAL_OADB_Recalib.C:53 CreateEMCAL_OADB_Recalib.C:54 CreateEMCAL_OADB_Recalib.C:55 CreateEMCAL_OADB_Recalib.C:56 CreateEMCAL_OADB_Recalib.C:57 CreateEMCAL_OADB_Recalib.C:58 CreateEMCAL_OADB_Recalib.C:59 CreateEMCAL_OADB_Recalib.C:60 CreateEMCAL_OADB_Recalib.C:61 CreateEMCAL_OADB_Recalib.C:62 CreateEMCAL_OADB_Recalib.C:63 CreateEMCAL_OADB_Recalib.C:64 CreateEMCAL_OADB_Recalib.C:65 CreateEMCAL_OADB_Recalib.C:66 CreateEMCAL_OADB_Recalib.C:67 CreateEMCAL_OADB_Recalib.C:68 CreateEMCAL_OADB_Recalib.C:69 CreateEMCAL_OADB_Recalib.C:70 CreateEMCAL_OADB_Recalib.C:71 CreateEMCAL_OADB_Recalib.C:72 CreateEMCAL_OADB_Recalib.C:73 CreateEMCAL_OADB_Recalib.C:74 CreateEMCAL_OADB_Recalib.C:75 CreateEMCAL_OADB_Recalib.C:76 CreateEMCAL_OADB_Recalib.C:77 CreateEMCAL_OADB_Recalib.C:78 CreateEMCAL_OADB_Recalib.C:79 CreateEMCAL_OADB_Recalib.C:80 CreateEMCAL_OADB_Recalib.C:81 CreateEMCAL_OADB_Recalib.C:82 CreateEMCAL_OADB_Recalib.C:83 CreateEMCAL_OADB_Recalib.C:84 CreateEMCAL_OADB_Recalib.C:85 CreateEMCAL_OADB_Recalib.C:86 CreateEMCAL_OADB_Recalib.C:87 CreateEMCAL_OADB_Recalib.C:88 CreateEMCAL_OADB_Recalib.C:89 CreateEMCAL_OADB_Recalib.C:90 CreateEMCAL_OADB_Recalib.C:91 CreateEMCAL_OADB_Recalib.C:92 CreateEMCAL_OADB_Recalib.C:93 CreateEMCAL_OADB_Recalib.C:94 CreateEMCAL_OADB_Recalib.C:95 CreateEMCAL_OADB_Recalib.C:96 CreateEMCAL_OADB_Recalib.C:97 CreateEMCAL_OADB_Recalib.C:98 CreateEMCAL_OADB_Recalib.C:99 CreateEMCAL_OADB_Recalib.C:100 CreateEMCAL_OADB_Recalib.C:101 CreateEMCAL_OADB_Recalib.C:102 CreateEMCAL_OADB_Recalib.C:103 CreateEMCAL_OADB_Recalib.C:104 CreateEMCAL_OADB_Recalib.C:105 CreateEMCAL_OADB_Recalib.C:106 CreateEMCAL_OADB_Recalib.C:107 CreateEMCAL_OADB_Recalib.C:108 CreateEMCAL_OADB_Recalib.C:109 CreateEMCAL_OADB_Recalib.C:110 CreateEMCAL_OADB_Recalib.C:111 CreateEMCAL_OADB_Recalib.C:112 CreateEMCAL_OADB_Recalib.C:113 CreateEMCAL_OADB_Recalib.C:114 CreateEMCAL_OADB_Recalib.C:115 CreateEMCAL_OADB_Recalib.C:116 CreateEMCAL_OADB_Recalib.C:117 CreateEMCAL_OADB_Recalib.C:118 CreateEMCAL_OADB_Recalib.C:119 CreateEMCAL_OADB_Recalib.C:120 CreateEMCAL_OADB_Recalib.C:121 CreateEMCAL_OADB_Recalib.C:122 CreateEMCAL_OADB_Recalib.C:123 CreateEMCAL_OADB_Recalib.C:124 CreateEMCAL_OADB_Recalib.C:125 CreateEMCAL_OADB_Recalib.C:126 CreateEMCAL_OADB_Recalib.C:127 CreateEMCAL_OADB_Recalib.C:128 CreateEMCAL_OADB_Recalib.C:129 CreateEMCAL_OADB_Recalib.C:130 CreateEMCAL_OADB_Recalib.C:131 CreateEMCAL_OADB_Recalib.C:132 CreateEMCAL_OADB_Recalib.C:133 CreateEMCAL_OADB_Recalib.C:134 CreateEMCAL_OADB_Recalib.C:135 CreateEMCAL_OADB_Recalib.C:136 CreateEMCAL_OADB_Recalib.C:137 CreateEMCAL_OADB_Recalib.C:138 CreateEMCAL_OADB_Recalib.C:139 CreateEMCAL_OADB_Recalib.C:140 CreateEMCAL_OADB_Recalib.C:141 CreateEMCAL_OADB_Recalib.C:142 CreateEMCAL_OADB_Recalib.C:143 CreateEMCAL_OADB_Recalib.C:144 CreateEMCAL_OADB_Recalib.C:145 CreateEMCAL_OADB_Recalib.C:146 CreateEMCAL_OADB_Recalib.C:147 CreateEMCAL_OADB_Recalib.C:148 CreateEMCAL_OADB_Recalib.C:149 CreateEMCAL_OADB_Recalib.C:150 CreateEMCAL_OADB_Recalib.C:151 CreateEMCAL_OADB_Recalib.C:152 CreateEMCAL_OADB_Recalib.C:153 CreateEMCAL_OADB_Recalib.C:154 CreateEMCAL_OADB_Recalib.C:155 CreateEMCAL_OADB_Recalib.C:156 CreateEMCAL_OADB_Recalib.C:157 CreateEMCAL_OADB_Recalib.C:158 CreateEMCAL_OADB_Recalib.C:159 CreateEMCAL_OADB_Recalib.C:160 CreateEMCAL_OADB_Recalib.C:161 CreateEMCAL_OADB_Recalib.C:162 CreateEMCAL_OADB_Recalib.C:163 CreateEMCAL_OADB_Recalib.C:164 CreateEMCAL_OADB_Recalib.C:165 CreateEMCAL_OADB_Recalib.C:166 CreateEMCAL_OADB_Recalib.C:167 CreateEMCAL_OADB_Recalib.C:168 CreateEMCAL_OADB_Recalib.C:169 CreateEMCAL_OADB_Recalib.C:170 CreateEMCAL_OADB_Recalib.C:171 CreateEMCAL_OADB_Recalib.C:172 CreateEMCAL_OADB_Recalib.C:173 CreateEMCAL_OADB_Recalib.C:174 CreateEMCAL_OADB_Recalib.C:175 CreateEMCAL_OADB_Recalib.C:176 CreateEMCAL_OADB_Recalib.C:177 CreateEMCAL_OADB_Recalib.C:178 CreateEMCAL_OADB_Recalib.C:179 CreateEMCAL_OADB_Recalib.C:180 CreateEMCAL_OADB_Recalib.C:181 CreateEMCAL_OADB_Recalib.C:182 CreateEMCAL_OADB_Recalib.C:183 CreateEMCAL_OADB_Recalib.C:184 CreateEMCAL_OADB_Recalib.C:185 CreateEMCAL_OADB_Recalib.C:186 CreateEMCAL_OADB_Recalib.C:187 CreateEMCAL_OADB_Recalib.C:188 CreateEMCAL_OADB_Recalib.C:189 CreateEMCAL_OADB_Recalib.C:190 CreateEMCAL_OADB_Recalib.C:191 CreateEMCAL_OADB_Recalib.C:192 CreateEMCAL_OADB_Recalib.C:193 CreateEMCAL_OADB_Recalib.C:194 CreateEMCAL_OADB_Recalib.C:195 CreateEMCAL_OADB_Recalib.C:196 CreateEMCAL_OADB_Recalib.C:197 CreateEMCAL_OADB_Recalib.C:198 CreateEMCAL_OADB_Recalib.C:199 CreateEMCAL_OADB_Recalib.C:200 CreateEMCAL_OADB_Recalib.C:201 CreateEMCAL_OADB_Recalib.C:202 CreateEMCAL_OADB_Recalib.C:203 CreateEMCAL_OADB_Recalib.C:204 CreateEMCAL_OADB_Recalib.C:205 CreateEMCAL_OADB_Recalib.C:206 CreateEMCAL_OADB_Recalib.C:207 CreateEMCAL_OADB_Recalib.C:208 CreateEMCAL_OADB_Recalib.C:209 CreateEMCAL_OADB_Recalib.C:210 CreateEMCAL_OADB_Recalib.C:211 CreateEMCAL_OADB_Recalib.C:212 CreateEMCAL_OADB_Recalib.C:213 CreateEMCAL_OADB_Recalib.C:214 CreateEMCAL_OADB_Recalib.C:215 CreateEMCAL_OADB_Recalib.C:216 CreateEMCAL_OADB_Recalib.C:217 CreateEMCAL_OADB_Recalib.C:218 CreateEMCAL_OADB_Recalib.C:219 CreateEMCAL_OADB_Recalib.C:220 CreateEMCAL_OADB_Recalib.C:221 CreateEMCAL_OADB_Recalib.C:222 CreateEMCAL_OADB_Recalib.C:223 CreateEMCAL_OADB_Recalib.C:224 CreateEMCAL_OADB_Recalib.C:225 CreateEMCAL_OADB_Recalib.C:226 CreateEMCAL_OADB_Recalib.C:227 CreateEMCAL_OADB_Recalib.C:228 CreateEMCAL_OADB_Recalib.C:229 CreateEMCAL_OADB_Recalib.C:230 CreateEMCAL_OADB_Recalib.C:231 CreateEMCAL_OADB_Recalib.C:232 CreateEMCAL_OADB_Recalib.C:233 CreateEMCAL_OADB_Recalib.C:234 CreateEMCAL_OADB_Recalib.C:235 CreateEMCAL_OADB_Recalib.C:236 CreateEMCAL_OADB_Recalib.C:237 CreateEMCAL_OADB_Recalib.C:238 CreateEMCAL_OADB_Recalib.C:239 CreateEMCAL_OADB_Recalib.C:240 CreateEMCAL_OADB_Recalib.C:241 CreateEMCAL_OADB_Recalib.C:242 CreateEMCAL_OADB_Recalib.C:243 CreateEMCAL_OADB_Recalib.C:244 CreateEMCAL_OADB_Recalib.C:245 CreateEMCAL_OADB_Recalib.C:246 CreateEMCAL_OADB_Recalib.C:247 CreateEMCAL_OADB_Recalib.C:248 CreateEMCAL_OADB_Recalib.C:249 CreateEMCAL_OADB_Recalib.C:250 CreateEMCAL_OADB_Recalib.C:251 CreateEMCAL_OADB_Recalib.C:252 CreateEMCAL_OADB_Recalib.C:253 CreateEMCAL_OADB_Recalib.C:254 CreateEMCAL_OADB_Recalib.C:255 CreateEMCAL_OADB_Recalib.C:256 CreateEMCAL_OADB_Recalib.C:257 CreateEMCAL_OADB_Recalib.C:258 CreateEMCAL_OADB_Recalib.C:259 CreateEMCAL_OADB_Recalib.C:260 CreateEMCAL_OADB_Recalib.C:261 CreateEMCAL_OADB_Recalib.C:262 CreateEMCAL_OADB_Recalib.C:263 CreateEMCAL_OADB_Recalib.C:264 CreateEMCAL_OADB_Recalib.C:265 CreateEMCAL_OADB_Recalib.C:266 CreateEMCAL_OADB_Recalib.C:267 CreateEMCAL_OADB_Recalib.C:268 CreateEMCAL_OADB_Recalib.C:269 CreateEMCAL_OADB_Recalib.C:270 CreateEMCAL_OADB_Recalib.C:271