]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - PWG4/macros/AddTaskMinijet.C
reset cov to 1
[u/mrichter/AliRoot.git] / PWG4 / macros / AddTaskMinijet.C
... / ...
CommitLineData
1AliAnalysisTaskMinijet* AddTaskMinijet(Int_t runNumber = -1,
2 TString format = "aod",
3 Bool_t useMC = false,
4 Bool_t mcOnly = false,
5 Bool_t useHighMult = false,
6 Float_t ptTrigMin = 0.7,
7 Float_t ptAssocMin = 0.4,
8 Float_t maxVtxZ = 10.,
9 Int_t filterBit = 96,
10 Int_t debugLevel = 0,
11 Float_t maxEta = 0.9,
12 Float_t ptMin = 0.2,
13 Float_t ptMax = 50.0,
14 Bool_t checkSDD = false,
15 Int_t checkOption = 1,
16 Bool_t onlyPrim = false)
17{
18
19 // Get the pointer to the existing analysis manager via the static access method
20 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
21 if (!mgr) mgr = new AliAnalysisManager("Analysis train");
22
23 // Set TPC track cuts (used for ESDs)
24 AliESDtrackCuts* esdTrackCutsTPC=0x0;
25 if(!format.CompareTo("esd")){
26 esdTrackCutsTPC = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
27 esdTrackCutsTPC->SetMinNClustersTPC(80);
28 }
29
30 // First task for min bias events
31 AliAnalysisTaskMinijet *taskMB =
32 new AliAnalysisTaskMinijet("AliAnalysisTaskMinijet Min bias");
33 taskMB->SetUseMC(useMC,mcOnly);
34 taskMB->SetTriggerPtCut(ptTrigMin);
35 taskMB->SetAssociatePtCut(ptAssocMin);
36 taskMB->SetMaxEta(maxEta);
37 taskMB->SetPtRange(ptMin, ptMax);
38 taskMB->SetMaxVertexZ(maxVtxZ);
39 taskMB->SetTriggerMask(AliVEvent::kMB);
40 // taskMB->SelectCollisionCandidates(AliVEvent::kMB);//MB //now inside task
41 taskMB->SetFilterBit(filterBit); // used only in AOD case
42 taskMB->SetCheckSDD(checkSDD, checkOption);
43 taskMB->SetDebugLevel(debugLevel);
44
45 //use this only for correction map plots -> Split contmaintion and rec efficiency
46 taskMB->SetAnalyseOnlyPrimaries(onlyPrim);
47
48 if(!format.CompareTo("esd")){
49 taskMB->SetCuts(esdTrackCutsTPC);
50 taskMB->SetModeEsdAod(0); // 0 = reading ESDs
51 }
52 else if (!format.CompareTo("aod")){
53 // Cuts already applied through esd filter
54 taskMB->SetModeEsdAod(1); // 1 = reading AODs
55 }
56
57 // Second task for high multipliciy events
58 AliAnalysisTaskMinijet *taskHM =0x0;
59 if(useHighMult){
60 taskHM = new AliAnalysisTaskMinijet("AliAnalysisTaskMinijet HighMult");
61 taskHM->SetUseMC(useMC, mcOnly);
62 taskHM->SetTriggerPtCut(ptTrigMin);
63 taskHM->SetAssociatePtCut(ptAssocMin);
64 taskHM->SetMaxEta(maxEta);
65 taskHM->SetPtRange(ptMin, ptMax);
66 taskHM->SetMaxVertexZ(maxVtxZ);
67 taskHM->SetTriggerMask(AliVEvent::kHighMult);
68 //taskHM->SelectCollisionCandidates(AliVEvent::kHighMult); // now inside task
69 taskHM->SetFilterBit(filterBit); // used only in AOD case
70 taskHM->SetCheckSDD(checkSDD, checkOption);
71 taskHM->SetDebugLevel(debugLevel);
72
73 if(!format.CompareTo("esd")){
74 taskHM->SetCuts(esdTrackCutsTPC);
75 taskHM->SetModeEsdAod(0); // 0 = reading ESDs
76 }
77 else if (!format.CompareTo("aod")){
78 //cuts already applied through esd filter during writing of AODs
79 taskHM->SetModeEsdAod(1); // 1 = reading AODs
80 }
81
82 }
83
84 //create output containers
85 AliAnalysisDataContainer *outputMB = 0x0;
86 AliAnalysisDataContainer *outputHM = 0x0;
87
88 if(runNumber>0){
89 outputMB = mgr->CreateContainer("MiniJets",TList::Class(),
90 AliAnalysisManager::kOutputContainer,
91 Form("run%d.root",runNumber));
92 if(useHighMult){
93 outputHM = mgr->CreateContainer("MiniJets_HighMult",TList::Class(),
94 AliAnalysisManager::kOutputContainer,
95 Form("run%d.root",runNumber));
96 }
97 }
98 else{
99 outputMB = mgr->CreateContainer("MiniJets",TList::Class(),
100 AliAnalysisManager::kOutputContainer,
101 Form("%s:PWG4_MiniJets",
102 AliAnalysisManager::GetCommonFileName()));
103 if(useHighMult){
104 outputHM = mgr->CreateContainer("MiniJets_HighMult",TList::Class(),
105 AliAnalysisManager::kOutputContainer,
106 Form("%s:PWG4_MiniJets",
107 AliAnalysisManager::GetCommonFileName()));
108 }
109 }
110
111
112 // Add first task to the manager and connect container
113 mgr->AddTask(taskMB);
114 mgr->ConnectInput(taskMB, 0, mgr->GetCommonInputContainer());
115 mgr->ConnectOutput(taskMB, 1, outputMB);
116
117
118 // Add second task to the manager and connect container
119 if(useHighMult){
120 mgr->AddTask(taskHM);
121 mgr->ConnectInput (taskHM, 0, mgr->GetCommonInputContainer());
122 mgr->ConnectOutput(taskHM, 1, outputHM);
123 }
124
125 return taskMB;
126
127}
128