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