ROOT logo
AliAnalysisTaskITSTPCalignment *AddTaskITSTPCalignment()
{
  //add the ITS TPC alignemtn task to the manager
  //Mikolaj Krzewicki, mikolaj.krzewicki@cern.ch

  //______________________________________________________________________________
  // Get the pointer to the existing analysis manager via the static access method.
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr)
  {
    ::Error("AddTaskITSTPCalignment", "No analysis manager to connect to.");
    return NULL;
  }

  //______________________________________________________________________________
  // Check the analysis type using the event handlers connected to the analysis manager.
  if (!mgr->GetInputEventHandler())
  {
    ::Error("AddTaskITSTPCalignment", "This task requires an input event handler");
    return NULL;
  }
  TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
  if (type!="ESD")
  {
    ::Error("AddTaskITSTPCalignment", "This task only works on ESDs");
    return NULL;
  }

  //___________________________________________________________________________
  // Create the task, add it to manager and configure it.
  AliAnalysisTaskITSTPCalignment *task = new AliAnalysisTaskITSTPCalignment("taskITSTPCalignment");
  TTimeStamp t0(2009,11,1,0,0,0);
  TTimeStamp tend(2012,12,31,0,0,0);
  Int_t slotwidth = 3600;
  task->SetupAlignerArray(t0.GetSec(),tend.GetSec(),slotwidth);
  task->SetFillDebugTree(kFALSE);
  task->SetDoQA(kTRUE);
  task->SetMinPt(0.4);
  task->SetMinNclsITS(4);
  task->SetMinNclsTPC(70);
  task->SetRejectOutliers(kTRUE); //internal KF outlier rejection (kalman update-based)
  task->SetRejectOutliersSigma2Median(kTRUE); //input data outlier removal
  task->SetOutRejSigma(1.); //max distance the kf state is allowed to jump
  task->SetOutRejSigmaOnMerge(10.); //outlier rejection when merging vertically
  task->SetOutRejSigma2Median(2.); //max distance from median for input data
  task->SetUseITSoutGlobalTrack(kFALSE);
  task->SetUseITSoutITSSAtrack(kTRUE);
  
  mgr->AddTask(task);

  //______________________________________________________________________________
  //connect output
  TString outputFilename = "outputITSTPCalignment.root";

  AliAnalysisDataContainer* coutput0 = mgr->CreateContainer("outputTree",
                                       TTree::Class(),
                                       AliAnalysisManager::kOutputContainer,
                                       outputFilename.Data());
  AliAnalysisDataContainer* coutput1 = mgr->CreateContainer("outputList",
                                       TList::Class(),
                                       AliAnalysisManager::kOutputContainer,
                                       outputFilename.Data());
  AliAnalysisDataContainer* coutput2 = mgr->CreateContainer("outputArrayITSglobal",
                                       AliRelAlignerKalmanArray::Class(),
                                       AliAnalysisManager::kOutputContainer,
                                       outputFilename.Data());
  AliAnalysisDataContainer* coutput3 = mgr->CreateContainer("outputArrayITSSA",
                                       AliRelAlignerKalmanArray::Class(),
                                       AliAnalysisManager::kOutputContainer,
                                       outputFilename.Data());

  mgr->ConnectInput(task,0,mgr->GetCommonInputContainer());
  mgr->ConnectOutput(task,0,coutput0);
  mgr->ConnectOutput(task,1,coutput1);
  mgr->ConnectOutput(task,2,coutput2);
  mgr->ConnectOutput(task,3,coutput3);

  return task;
}

 AddTaskITSTPCalignment.C:1
 AddTaskITSTPCalignment.C:2
 AddTaskITSTPCalignment.C:3
 AddTaskITSTPCalignment.C:4
 AddTaskITSTPCalignment.C:5
 AddTaskITSTPCalignment.C:6
 AddTaskITSTPCalignment.C:7
 AddTaskITSTPCalignment.C:8
 AddTaskITSTPCalignment.C:9
 AddTaskITSTPCalignment.C:10
 AddTaskITSTPCalignment.C:11
 AddTaskITSTPCalignment.C:12
 AddTaskITSTPCalignment.C:13
 AddTaskITSTPCalignment.C:14
 AddTaskITSTPCalignment.C:15
 AddTaskITSTPCalignment.C:16
 AddTaskITSTPCalignment.C:17
 AddTaskITSTPCalignment.C:18
 AddTaskITSTPCalignment.C:19
 AddTaskITSTPCalignment.C:20
 AddTaskITSTPCalignment.C:21
 AddTaskITSTPCalignment.C:22
 AddTaskITSTPCalignment.C:23
 AddTaskITSTPCalignment.C:24
 AddTaskITSTPCalignment.C:25
 AddTaskITSTPCalignment.C:26
 AddTaskITSTPCalignment.C:27
 AddTaskITSTPCalignment.C:28
 AddTaskITSTPCalignment.C:29
 AddTaskITSTPCalignment.C:30
 AddTaskITSTPCalignment.C:31
 AddTaskITSTPCalignment.C:32
 AddTaskITSTPCalignment.C:33
 AddTaskITSTPCalignment.C:34
 AddTaskITSTPCalignment.C:35
 AddTaskITSTPCalignment.C:36
 AddTaskITSTPCalignment.C:37
 AddTaskITSTPCalignment.C:38
 AddTaskITSTPCalignment.C:39
 AddTaskITSTPCalignment.C:40
 AddTaskITSTPCalignment.C:41
 AddTaskITSTPCalignment.C:42
 AddTaskITSTPCalignment.C:43
 AddTaskITSTPCalignment.C:44
 AddTaskITSTPCalignment.C:45
 AddTaskITSTPCalignment.C:46
 AddTaskITSTPCalignment.C:47
 AddTaskITSTPCalignment.C:48
 AddTaskITSTPCalignment.C:49
 AddTaskITSTPCalignment.C:50
 AddTaskITSTPCalignment.C:51
 AddTaskITSTPCalignment.C:52
 AddTaskITSTPCalignment.C:53
 AddTaskITSTPCalignment.C:54
 AddTaskITSTPCalignment.C:55
 AddTaskITSTPCalignment.C:56
 AddTaskITSTPCalignment.C:57
 AddTaskITSTPCalignment.C:58
 AddTaskITSTPCalignment.C:59
 AddTaskITSTPCalignment.C:60
 AddTaskITSTPCalignment.C:61
 AddTaskITSTPCalignment.C:62
 AddTaskITSTPCalignment.C:63
 AddTaskITSTPCalignment.C:64
 AddTaskITSTPCalignment.C:65
 AddTaskITSTPCalignment.C:66
 AddTaskITSTPCalignment.C:67
 AddTaskITSTPCalignment.C:68
 AddTaskITSTPCalignment.C:69
 AddTaskITSTPCalignment.C:70
 AddTaskITSTPCalignment.C:71
 AddTaskITSTPCalignment.C:72
 AddTaskITSTPCalignment.C:73
 AddTaskITSTPCalignment.C:74
 AddTaskITSTPCalignment.C:75
 AddTaskITSTPCalignment.C:76
 AddTaskITSTPCalignment.C:77
 AddTaskITSTPCalignment.C:78
 AddTaskITSTPCalignment.C:79
 AddTaskITSTPCalignment.C:80
 AddTaskITSTPCalignment.C:81