]> git.uio.no Git - u/mrichter/AliRoot.git/blob - 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
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:
8   .L $ALICE_ROOT/PWG1/CalibMacros/Pass0/makeOCDB.C
9   makeOCDB("105160");
10
11 */
12
13 const AliTRDCalDet *GetCalDetGain(Int_t runNumber, Int_t version, Int_t subversion);
14 const AliTRDCalDet *GetCalDetVdrift(Int_t runNumber, Int_t version, Int_t subversion);
15
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");
23
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://");
31
32   // Steering Tasks - set output storage
33   // DefaultStorage set already before - in ConfigCalibTrain.C
34 //ocdbStorage+="?se=ALICE::CERN::SE";
35
36   AliCDBManager::Instance()->SetSpecificStorage("*/*/*",ocdbStorage.Data());
37
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
46   proces.SetTimeGainRange(0.5,3.0);
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);
56   //
57   // TOF part
58   //
59   AliTOFAnalysisTaskCalibPass0 calibTask;
60   Printf("Calibrating TOF");
61   calibTask.ProcessOutput("CalibObjects.root", ocdbStorage);
62 //
63 //
64
65 // T0 part
66   AliT0PreprocessorOffline procesT0;
67   // Make  calibration of channels offset
68    procesT0.Process("CalibObjects.root",runNumber, runNumber, ocdbStorage);
69
70
71
72    //TRD part
73   AliTRDPreprocessorOffline procestrd;
74   procestrd.SetLinearFitForVdrift(kTRUE);
75   procestrd.Init("CalibObjects.root");
76   Int_t versionVdriftUsed = procestrd.GetVersionVdriftUsed();
77   Int_t subversionVdriftUsed = procestrd.GetSubVersionVdriftUsed();
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       
89       procestrd.SetMinStatsVdriftT0PH(600*10);
90       procestrd.SetMinStatsVdriftLinear(50);
91       procestrd.SetMinStatsGain(600);
92        
93       procestrd.CalibVdriftT0("CalibObjects.root",runNumber,runNumber,ocdbStorage);
94       procestrd.CalibGain("CalibObjects.root",runNumber,runNumber,ocdbStorage);
95       procestrd.CalibChamberStatus(runNumber,runNumber,ocdbStorage);
96     }
97   }
98   
99   //Mean Vertex
100   AliMeanVertexPreprocessorOffline procesMeanVtx;
101   procesMeanVtx.ProcessOutput("CalibObjects.root", ocdbStorage, runNumber);
102         
103   return;
104 }
105
106 const AliTRDCalDet *GetCalDetVdrift(Int_t runNumber, Int_t version, Int_t subversion){
107   //
108   // Get Cal Det used during reconstruction for vdrift
109   //
110
111
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 }
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 }