void UpdateVZEROTimeDelaysEntries(Int_t year = 2010, Int_t period = 0, Bool_t local = kFALSE)
{
Int_t runRange[2];
if (year == 2009) {
runRange[0] = 0;
runRange[1] = 105268;
}
else if (year == 2010) {
if (period == 0) {
runRange[0] = 106031;
runRange[1] = 116353;
}
else if (period == 1) {
runRange[0] = 116354;
runRange[1] = 118285;
}
else if (period == 2) {
runRange[0] = 118486;
runRange[1] = 118556;
}
else {
printf("Invalid run period...\n");
return;
}
}
else {
printf("Invalid year...\n");
return;
}
AliCDBManager *man = AliCDBManager::Instance();
man->SetDefaultStorage(Form("alien://?folder=/alice/data/%d/OCDB",year));
man->SetRun(runRange[1]);
AliCDBEntry *entry = man->Get("VZERO/Calib/Data");
AliVZEROCalibData *calibda = (AliVZEROCalibData*)entry->GetObject();
printf("Year %d Period %d:\n",year,period);
printf("Calib:\n");
for(Int_t i = 0; i < 64; ++i) printf("%.2f ",calibda->GetTimeOffset(i));
printf("\n");
entry = man->Get("VZERO/Calib/TimeDelays");
TH1F *delays = (TH1F*)entry->GetObject();
TH1F *delaysNew = new TH1F(*delays);
printf("Delay:\n");
for(Int_t i = 0; i < 64; ++i) printf("%.2f ",delaysNew->GetBinContent(i+1));
printf("\n");
for(Int_t i = 0; i < 64; ++i) {
if (year == 2009) delaysNew->SetBinContent(i+1,delays->GetBinContent(i+1)+5.0);
if (year == 2010 && period == 0) delaysNew->SetBinContent(i+1,5.0);
if (year == 2010 && (period == 1 || period == 2)) {
Int_t board = i / 8;
Int_t channel = i % 8;
Int_t j = AliVZEROCalibData::GetOfflineChannelNumber(board,channel);
delaysNew->SetBinContent(j+1,
delays->GetBinContent(j+1)+
calibda->GetTimeOffset(i)-
calibda->GetTimeOffset(j));
}
}
printf("CorrDelay:\n");
for(Int_t i = 0; i < 64; ++i) printf("%.2f ",delaysNew->GetBinContent(i+1));
printf("\n");
if (local) man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
{
AliCDBMetaData *md= new AliCDBMetaData(); // metaData describing the object
md->SetResponsible("Brigitte Cheynis");
md->SetBeamPeriod(0);
md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
md->SetComment(Form("Time delays channel by channel (corrected values for year %d, period %d)",year,period));
md->PrintMetaData();
AliCDBStorage *storLoc = man->GetDefaultStorage();
AliCDBId id("VZERO/Calib/TimeDelays",runRange[0],runRange[1]);
storLoc->Put(delaysNew, id, md);
storLoc->Delete();
delete md;
}
}
UpdateVZEROTimeDelaysEntries.C:1 UpdateVZEROTimeDelaysEntries.C:2 UpdateVZEROTimeDelaysEntries.C:3 UpdateVZEROTimeDelaysEntries.C:4 UpdateVZEROTimeDelaysEntries.C:5 UpdateVZEROTimeDelaysEntries.C:6 UpdateVZEROTimeDelaysEntries.C:7 UpdateVZEROTimeDelaysEntries.C:8 UpdateVZEROTimeDelaysEntries.C:9 UpdateVZEROTimeDelaysEntries.C:10 UpdateVZEROTimeDelaysEntries.C:11 UpdateVZEROTimeDelaysEntries.C:12 UpdateVZEROTimeDelaysEntries.C:13 UpdateVZEROTimeDelaysEntries.C:14 UpdateVZEROTimeDelaysEntries.C:15 UpdateVZEROTimeDelaysEntries.C:16 UpdateVZEROTimeDelaysEntries.C:17 UpdateVZEROTimeDelaysEntries.C:18 UpdateVZEROTimeDelaysEntries.C:19 UpdateVZEROTimeDelaysEntries.C:20 UpdateVZEROTimeDelaysEntries.C:21 UpdateVZEROTimeDelaysEntries.C:22 UpdateVZEROTimeDelaysEntries.C:23 UpdateVZEROTimeDelaysEntries.C:24 UpdateVZEROTimeDelaysEntries.C:25 UpdateVZEROTimeDelaysEntries.C:26 UpdateVZEROTimeDelaysEntries.C:27 UpdateVZEROTimeDelaysEntries.C:28 UpdateVZEROTimeDelaysEntries.C:29 UpdateVZEROTimeDelaysEntries.C:30 UpdateVZEROTimeDelaysEntries.C:31 UpdateVZEROTimeDelaysEntries.C:32 UpdateVZEROTimeDelaysEntries.C:33 UpdateVZEROTimeDelaysEntries.C:34 UpdateVZEROTimeDelaysEntries.C:35 UpdateVZEROTimeDelaysEntries.C:36 UpdateVZEROTimeDelaysEntries.C:37 UpdateVZEROTimeDelaysEntries.C:38 UpdateVZEROTimeDelaysEntries.C:39 UpdateVZEROTimeDelaysEntries.C:40 UpdateVZEROTimeDelaysEntries.C:41 UpdateVZEROTimeDelaysEntries.C:42 UpdateVZEROTimeDelaysEntries.C:43 UpdateVZEROTimeDelaysEntries.C:44 UpdateVZEROTimeDelaysEntries.C:45 UpdateVZEROTimeDelaysEntries.C:46 UpdateVZEROTimeDelaysEntries.C:47 UpdateVZEROTimeDelaysEntries.C:48 UpdateVZEROTimeDelaysEntries.C:49 UpdateVZEROTimeDelaysEntries.C:50 UpdateVZEROTimeDelaysEntries.C:51 UpdateVZEROTimeDelaysEntries.C:52 UpdateVZEROTimeDelaysEntries.C:53 UpdateVZEROTimeDelaysEntries.C:54 UpdateVZEROTimeDelaysEntries.C:55 UpdateVZEROTimeDelaysEntries.C:56 UpdateVZEROTimeDelaysEntries.C:57 UpdateVZEROTimeDelaysEntries.C:58 UpdateVZEROTimeDelaysEntries.C:59 UpdateVZEROTimeDelaysEntries.C:60 UpdateVZEROTimeDelaysEntries.C:61 UpdateVZEROTimeDelaysEntries.C:62 UpdateVZEROTimeDelaysEntries.C:63 UpdateVZEROTimeDelaysEntries.C:64 UpdateVZEROTimeDelaysEntries.C:65 UpdateVZEROTimeDelaysEntries.C:66 UpdateVZEROTimeDelaysEntries.C:67 UpdateVZEROTimeDelaysEntries.C:68 UpdateVZEROTimeDelaysEntries.C:69 UpdateVZEROTimeDelaysEntries.C:70 UpdateVZEROTimeDelaysEntries.C:71 UpdateVZEROTimeDelaysEntries.C:72 UpdateVZEROTimeDelaysEntries.C:73 UpdateVZEROTimeDelaysEntries.C:74 UpdateVZEROTimeDelaysEntries.C:75 UpdateVZEROTimeDelaysEntries.C:76 UpdateVZEROTimeDelaysEntries.C:77 UpdateVZEROTimeDelaysEntries.C:78 UpdateVZEROTimeDelaysEntries.C:79 UpdateVZEROTimeDelaysEntries.C:80 UpdateVZEROTimeDelaysEntries.C:81 UpdateVZEROTimeDelaysEntries.C:82 UpdateVZEROTimeDelaysEntries.C:83 UpdateVZEROTimeDelaysEntries.C:84 UpdateVZEROTimeDelaysEntries.C:85