]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ANALYSIS/CalibMacros/AddTaskTPCCalib.C
25e8e0e43507d715ef83a414963a49a6269f5ed9
[u/mrichter/AliRoot.git] / ANALYSIS / CalibMacros / AddTaskTPCCalib.C
1 //=============================================================================
2 //
3 // *** AddTaskTPCCalib
4 //
5 // This macros setup the TPC calibration task
6 //
7 //=============================================================================
8
9
10
11
12 Int_t debugLevel  = 2;
13 Int_t streamLevel = 20;
14 TTimeStamp startTime(2010,2,1,0,0,0);
15 TTimeStamp stopTime(2010,12,31,0,0,0);
16 char * prefix = "/V6/";
17
18 void ConfigOCDB(Int_t crun);
19
20 AliAnalysisTask  *AddTaskTPCCalib(Int_t runNumber)
21 {
22   gSystem->Load("libTPCcalib");
23   // pointer to the analysis manager
24   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
25   if (!mgr) {
26     Error("AddTaskTPCCalib", "No analysis manager to connect to.");
27     return NULL;
28   }  
29   
30   // check the input handler
31   if (!mgr->GetInputEventHandler()) {
32     ::Error("AddTask", "This task requires an input event handler");
33     return NULL;
34   }  
35   ConfigOCDB(runNumber);
36   AliTPCAnalysisTaskcalib *task1=new AliTPCAnalysisTaskcalib("CalibObjectsTrain1");
37   //
38   SetupCalibTaskTrain1(task1);
39   mgr->AddTask(task1);
40   AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
41   
42   if (!cinput1) cinput1 = mgr->CreateContainer("cchain",TChain::Class(), 
43                                       AliAnalysisManager::kInputContainer);
44
45   AliAnalysisDataContainer *coutput1 =mgr->CreateContainer("TPCCalib",TObjArray::Class(), AliAnalysisManager::kOutputContainer, "AliESDfriends_v1.root");  
46   mgr->ConnectInput(task1,0,cinput1);
47   mgr->ConnectOutput(task1,0,coutput1);
48   return task1;
49 }
50
51
52
53
54 void AddCalibCalib(TObject* task){
55   //
56   // Responsible: Marian Ivanov
57   // Description:
58   // calibCalib is a prefilter 
59   // The current OCDB entries transformation are applied on cluster, tracks are refitted
60   //
61   AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
62   AliTPCcalibCalib *calibCalib = new AliTPCcalibCalib("calibTPC","calibTPC");
63   calibCalib->SetDebugLevel(debugLevel);
64   calibCalib->SetStreamLevel(streamLevel);
65   calibCalib->SetTriggerMask(-1,-1,kFALSE);        //accept everything 
66   myTask->AddJob(calibCalib);
67
68 }
69 void AddCalibTimeGain(TObject* task, Bool_t isCosmic = kFALSE, char * name = "calibTimeGain"){
70   //
71   //  Responsible: Alexander Kalweit
72   //  Description:
73   //  Parameters to set
74   AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
75   AliTPCcalibTimeGain *calibTimeGain = new AliTPCcalibTimeGain(name,"calibTimeGain", startTime.GetSec(), stopTime.GetSec(), 30*60);
76   //calibTimeGain->SetLowMemoryConsumption(kTRUE);
77   //calibTimeGain->SetMIP(25.);
78   calibTimeGain->SetIsCosmic(isCosmic);
79   calibTimeGain->SetUseCookAnalytical(kTRUE);
80   calibTimeGain->SetUseMax(kFALSE);
81   calibTimeGain->SetDebugLevel(debugLevel);
82   calibTimeGain->SetStreamLevel(streamLevel);
83   calibTimeGain->SetTriggerMask(-1,-1,kTRUE);        //reject laser
84   myTask->AddJob(calibTimeGain);
85 }
86
87 void AddCalibTime(TObject* task){
88   //
89   // Responsible: Dag Larsen
90   // Description:
91   //
92   //
93   AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
94   AliTPCcalibTime *calibTime = new AliTPCcalibTime("calibTime","calibTime",  startTime.GetSec(), stopTime.GetSec(), 20*60);
95   calibTime->SetDebugLevel(debugLevel);
96   calibTime->SetStreamLevel(streamLevel);
97   calibTime->SetTriggerMask(-1,-1,kFALSE);        //accept everything 
98   myTask->AddJob(calibTime);
99 }
100
101 void AddCalibLaser(TObject* task){
102   //
103   // Responsible: Marian Ivanov
104   // Description:
105   //
106   AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
107   AliTPCcalibLaser *calibLaser = new AliTPCcalibLaser("laserTPC","laserTPC");
108   calibLaser->SetDebugLevel(debugLevel);
109   calibLaser->SetStreamLevel(streamLevel);
110   calibLaser->SetTriggerMask(-1,-1,kFALSE);        //accept everything
111   myTask->AddJob(calibLaser);
112 }
113
114
115 void AddCalibAlign(TObject* task){
116   //
117   // Responsible: Marian Ivanov
118   // Description:
119   //
120   AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
121   AliTPCcalibAlign *calibAlign = new AliTPCcalibAlign("alignTPC","Alignment of the TPC sectors");
122   calibAlign->SetDebugLevel(debugLevel);
123   calibAlign->SetStreamLevel(streamLevel);
124   calibAlign->SetTriggerMask(-1,-1,kTRUE);        //accept everything
125   myTask->AddJob(calibAlign);
126 }
127
128 void AddCalibCosmic(TObject* task){
129   //
130   // Responsible: Marian Ivanov
131   // Description:
132   // Histogram residuals and pulls of the track parameters in bins of track parameters
133   //
134   AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
135   AliTPCcalibCosmic *calibCosmic = new AliTPCcalibCosmic("cosmicTPC","cosmicTPC");
136   calibCosmic->SetDebugLevel(debugLevel);
137   calibCosmic->SetStreamLevel(streamLevel);
138   calibCosmic->SetTriggerMask(-1,-1,kTRUE);        //accept everything
139   myTask->AddJob(calibCosmic);
140 }
141
142
143
144
145 void SetupCalibTaskTrain1(TObject* task){
146   //
147   //
148   //
149   AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
150   AddCalibCalib(task);
151   AddCalibTimeGain(task);
152   AddCalibTimeGain(task,kTRUE,"calibTimeGainCosmic"); // 2nd task for cosmic runs
153   AddCalibTime(task);
154   AddCalibLaser(task);
155   AddCalibAlign(task);
156   AddCalibCosmic(task);
157   //
158   TString path=gSystem->pwd();
159   path+=prefix;
160   gSystem->mkdir(path);
161   myTask->SetDebugOuputhPath(path.Data());
162
163 }
164
165
166
167 void ConfigOCDB(Int_t run){
168   // 
169   printf("SETUP OCBD for TPC\n");
170   printf("SETUP OCBD for TPC\n");
171   printf("SETUP OCBD for TPC Run =%d\n", run);
172   //
173   //
174   AliTPCParam *param= AliTPCcalibDB::Instance()->GetParameters();
175   param->ReadGeoMatrices();
176   //
177   AliMagF* magF= TGeoGlobalMagField::Instance()->GetField();
178   printf("\n\nSET EXB FIELD\t\n\n");
179   AliTPCcalibDB::Instance()->SetExBField(magF);
180   //
181   //
182   //
183   AliTPCTransform *transform     = AliTPCcalibDB::Instance()->GetTransform() ;
184   AliTPCRecoParam * tpcRecoParam = AliTPCRecoParam::GetCosmicTestParam(kTRUE);
185   //
186   transform->SetCurrentRecoParam(tpcRecoParam);
187   tpcRecoParam->SetUseGainCorrectionTime(0);
188   tpcRecoParam->SetUseRPHICorrection(kTRUE); 
189   tpcRecoParam->SetUseTOFCorrection(kFALSE);
190   //
191   tpcRecoParam->SetUseDriftCorrectionTime(0);
192   tpcRecoParam->SetUseDriftCorrectionGY(0);
193   //
194   tpcRecoParam->SetUseRadialCorrection(kFALSE);
195   tpcRecoParam->SetUseQuadrantAlignment(kFALSE);
196   //
197   tpcRecoParam->SetUseSectorAlignment(kTRUE);
198   tpcRecoParam->SetUseGainCorrectionTime(kFALSE);
199   tpcRecoParam->SetUseFieldCorrection(kFALSE);
200   tpcRecoParam->SetUseExBCorrection(kTRUE);
201   AliTPCcalibDB::Instance()->SetRun(run); 
202 }
203
204
205
206