]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/macros/AddTaskMinijet.C
New AddTask macro for mini jet analysis using PWG4/JetTasks/AliAnalysisTaskMinijet...
[u/mrichter/AliRoot.git] / PWG4 / macros / AddTaskMinijet.C
1 AliAnalysisTaskMinijet* AddTaskMinijet(TString format="esd",Bool_t useMC = kFALSE, Bool_t IsHighMult=kTRUE)
2 {
3   // Get the pointer to the existing analysis manager via the static access method.
4   //==============================================================================
5   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
6   if (!mgr) mgr = new AliAnalysisManager("Analysis train");
7   
8   
9   // Configure analysis
10   //===========================================================================
11    
12   //first task for min bias events
13   AliAnalysisTaskMinijet *task = new AliAnalysisTaskMinijet("AliAnalysisTaskMinijet Min bias");
14   task->UseMC(useMC);
15   task->SetRadiusCut(0.7);
16   task->SetTriggerPtCut(0.7);
17   task->SetAssociatePtCut(0.4);
18   task->SetEventAxis(1); //1=random track
19   task->SetDebugLevel(0);
20   task->SetMaxVertexZ(10.);
21
22   //second task for high multipliciy events
23   AliAnalysisTaskMinijet *taskHM =0x0;
24   if(IsHighMult){
25     taskHM  = new AliAnalysisTaskMinijet("AliAnalysisTaskMinijet HighMult");
26     taskHM->UseMC(useMC);
27     taskHM->SetRadiusCut(0.7);
28     taskHM->SetTriggerPtCut(0.7);
29     taskHM->SetAssociatePtCut(0.4);
30     taskHM->SetEventAxis(1); //1=random track
31     taskHM->SetDebugLevel(0);
32     taskHM->SetMaxVertexZ(10.);
33   }
34
35   //set cuts (used for ESDs) 
36   AliESDtrackCuts* esdTrackCutsITSTPC=0x0;
37
38   if(!format.CompareTo("esd")){
39     esdTrackCutsITSTPC = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE);
40     
41     //configure tasks
42     task->SetMode(0);//0=reading ESDs
43     task->SelectCollisionCandidates(AliVEvent::kMB);//MB
44     task->SetCuts(esdTrackCutsITSTPC);
45     if(IsHighMult){
46       taskHM->SetMode(0);//0=reading ESDs
47       taskHM->SelectCollisionCandidates(AliVEvent::kHighMult);//high mult triggered event
48       taskHM->SetCuts(esdTrackCutsITSTPC);
49     }
50   }
51
52   else if (!format.CompareTo("aod")){
53     task->SetMode(1);// 1 = reading AODs
54     task->UseMC(kFALSE);//MC AODs are not implemented yet
55   }
56
57   //create output container and add task to mgr
58   //===========================================================================
59   AliAnalysisDataContainer *output1 = 
60     mgr->CreateContainer("chist", TList::Class(), 
61                          AliAnalysisManager::kOutputContainer, 
62                          "EventAxis.root");
63   // add task to the manager
64   mgr->AddTask(task);
65   
66   //connect input and output
67   mgr->ConnectInput(task, 0,  mgr->GetCommonInputContainer());
68   mgr->ConnectOutput(task, 1, output1);
69
70
71   //===========================================================================
72   //do same for high mult task if necassary
73   if(!format.CompareTo("esd") && IsHighMult){
74     //create output container
75     AliAnalysisDataContainer *outputHM = 0x0;
76     outputHM =  mgr->CreateContainer("chist_HM", TList::Class(), 
77                                      AliAnalysisManager::kOutputContainer, 
78                                      "EventAxis.root");
79     // add task to the manager
80     mgr->AddTask(taskHM);
81     
82     //connect input and output
83     mgr->ConnectInput (taskHM, 0,  mgr->GetCommonInputContainer());
84     mgr->ConnectOutput(taskHM, 1, outputHM);
85   }
86   
87   return task;
88
89 }
90