2 macro to extract the OCDB entries
4 input: CalibObjects.root
5 ouput: TimeGain and TimeVdrift calibration objects for TPC and TRD
8 .L $ALICE_ROOT/PWGPP/CalibMacros/CPass0/makeOCDB.C
13 void PrintDetectoStatus();
17 void makeOCDB(TString runNumberString, TString ocdbStorage="")
20 // extract TPC OCDB entries
22 gROOT->Macro("LoadLibraries.C");
23 gROOT->LoadMacro("ConfigCalibTrain.C");
25 // switch off log info
26 AliLog::SetClassDebugLevel("AliESDEvent",0);
29 Int_t runNumber = runNumberString.Atoi();
30 printf("runNumber from runCalibTrain = %d\n",runNumber);
31 ConfigCalibTrain(runNumber, "raw://");
33 // Steering Tasks - set output storage
34 // DefaultStorage set already before - in ConfigCalibTrain.C
35 //ocdbStorage+="?se=ALICE::CERN::SE";
37 AliCDBManager::Instance()->SetSpecificStorage("*/*/*",ocdbStorage.Data());
40 if (ocdbStorage.Length()==0) ocdbStorage+="local://"+gSystem->GetFromPipe("pwd")+"/OCDB";
43 TFile fcalib("CalibObjects.root");
44 AliTPCPreprocessorOffline procesTPC;
46 // switch on parameter validation
47 procesTPC.SetTimeGainRange(0.5,3.0);
48 procesTPC.SwitchOnValidation();
50 // Make timegain calibration
51 //proces.CalibTimeGain("CalibObjects.root", runNumber,AliCDBRunRange::Infinity(),ocdbStorage);
52 procesTPC.CalibTimeGain("CalibObjects.root", runNumber,runNumber,ocdbStorage);
54 // Make vdrift calibration
55 //proces.CalibTimeVdrift("CalibObjects.root",runNumber,AliCDBRunRange::Infinity(),ocdbStorage);
56 procesTPC.CalibTimeVdrift("CalibObjects.root",runNumber,runNumber,ocdbStorage);
60 AliTOFAnalysisTaskCalibPass0 calibTask;
61 Printf("Calibrating TOF");
62 calibTask.ProcessOutput("CalibObjects.root", ocdbStorage);
67 AliT0PreprocessorOffline procesT0;
68 // Make calibration of channels offset
69 procesT0.Process("CalibObjects.root",runNumber, runNumber, ocdbStorage);
74 AliTRDPreprocessorOffline procestrd;
75 procestrd.SetLinearFitForVdrift(kTRUE);
76 procestrd.SetMinStatsVdriftT0PH(600*10);
77 procestrd.SetMinStatsVdriftLinear(50);
78 procestrd.SetMinStatsGain(600);
79 procestrd.SetLimitValidateNoData(40);
80 procestrd.SetLimitValidateBadCalib(40);
81 procestrd.SetAlternativeDriftVelocityFit(kTRUE);
82 procestrd.Init("CalibObjects.root");
83 Int_t versionVdriftUsed = procestrd.GetVersionVdriftUsed();
84 Int_t subversionVdriftUsed = procestrd.GetSubVersionVdriftUsed();
85 Int_t versionGainUsed = procestrd.GetVersionGainUsed();
86 Int_t subversionGainUsed = procestrd.GetSubVersionGainUsed();
87 Int_t versionExBUsed = procestrd.GetVersionExBUsed();
88 Int_t subversionExBUsed = procestrd.GetSubVersionExBUsed();
89 printf("version and subversion vdrift %d and %d\n",versionVdriftUsed,subversionVdriftUsed);
90 printf("version and subversion gain %d and %d\n",versionGainUsed,subversionGainUsed);
91 printf("version and subversion exb %d and %d\n",versionExBUsed,subversionExBUsed);
92 procestrd.Process("CalibObjects.root",runNumber,runNumber,ocdbStorage);
96 AliMeanVertexPreprocessorOffline procesMeanVtx;
97 procesMeanVtx.ProcessOutput("CalibObjects.root", ocdbStorage, runNumber);
100 // Print calibration status into the stdout
102 Int_t trdStatus = procestrd.GetStatus();
103 Int_t tofStatus = calibTask.GetStatus();
104 Int_t tpcStatus = (processTPC.ValidateTimeDrift() || processTPC.ValidateTimeDrift());
107 printf("CPass0 calibration status\n");
108 printf("TRD calibration status=%d\n",trdStatus);
109 printf("TOF calibration status=%d\n",tofStatus);
110 printf("TPC calibration status=%d\n",tpcStatus);
111 PrintDetectorStatus();
118 void PrintDetectoStatus(){
120 // GetStatus for the detector which did not implement GetStatus function:
122 // AliTOFAnalysisTaskCalibPass0 calibTask; // GetStatus implemented
123 // AliTRDPreprocessorOffline procestrd; // GetStatus implemented
124 // AliTPCPreprocessorOffline proces; // GetStatus not implemented (next release)
125 // // Logical or of the Validation function used instead
127 // AliMeanVertexPreprocessorOffline procesMeanVtx; // GetStatus not implemented
128 // AliT0PreprocessorOffline procesT0; // GetStatus not implemented
129 // SDDcalib // Not automatic update - Not needed
131 // CODE TO BE WRITTEN HERE FOR DETECTOT WITHOUT STATUS