automatically write MC info into the trees when MC available
[u/mrichter/AliRoot.git] / PWGPP / macros / AddTaskVertexESD.C
1 AliAnalysisTaskVertexESD *AddTaskVertexESD(Bool_t readMC=kFALSE, AliVEvent::EOfflineTriggerTypes triggerType = AliVEvent::kMB) 
2 {
3   //
4   // Task for validation of the primary vertices (SPD,TPC,ITS+TPC)
5   //
6   // andrea.dainese@pd.infn.it
7   //
8
9
10   // Get the pointer to the existing analysis manager via the static access method.
11   //==============================================================================
12   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
13   if (!mgr) {
14     ::Error("AddTask", "No analysis manager to connect to.");
15     return NULL;
16   }   
17
18   // Create the task
19   AliAnalysisTaskVertexESD *taskVtxESD = new AliAnalysisTaskVertexESD("VertexESD");
20   taskVtxESD->SetReadMC(readMC);
21   taskVtxESD->SetFillNtuple(kFALSE);
22   taskVtxESD->SetRerecoVertexITSTPCHalfEvent(kFALSE);
23   taskVtxESD->SetFillNtupleBeamSpot(kTRUE);
24   taskVtxESD->SetRerecoVertexITSTPC(kTRUE);
25   taskVtxESD->SetTriggerType(triggerType);
26         
27   AliLog::SetClassDebugLevel("AliAnalysisTaskVertexESD",10);
28   // Add to the manager
29   mgr->AddTask(taskVtxESD);
30
31   //
32   // Create containers for input/output
33   AliAnalysisDataContainer *cInputVtxESD = mgr->CreateContainer("cInputVtxESD",TChain::Class(),AliAnalysisManager::kInputContainer);
34
35   AliAnalysisDataContainer *cOutputVtxESD = mgr->CreateContainer("cOutputVtxESD",TList::Class(),AliAnalysisManager::kOutputContainer, Form("%s:Vertex_Performance", mgr->GetCommonFileName()));
36
37
38   // Attach input
39   mgr->ConnectInput(taskVtxESD,0,mgr->GetCommonInputContainer());
40   // Attach output
41   mgr->ConnectOutput(taskVtxESD,1,cOutputVtxESD);
42   
43   return taskVtxESD;
44 }