]>
Commit | Line | Data |
---|---|---|
674af238 | 1 | /* |
2 | macro to extract the OCDB entries | |
3 | ||
4 | input: CalibObjects.root | |
5 | ouput: TimeGain and TimeVdrift calibration objects for TPC and TRD | |
6 | ||
7 | Example: | |
b171a803 | 8 | .L $ALICE_ROOT/PWG1/CalibMacros/Pass0/makeOCDB.C |
674af238 | 9 | makeOCDB("105160"); |
10 | ||
11 | */ | |
12 | ||
278563e2 | 13 | const AliTRDCalDet *GetCalDetGain(Int_t runNumber, Int_t version, Int_t subversion); |
674af238 | 14 | const AliTRDCalDet *GetCalDetVdrift(Int_t runNumber, Int_t version, Int_t subversion); |
3e8637f0 | 15 | |
674af238 | 16 | void makeOCDB(TString runNumberString, TString ocdbStorage="") |
17 | { | |
18 | // | |
19 | // extract TPC OCDB entries | |
20 | // | |
21 | gROOT->Macro("LoadLibraries.C"); | |
22 | gROOT->LoadMacro("ConfigCalibTrain.C"); | |
8ec63e76 | 23 | |
674af238 | 24 | // switch off log info |
25 | AliLog::SetClassDebugLevel("AliESDEvent",0); | |
26 | ||
27 | // config GRP | |
28 | Int_t runNumber = runNumberString.Atoi(); | |
29 | printf("runNumber from runCalibTrain = %d\n",runNumber); | |
30 | ConfigCalibTrain(runNumber, "raw://"); | |
8ec63e76 | 31 | |
674af238 | 32 | // Steering Tasks - set output storage |
33 | // DefaultStorage set already before - in ConfigCalibTrain.C | |
8ec63e76 | 34 | //ocdbStorage+="?se=ALICE::CERN::SE"; |
35 | ||
674af238 | 36 | AliCDBManager::Instance()->SetSpecificStorage("*/*/*",ocdbStorage.Data()); |
8ec63e76 | 37 | |
674af238 | 38 | // set OCDB storage |
39 | if (ocdbStorage.Length()==0) ocdbStorage+="local://"+gSystem->GetFromPipe("pwd")+"/OCDB"; | |
40 | ||
41 | // TPC part | |
42 | TFile fcalib("CalibObjects.root"); | |
43 | AliTPCPreprocessorOffline proces; | |
44 | ||
45 | // switch on parameter validation | |
278563e2 | 46 | proces.SetTimeGainRange(0.5,3.0); |
674af238 | 47 | proces.SwitchOnValidation(); |
48 | ||
49 | // Make timegain calibration | |
50 | //proces.CalibTimeGain("CalibObjects.root", runNumber,AliCDBRunRange::Infinity(),ocdbStorage); | |
51 | proces.CalibTimeGain("CalibObjects.root", runNumber,runNumber,ocdbStorage); | |
52 | ||
53 | // Make vdrift calibration | |
54 | //proces.CalibTimeVdrift("CalibObjects.root",runNumber,AliCDBRunRange::Infinity(),ocdbStorage); | |
55 | proces.CalibTimeVdrift("CalibObjects.root",runNumber,runNumber,ocdbStorage); | |
b171a803 | 56 | // |
57 | // TOF part | |
58 | // | |
59 | AliTOFAnalysisTaskCalibPass0 calibTask; | |
60 | Printf("Calibrating TOF"); | |
61 | calibTask.ProcessOutput("CalibObjects.root", ocdbStorage); | |
278563e2 | 62 | // |
63 | // | |
674af238 | 64 | |
278563e2 | 65 | // T0 part |
66 | AliT0PreprocessorOffline procesT0; | |
67 | // Make calibration of channels offset | |
68 | procesT0.Process("CalibObjects.root",runNumber, runNumber, ocdbStorage); | |
674af238 | 69 | |
278563e2 | 70 | |
71 | ||
72 | //TRD part | |
674af238 | 73 | AliTRDPreprocessorOffline procestrd; |
74 | procestrd.SetLinearFitForVdrift(kTRUE); | |
75 | procestrd.Init("CalibObjects.root"); | |
76 | Int_t versionVdriftUsed = procestrd.GetVersionVdriftUsed(); | |
77 | Int_t subversionVdriftUsed = procestrd.GetSubVersionVdriftUsed(); | |
278563e2 | 78 | Int_t versionGainUsed = procestrd.GetVersionGainUsed(); |
79 | Int_t subversionGainUsed = procestrd.GetSubVersionGainUsed(); | |
80 | if((versionVdriftUsed != 0) && (versionGainUsed != 0)) { | |
81 | ||
82 | AliTRDCalDet *caldetVdrift =GetCalDetVdrift(runNumber,versionVdriftUsed,subversionVdriftUsed); | |
83 | procestrd.SetCalDetVdrift(caldetVdrift); | |
84 | AliTRDCalDet *caldetGain =GetCalDetGain(runNumber,versionGainUsed,subversionGainUsed); | |
85 | procestrd.SetCalDetGain(caldetGain); | |
86 | ||
87 | if(caldetVdrift && caldetGain) { | |
88 | ||
b171a803 | 89 | procestrd.SetMinStatsVdriftT0PH(600*10); |
278563e2 | 90 | procestrd.SetMinStatsVdriftLinear(50); |
b171a803 | 91 | procestrd.SetMinStatsGain(600); |
278563e2 | 92 | |
b171a803 | 93 | procestrd.CalibVdriftT0("CalibObjects.root",runNumber,runNumber,ocdbStorage); |
94 | procestrd.CalibGain("CalibObjects.root",runNumber,runNumber,ocdbStorage); | |
95 | procestrd.CalibChamberStatus(runNumber,runNumber,ocdbStorage); | |
96 | } | |
97 | } | |
278563e2 | 98 | |
99 | //Mean Vertex | |
100 | AliMeanVertexPreprocessorOffline procesMeanVtx; | |
101 | procesMeanVtx.ProcessOutput("CalibObjects.root", ocdbStorage, runNumber); | |
102 | ||
674af238 | 103 | return; |
104 | } | |
105 | ||
106 | const AliTRDCalDet *GetCalDetVdrift(Int_t runNumber, Int_t version, Int_t subversion){ | |
8ec63e76 | 107 | // |
674af238 | 108 | // Get Cal Det used during reconstruction for vdrift |
109 | // | |
8ec63e76 | 110 | |
111 | ||
674af238 | 112 | AliCDBEntry *entry = AliCDBManager::Instance()->Get("TRD/Calib/ChamberVdrift",runNumber, version, subversion); |
113 | if(!entry) { | |
114 | printf("Found no entry\n"); | |
115 | return 0x0; | |
116 | } | |
117 | const AliCDBId id = entry->GetId(); | |
118 | version = id.GetVersion(); | |
119 | subversion = id.GetSubVersion(); | |
120 | //printf("Found version %d and subversion %d for vdrift\n",version,subversion); | |
121 | const AliTRDCalDet* calDet = (AliTRDCalDet *)entry->GetObject(); | |
122 | ||
123 | return calDet; | |
124 | ||
125 | } | |
278563e2 | 126 | const AliTRDCalDet *GetCalDetGain(Int_t runNumber, Int_t version, Int_t subversion){ |
127 | // | |
128 | // Get Cal Det used during reconstruction for vdrift | |
129 | // | |
130 | ||
131 | ||
132 | AliCDBEntry *entry = AliCDBManager::Instance()->Get("TRD/Calib/ChamberGainFactor",runNumber, version, subversion); | |
133 | if(!entry) { | |
134 | printf("Found no entry\n"); | |
135 | return 0x0; | |
136 | } | |
137 | const AliCDBId id = entry->GetId(); | |
138 | version = id.GetVersion(); | |
139 | subversion = id.GetSubVersion(); | |
140 | //printf("Found version %d and subversion %d for vdrift\n",version,subversion); | |
141 | const AliTRDCalDet* calDet = (AliTRDCalDet *)entry->GetObject(); | |
142 | ||
143 | return calDet; | |
144 | ||
145 | } |