]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/CalibMacros/Pass0/makeOCDB.C
macros update (taken from current AliEn production) + added SDD calibration task"
[u/mrichter/AliRoot.git] / PWG1 / CalibMacros / Pass0 / makeOCDB.C
CommitLineData
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 13const AliTRDCalDet *GetCalDetGain(Int_t runNumber, Int_t version, Int_t subversion);
674af238 14const AliTRDCalDet *GetCalDetVdrift(Int_t runNumber, Int_t version, Int_t subversion);
3e8637f0 15
674af238 16void 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
106const 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 126const 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}