]>
Commit | Line | Data |
---|---|---|
1 | AliAnalysisTaskMinijet* 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 |