ROOT logo
//=============================================================================
//
// *** AddTaskTPCCalib
//
// This macros setup the TPC calibration task
//
//=============================================================================




Int_t debugLevel  = 2;
Int_t streamLevel = 20;
TTimeStamp startTime(2009,8,7,0,0,0);
TTimeStamp stopTime(2009,12,31,0,0,0);
char * prefix = "/V6/";

void ConfigOCDB(Int_t crun);

AliAnalysisTask  *AddTaskTPCCalib(Int_t runNumber)
{
  gSystem->Load("libTPCcalib");
  // pointer to the analysis manager
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    Error("AddTaskTPCCalib", "No analysis manager to connect to.");
    return NULL;
  }  
  
  // check the input handler
  if (!mgr->GetInputEventHandler()) {
    ::Error("AddTask", "This task requires an input event handler");
    return NULL;
  }  
  ConfigOCDB(runNumber);
  AliTPCAnalysisTaskcalib *task1=new AliTPCAnalysisTaskcalib("CalibObjectsTrain1");
  //
  SetupCalibTaskTrain1(task1);
  mgr->AddTask(task1);
  AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
  
  if (!cinput1) cinput1 = mgr->CreateContainer("cchain",TChain::Class(), 
                                      AliAnalysisManager::kInputContainer);

  AliAnalysisDataContainer *coutput1 =mgr->CreateContainer("TPCCalib",TObjArray::Class(), AliAnalysisManager::kOutputContainer, "AliESDfriends_v1.root");  
  mgr->ConnectInput(task1,0,cinput1);
  mgr->ConnectOutput(task1,0,coutput1);
  return task1;
}




void AddCalibCalib(TObject* task){
  //
  // Responsible: Marian Ivanov
  // Description:
  // calibCalib is a prefilter 
  // The current OCDB entries transformation are applied on cluster, tracks are refitted
  //
  AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
  AliTPCcalibCalib *calibCalib = new AliTPCcalibCalib("calibTPC","calibTPC");
  calibCalib->SetDebugLevel(debugLevel);
  calibCalib->SetStreamLevel(streamLevel);
  calibCalib->SetTriggerMask(-1,-1,kFALSE);        //accept everything 
  myTask->AddJob(calibCalib);

}
void AddCalibTimeGain(TObject* task){
  //
  //  Responsible: Alexander Kalweit
  //  Description:
  //  Parameters to set
  AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
  AliTPCcalibTimeGain *calibTimeGain = new AliTPCcalibTimeGain("calibTimeGain","calibTimeGain", startTime.GetSec(), stopTime.GetSec(), 30*60);
  //calibTimeGain->SetLowMemoryConsumption(kTRUE);
  //calibTimeGain->SetMIP(25.);
  calibTimeGain->SetIsCosmic(kFALSE);
  calibTimeGain->SetUseCookAnalytical(kTRUE);
  calibTimeGain->SetUseMax(kFALSE);
  calibTimeGain->SetDebugLevel(debugLevel);
  calibTimeGain->SetStreamLevel(streamLevel);
  calibTimeGain->SetTriggerMask(-1,-1,kTRUE);        //reject laser
  myTask->AddJob(calibTimeGain);
}

void AddCalibTime(TObject* task){
  //
  // Responsible: Dag Larsen
  // Description:
  //
  //
  AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
  AliTPCcalibTime *calibTime = new AliTPCcalibTime("calibTime","calibTime",  startTime.GetSec(), stopTime.GetSec(), 20*60);
  calibTime->SetDebugLevel(debugLevel);
  calibTime->SetStreamLevel(streamLevel);
  calibTime->SetTriggerMask(-1,-1,kFALSE);        //accept everything 
  myTask->AddJob(calibTime);
}


void SetupCalibTaskTrain1(TObject* task){
  //
  //
  //
  AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
  //AddCalibCalib(task);
  AddCalibTimeGain(task);
  AddCalibTime(task);
  //
  TString path=gSystem->pwd();
  path+=prefix;
  gSystem->mkdir(path);
  myTask->SetDebugOuputhPath(path.Data());

}



void ConfigOCDB(Int_t run){
  // 
  printf("SETUP OCBD for TPC\n");
  printf("SETUP OCBD for TPC\n");
  printf("SETUP OCBD for TPC\n");
  //
  //
  AliTPCParam *param= AliTPCcalibDB::Instance()->GetParameters();
  param->ReadGeoMatrices();
  //  
 
  AliTPCTransform *transform     = AliTPCcalibDB::Instance()->GetTransform() ;
  AliTPCRecoParam * tpcRecoParam = AliTPCRecoParam::GetCosmicTestParam(kTRUE);
  //
  transform->SetCurrentRecoParam(tpcRecoParam);
  tpcRecoParam->SetUseGainCorrectionTime(0);
  tpcRecoParam->SetUseRPHICorrection(kTRUE); 
  tpcRecoParam->SetUseTOFCorrection(kFALSE);
  //
  tpcRecoParam->SetUseDriftCorrectionTime(1);
  tpcRecoParam->SetUseDriftCorrectionGY(1);
  //
  tpcRecoParam->SetUseRadialCorrection(kFALSE);
  tpcRecoParam->SetUseQuadrantAlignment(kTRUE);
  //
  tpcRecoParam->SetUseSectorAlignment(kFALSE);
  tpcRecoParam->SetUseGainCorrectionTime(kFALSE);
  tpcRecoParam->SetUseFieldCorrection(kFALSE);
  tpcRecoParam->SetUseExBCorrection(kTRUE);
  AliTPCcalibDB::Instance()->SetRun(run);
}




 AddTaskTPCCalib.C:1
 AddTaskTPCCalib.C:2
 AddTaskTPCCalib.C:3
 AddTaskTPCCalib.C:4
 AddTaskTPCCalib.C:5
 AddTaskTPCCalib.C:6
 AddTaskTPCCalib.C:7
 AddTaskTPCCalib.C:8
 AddTaskTPCCalib.C:9
 AddTaskTPCCalib.C:10
 AddTaskTPCCalib.C:11
 AddTaskTPCCalib.C:12
 AddTaskTPCCalib.C:13
 AddTaskTPCCalib.C:14
 AddTaskTPCCalib.C:15
 AddTaskTPCCalib.C:16
 AddTaskTPCCalib.C:17
 AddTaskTPCCalib.C:18
 AddTaskTPCCalib.C:19
 AddTaskTPCCalib.C:20
 AddTaskTPCCalib.C:21
 AddTaskTPCCalib.C:22
 AddTaskTPCCalib.C:23
 AddTaskTPCCalib.C:24
 AddTaskTPCCalib.C:25
 AddTaskTPCCalib.C:26
 AddTaskTPCCalib.C:27
 AddTaskTPCCalib.C:28
 AddTaskTPCCalib.C:29
 AddTaskTPCCalib.C:30
 AddTaskTPCCalib.C:31
 AddTaskTPCCalib.C:32
 AddTaskTPCCalib.C:33
 AddTaskTPCCalib.C:34
 AddTaskTPCCalib.C:35
 AddTaskTPCCalib.C:36
 AddTaskTPCCalib.C:37
 AddTaskTPCCalib.C:38
 AddTaskTPCCalib.C:39
 AddTaskTPCCalib.C:40
 AddTaskTPCCalib.C:41
 AddTaskTPCCalib.C:42
 AddTaskTPCCalib.C:43
 AddTaskTPCCalib.C:44
 AddTaskTPCCalib.C:45
 AddTaskTPCCalib.C:46
 AddTaskTPCCalib.C:47
 AddTaskTPCCalib.C:48
 AddTaskTPCCalib.C:49
 AddTaskTPCCalib.C:50
 AddTaskTPCCalib.C:51
 AddTaskTPCCalib.C:52
 AddTaskTPCCalib.C:53
 AddTaskTPCCalib.C:54
 AddTaskTPCCalib.C:55
 AddTaskTPCCalib.C:56
 AddTaskTPCCalib.C:57
 AddTaskTPCCalib.C:58
 AddTaskTPCCalib.C:59
 AddTaskTPCCalib.C:60
 AddTaskTPCCalib.C:61
 AddTaskTPCCalib.C:62
 AddTaskTPCCalib.C:63
 AddTaskTPCCalib.C:64
 AddTaskTPCCalib.C:65
 AddTaskTPCCalib.C:66
 AddTaskTPCCalib.C:67
 AddTaskTPCCalib.C:68
 AddTaskTPCCalib.C:69
 AddTaskTPCCalib.C:70
 AddTaskTPCCalib.C:71
 AddTaskTPCCalib.C:72
 AddTaskTPCCalib.C:73
 AddTaskTPCCalib.C:74
 AddTaskTPCCalib.C:75
 AddTaskTPCCalib.C:76
 AddTaskTPCCalib.C:77
 AddTaskTPCCalib.C:78
 AddTaskTPCCalib.C:79
 AddTaskTPCCalib.C:80
 AddTaskTPCCalib.C:81
 AddTaskTPCCalib.C:82
 AddTaskTPCCalib.C:83
 AddTaskTPCCalib.C:84
 AddTaskTPCCalib.C:85
 AddTaskTPCCalib.C:86
 AddTaskTPCCalib.C:87
 AddTaskTPCCalib.C:88
 AddTaskTPCCalib.C:89
 AddTaskTPCCalib.C:90
 AddTaskTPCCalib.C:91
 AddTaskTPCCalib.C:92
 AddTaskTPCCalib.C:93
 AddTaskTPCCalib.C:94
 AddTaskTPCCalib.C:95
 AddTaskTPCCalib.C:96
 AddTaskTPCCalib.C:97
 AddTaskTPCCalib.C:98
 AddTaskTPCCalib.C:99
 AddTaskTPCCalib.C:100
 AddTaskTPCCalib.C:101
 AddTaskTPCCalib.C:102
 AddTaskTPCCalib.C:103
 AddTaskTPCCalib.C:104
 AddTaskTPCCalib.C:105
 AddTaskTPCCalib.C:106
 AddTaskTPCCalib.C:107
 AddTaskTPCCalib.C:108
 AddTaskTPCCalib.C:109
 AddTaskTPCCalib.C:110
 AddTaskTPCCalib.C:111
 AddTaskTPCCalib.C:112
 AddTaskTPCCalib.C:113
 AddTaskTPCCalib.C:114
 AddTaskTPCCalib.C:115
 AddTaskTPCCalib.C:116
 AddTaskTPCCalib.C:117
 AddTaskTPCCalib.C:118
 AddTaskTPCCalib.C:119
 AddTaskTPCCalib.C:120
 AddTaskTPCCalib.C:121
 AddTaskTPCCalib.C:122
 AddTaskTPCCalib.C:123
 AddTaskTPCCalib.C:124
 AddTaskTPCCalib.C:125
 AddTaskTPCCalib.C:126
 AddTaskTPCCalib.C:127
 AddTaskTPCCalib.C:128
 AddTaskTPCCalib.C:129
 AddTaskTPCCalib.C:130
 AddTaskTPCCalib.C:131
 AddTaskTPCCalib.C:132
 AddTaskTPCCalib.C:133
 AddTaskTPCCalib.C:134
 AddTaskTPCCalib.C:135
 AddTaskTPCCalib.C:136
 AddTaskTPCCalib.C:137
 AddTaskTPCCalib.C:138
 AddTaskTPCCalib.C:139
 AddTaskTPCCalib.C:140
 AddTaskTPCCalib.C:141
 AddTaskTPCCalib.C:142
 AddTaskTPCCalib.C:143
 AddTaskTPCCalib.C:144
 AddTaskTPCCalib.C:145
 AddTaskTPCCalib.C:146
 AddTaskTPCCalib.C:147
 AddTaskTPCCalib.C:148
 AddTaskTPCCalib.C:149
 AddTaskTPCCalib.C:150
 AddTaskTPCCalib.C:151
 AddTaskTPCCalib.C:152
 AddTaskTPCCalib.C:153
 AddTaskTPCCalib.C:154
 AddTaskTPCCalib.C:155