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