automatically write MC info into the trees when MC available
[u/mrichter/AliRoot.git] / PWGPP / macros / AddTaskITSsaTracks.C
CommitLineData
045571a6 1AliAnalysisTaskITSsaTracks *AddTaskITSsaTracks(Bool_t readMC=kFALSE,Bool_t UseMCtruthForPID=kFALSE){
2 // Creates, configures and attaches to the train the task for pi, K , p spectra
3 // with ITS standalone tracks
4 // Get the pointer to the existing analysis manager via the static access method.
5 //==============================================================================
6 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
7 if (!mgr) {
8 ::Error("AddTaskITSsaTracks", "No analysis manager to connect to.");
9 return NULL;
10 }
11
12 // Check the analysis type using the event handlers connected to the analysis manager.
13 //==============================================================================
14 if (!mgr->GetInputEventHandler()) {
15 ::Error("AddTaskITSsaTracks", "This task requires an input event handler");
16 return NULL;
17 }
18
19 TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
20 if(type.Contains("AOD")){
21 ::Error("AddTaskITSsaTracks", "This task requires to run on ESD");
22 return NULL;
23 }
24
25 //Bool_t isMC=kFALSE;
26 //if (mgr->GetMCtruthEventHandler()) isMC=kTRUE;
27
28 // Add MC handler (for kinematics)
29 if(readMC){
c21d72d6 30 AliMCEventHandler* handler = (AliMCEventHandler*)mgr->GetMCtruthEventHandler();
31 if (!handler) {
32 ::Error("AddTaskITSsaTracks","Macro called with readMC=true but MC handler not present");
33 return 0;
34 }
045571a6 35 }
36 // Create and configure the task
37 AliAnalysisTaskITSsaTracks *taskits = new AliAnalysisTaskITSsaTracks();
38 taskits->SelectCollisionCandidates();
8cc96a18 39 taskits->SetMinITSPoints(4);
045571a6 40 taskits->SetReadMC(readMC);
41 taskits->SetUseMCtruthForPID(UseMCtruthForPID);
42 mgr->AddTask(taskits);
43
44 // Create ONLY the output containers for the data produced by the task.
45 // Get and connect other common input/output containers via the manager as below
46 //==============================================================================
47 TString outputFileName = AliAnalysisManager::GetCommonFileName();
48 outputFileName += ":ITSsaTracks";
49
50 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("clistITSsaTracks",
51 TList::Class(),
52 AliAnalysisManager::kOutputContainer,
53 outputFileName );
54
55 mgr->ConnectInput(taskits, 0, mgr->GetCommonInputContainer());
56 mgr->ConnectOutput(taskits, 1, coutput1);
57 return taskits;
58}
8cc96a18 59