]>
Commit | Line | Data |
---|---|---|
6616275e | 1 | void MakeVZEROSaturationEntry(const char *cdbUri = "local://$ALICE_ROOT/OCDB", |
2 | Bool_t default = kTRUE, | |
3 | Int_t firstRun = 0, | |
4 | Int_t lastRun = AliCDBRunRange::Infinity()) | |
5 | { | |
6 | ||
7 | AliCDBManager *man = AliCDBManager::Instance(); | |
8 | man->SetDefaultStorage(cdbUri); | |
9 | ||
10 | // Creation of the signal saturation OCDB object | |
11 | // x = Total ADC charge (summed up in 8x25 ns - from -1 to +6) | |
12 | // The correction for saturation is: | |
13 | // x -> x + alpha * ( x - beta ) | |
14 | // alpha and beta are calculated for each channel, and are | |
15 | // listed below | |
53ad561b | 16 | Double_t alpha[64] = { 7.70e-01 , 7.97e-01 , 7.64e-01 , 7.80e-01 , 6.61e-01 , 7.46e-01 , 6.59e-01 , 6.69e-01 , 6.40e-01 , 6.11e-01 , 6.25e-01 , 4.51e-01 , 5.72e-01 , 3.34e-01 , 6.23e-01 , 5.92e-01 , 5.28e-01 , 4.18e-01 , 3.56e-01 , 3.39e-01 , 4.91e-01 , 3.36e-01 , 9.48e-02 , 1.86e-01 , 1.72e-01 , 2.65e-01 , 2.15e-01 , 1.24e-01 , 2.62e-01 , 2.57e-01 , 2.21e-01 , 1.11e-01 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 1.74e-01 , 0.00e+00 , 1.69e-01 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 1.45e-01 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 5.62e-02 , 0.00e+00 , 0.00e+00 , 1.46e-01 }; |
17 | Double_t beta[64] = { 1.28e+03 , 1.28e+03 , 1.30e+03 , 1.26e+03 , 1.28e+03 , 1.28e+03 , 1.28e+03 , 1.34e+03 , 1.22e+03 , 1.26e+03 , 1.28e+03 , 1.14e+03 , 1.31e+03 , 1.29e+03 , 1.22e+03 , 1.27e+03 , 1.31e+03 , 1.31e+03 , 1.30e+03 , 1.21e+03 , 1.26e+03 , 1.30e+03 , 1.15e+03 , 1.30e+03 , 1.30e+03 , 1.32e+03 , 1.32e+03 , 1.37e+03 , 1.40e+03 , 1.43e+03 , 1.38e+03 , 1.28e+03 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 1.15e+03 , 0.00e+00 , 1.16e+03 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 1.32e+03 , 0.00e+00 , 0.00e+00 , 0.00e+00 , 1.21e+03 , 0.00e+00 , 0.00e+00 , 1.30e+03 }; | |
6616275e | 18 | |
19 | TObjArray *arr = new TObjArray(64); | |
20 | arr->SetOwner(1); | |
21 | for(Int_t i = 0; i < 64; ++i) { | |
53ad561b | 22 | TF1 *saturation = new TF1(Form("VZEROSaturationCh_%d",i),"x < [1] ? x : x + [0] * (x - [1])",0.,2500.); |
6616275e | 23 | if (default) { |
24 | saturation->SetParameter(0,0.0); | |
25 | saturation->SetParameter(1,0.0); | |
26 | } | |
27 | else { | |
28 | saturation->SetParameter(0,alpha[i]); | |
29 | saturation->SetParameter(1,beta[i]); | |
30 | } | |
31 | arr->AddAt(saturation,i); | |
32 | } | |
33 | ||
34 | AliCDBMetaData *md= new AliCDBMetaData(); // metaData describing the object | |
35 | md->SetResponsible("Brigitte Cheynis"); | |
36 | md->SetBeamPeriod(0); | |
37 | md->SetAliRootVersion(gSystem->Getenv("ARVERSION")); | |
38 | md->SetComment("Signal saturation correction used in reconstruction of data"); | |
39 | md->PrintMetaData(); | |
40 | ||
41 | AliCDBStorage *storLoc = man->GetDefaultStorage(); | |
42 | AliCDBId id("VZERO/Calib/Saturation",firstRun,lastRun); | |
43 | ||
44 | storLoc->Put(arr, id, md); | |
45 | ||
46 | storLoc->Delete(); | |
47 | delete md; | |
48 | } |