]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/macros/AddTaskMinijet.C
fix coverity
[u/mrichter/AliRoot.git] / PWG4 / macros / AddTaskMinijet.C
1 AliAnalysisTaskMinijet* AddTaskMinijet(Int_t runNumber, 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 containers 
60   //===========================================================================
61   AliAnalysisDataContainer *output1  = 0x0;
62   AliAnalysisDataContainer *outputHM = 0x0;
63
64   if(runNumber>0){ 
65     output1  =  mgr->CreateContainer("MiniJets",TList::Class(),
66                                   AliAnalysisManager::kOutputContainer, Form("run%d.root",runNumber));
67     if(!format.CompareTo("esd") && IsHighMult){
68       outputHM =  mgr->CreateContainer("MiniJets_HighMult",TList::Class(),
69                                        AliAnalysisManager::kOutputContainer, Form("run%d.root",runNumber));
70     }
71    }
72    
73    else{
74      output1  = mgr->CreateContainer("MiniJets",TList::Class(),
75                                  AliAnalysisManager::kOutputContainer, 
76                                  Form("%s:PWG4_MiniJets",AliAnalysisManager::GetCommonFileName()));
77      if(!format.CompareTo("esd") && IsHighMult){
78        outputHM = mgr->CreateContainer("MiniJets_HighMult",TList::Class(),
79                                        AliAnalysisManager::kOutputContainer, 
80                                        Form("%s:PWG4_MiniJets",AliAnalysisManager::GetCommonFileName()));
81      }
82      
83    }
84
85   //===========================================================================  
86   // add first task to the manager
87   
88   mgr->AddTask(task);
89   
90   //connect input and output
91   mgr->ConnectInput(task, 0,  mgr->GetCommonInputContainer());
92   mgr->ConnectOutput(task, 1, output1);
93   
94   
95   //===========================================================================
96   //do same for high mult task if necassary
97   if(!format.CompareTo("esd") && IsHighMult){
98     
99     // add task to the manager
100     mgr->AddTask(taskHM);
101     
102     //connect input and output
103     mgr->ConnectInput (taskHM, 0,  mgr->GetCommonInputContainer());
104     mgr->ConnectOutput(taskHM, 1, outputHM);
105   }
106   
107   return task;
108
109 }
110