ROOT logo
//=============================================================================
//
// *** AddTaskTRDCalib
//
// This macros setup the TRD calibration task
//
//=============================================================================

const AliTRDCalDet *GetCalDet(Int_t runNumber);

AliAnalysisTask  *AddTaskTRDCalib(Int_t runNumber)
{
  gSystem->Load("libTRDcalib");
  // pointer to the analysis manager
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    Error("AddTaskTRDCalib", "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;
  }  

  /////////////////////////
  // The TRD calib Task
  /////////////////////////
  AliTRDCalibTask *calibTask = new AliTRDCalibTask();
  calibTask->SetHisto2d(kTRUE);
  calibTask->SetVector2d(kFALSE);
  calibTask->SetVdriftLinear(kTRUE);
  calibTask->SetNz(0,0);
  calibTask->SetNrphi(0,0);
  calibTask->SetNz(0,1);
  calibTask->SetNrphi(0,1);
  calibTask->SetNz(0,2);
  calibTask->SetNrphi(0,2);
  calibTask->SetLow(0);
  calibTask->SetHigh(30);
  calibTask->SetFillZero(kTRUE);
  calibTask->AddSelectedTriggerClass("CINT1B-ABCE-NOPF-ALL");
  calibTask->SetReject(kFALSE);
  //calibTask->SetDebug(3);
  calibTask->SetNbTimeBins(30);
  //calibTask->SetMaxEvent(20);
  calibTask->SetRequirePrimaryVertex(kTRUE);
  calibTask->SetMinNbOfContributors(1);
  calibTask->SetMaxCluster(100.0);
  calibTask->SetNbMaxCluster(2);
  calibTask->SetCalDetGain(GetCalDet(runNumber));

  /////////////////////////////
  // Track cuts
  /////////////////////////////
  AliESDtrackCuts *trackCuts = new AliESDtrackCuts("trackcuts","trackcuts");
  trackCuts->SetMinNClustersTPC(50);
  trackCuts->SetMaxChi2PerClusterTPC(3.5);
  //trackCuts->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);
  trackCuts->SetRequireTPCRefit(kTRUE);
  //trackCuts->SetRequireITSRefit(kTRUE);
  //trackCuts->SetMinNsigmaToVertex(10);
  trackCuts->SetRequireSigmaToVertex(kFALSE);
  trackCuts->SetAcceptKinkDaughters(kFALSE);
  trackCuts->SetMaxDCAToVertexZ(30.0);
  trackCuts->SetMaxDCAToVertexXY(3.0);
  trackCuts->SetDCAToVertex2D(kFALSE);

  calibTask->SetESDtrackCuts(trackCuts);

  mgr->AddTask(calibTask);

  AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
  
  if (!cinput) cinput = mgr->CreateContainer("cchain",TChain::Class(), 
                                      AliAnalysisManager::kInputContainer);

  AliAnalysisDataContainer *coutput =mgr->CreateContainer("TRDCalib",TList::Class(), AliAnalysisManager::kOutputContainer, "AliESDfriends_v1.root");  


  mgr->ConnectInput(calibTask,0,cinput);
  mgr->ConnectOutput(calibTask,1,coutput);
  return calibTask;

}

const AliTRDCalDet *GetCalDet(Int_t runNumber){
  // 
  // Get Cal Det for gas gain
  //
  
  AliCDBEntry *entry = AliCDBManager::Instance()->Get("TRD/Calib/ChamberGainFactor",runNumber);
  if(!entry) {
    printf("Found no entry\n");
    return 0x0;
  }
  const AliTRDCalDet* calDet = (AliTRDCalDet *)entry->GetObject();

  return calDet;

}

 AddTaskTRDCalib.C:1
 AddTaskTRDCalib.C:2
 AddTaskTRDCalib.C:3
 AddTaskTRDCalib.C:4
 AddTaskTRDCalib.C:5
 AddTaskTRDCalib.C:6
 AddTaskTRDCalib.C:7
 AddTaskTRDCalib.C:8
 AddTaskTRDCalib.C:9
 AddTaskTRDCalib.C:10
 AddTaskTRDCalib.C:11
 AddTaskTRDCalib.C:12
 AddTaskTRDCalib.C:13
 AddTaskTRDCalib.C:14
 AddTaskTRDCalib.C:15
 AddTaskTRDCalib.C:16
 AddTaskTRDCalib.C:17
 AddTaskTRDCalib.C:18
 AddTaskTRDCalib.C:19
 AddTaskTRDCalib.C:20
 AddTaskTRDCalib.C:21
 AddTaskTRDCalib.C:22
 AddTaskTRDCalib.C:23
 AddTaskTRDCalib.C:24
 AddTaskTRDCalib.C:25
 AddTaskTRDCalib.C:26
 AddTaskTRDCalib.C:27
 AddTaskTRDCalib.C:28
 AddTaskTRDCalib.C:29
 AddTaskTRDCalib.C:30
 AddTaskTRDCalib.C:31
 AddTaskTRDCalib.C:32
 AddTaskTRDCalib.C:33
 AddTaskTRDCalib.C:34
 AddTaskTRDCalib.C:35
 AddTaskTRDCalib.C:36
 AddTaskTRDCalib.C:37
 AddTaskTRDCalib.C:38
 AddTaskTRDCalib.C:39
 AddTaskTRDCalib.C:40
 AddTaskTRDCalib.C:41
 AddTaskTRDCalib.C:42
 AddTaskTRDCalib.C:43
 AddTaskTRDCalib.C:44
 AddTaskTRDCalib.C:45
 AddTaskTRDCalib.C:46
 AddTaskTRDCalib.C:47
 AddTaskTRDCalib.C:48
 AddTaskTRDCalib.C:49
 AddTaskTRDCalib.C:50
 AddTaskTRDCalib.C:51
 AddTaskTRDCalib.C:52
 AddTaskTRDCalib.C:53
 AddTaskTRDCalib.C:54
 AddTaskTRDCalib.C:55
 AddTaskTRDCalib.C:56
 AddTaskTRDCalib.C:57
 AddTaskTRDCalib.C:58
 AddTaskTRDCalib.C:59
 AddTaskTRDCalib.C:60
 AddTaskTRDCalib.C:61
 AddTaskTRDCalib.C:62
 AddTaskTRDCalib.C:63
 AddTaskTRDCalib.C:64
 AddTaskTRDCalib.C:65
 AddTaskTRDCalib.C:66
 AddTaskTRDCalib.C:67
 AddTaskTRDCalib.C:68
 AddTaskTRDCalib.C:69
 AddTaskTRDCalib.C:70
 AddTaskTRDCalib.C:71
 AddTaskTRDCalib.C:72
 AddTaskTRDCalib.C:73
 AddTaskTRDCalib.C:74
 AddTaskTRDCalib.C:75
 AddTaskTRDCalib.C:76
 AddTaskTRDCalib.C:77
 AddTaskTRDCalib.C:78
 AddTaskTRDCalib.C:79
 AddTaskTRDCalib.C:80
 AddTaskTRDCalib.C:81
 AddTaskTRDCalib.C:82
 AddTaskTRDCalib.C:83
 AddTaskTRDCalib.C:84
 AddTaskTRDCalib.C:85
 AddTaskTRDCalib.C:86
 AddTaskTRDCalib.C:87
 AddTaskTRDCalib.C:88
 AddTaskTRDCalib.C:89
 AddTaskTRDCalib.C:90
 AddTaskTRDCalib.C:91
 AddTaskTRDCalib.C:92
 AddTaskTRDCalib.C:93
 AddTaskTRDCalib.C:94
 AddTaskTRDCalib.C:95
 AddTaskTRDCalib.C:96
 AddTaskTRDCalib.C:97
 AddTaskTRDCalib.C:98
 AddTaskTRDCalib.C:99
 AddTaskTRDCalib.C:100
 AddTaskTRDCalib.C:101
 AddTaskTRDCalib.C:102
 AddTaskTRDCalib.C:103
 AddTaskTRDCalib.C:104