]>
Commit | Line | Data |
---|---|---|
8855d81c | 1 | AliAnalysisTaskMinijet* AddTaskMinijet(Int_t runNumber = -1, |
ef7478e8 | 2 | TString format = "aod", |
8855d81c | 3 | Bool_t useMC = false, |
4 | Bool_t mcOnly = false, | |
ef7478e8 | 5 | Bool_t useHighMult = false, |
6 | Float_t ptTrigMin = 0.7, | |
7 | Float_t ptAssocMin = 0.4, | |
8 | Float_t maxVtxZ = 10., | |
ac305649 | 9 | Int_t filterBit = 96, |
ef7478e8 | 10 | Int_t debugLevel = 0, |
11 | Float_t maxEta = 0.9, | |
12 | Float_t ptMin = 0.2, | |
ac305649 | 13 | Float_t ptMax = 50.0, |
14 | Bool_t checkSDD = false, | |
15 | Int_t checkOption = 1, | |
16 | Bool_t onlyPrim = false) | |
631d01ff | 17 | { |
ef7478e8 | 18 | |
ac305649 | 19 | // Get the pointer to the existing analysis manager via the static access method |
631d01ff | 20 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); |
21 | if (!mgr) mgr = new AliAnalysisManager("Analysis train"); | |
b7c0438e | 22 | |
8855d81c | 23 | // Set TPC track cuts (used for ESDs) |
24 | AliESDtrackCuts* esdTrackCutsTPC=0x0; | |
b7c0438e | 25 | if(!format.CompareTo("esd")){ |
8855d81c | 26 | esdTrackCutsTPC = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts(); |
27 | esdTrackCutsTPC->SetMinNClustersTPC(80); | |
b7c0438e | 28 | } |
29 | ||
8855d81c | 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); | |
ef7478e8 | 36 | taskMB->SetMaxEta(maxEta); |
37 | taskMB->SetPtRange(ptMin, ptMax); | |
8855d81c | 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 | |
ac305649 | 42 | taskMB->SetCheckSDD(checkSDD, checkOption); |
8855d81c | 43 | taskMB->SetDebugLevel(debugLevel); |
ac305649 | 44 | |
45 | //use this only for correction map plots -> Split contmaintion and rec efficiency | |
46 | taskMB->SetAnalyseOnlyPrimaries(onlyPrim); | |
8855d81c | 47 | |
b7c0438e | 48 | if(!format.CompareTo("esd")){ |
8855d81c | 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 | |
b7c0438e | 55 | } |
631d01ff | 56 | |
8855d81c | 57 | // Second task for high multipliciy events |
631d01ff | 58 | AliAnalysisTaskMinijet *taskHM =0x0; |
8855d81c | 59 | if(useHighMult){ |
631d01ff | 60 | taskHM = new AliAnalysisTaskMinijet("AliAnalysisTaskMinijet HighMult"); |
8855d81c | 61 | taskHM->SetUseMC(useMC, mcOnly); |
62 | taskHM->SetTriggerPtCut(ptTrigMin); | |
63 | taskHM->SetAssociatePtCut(ptAssocMin); | |
ac305649 | 64 | taskHM->SetMaxEta(maxEta); |
65 | taskHM->SetPtRange(ptMin, ptMax); | |
8855d81c | 66 | taskHM->SetMaxVertexZ(maxVtxZ); |
67 | taskHM->SetTriggerMask(AliVEvent::kHighMult); | |
68 | //taskHM->SelectCollisionCandidates(AliVEvent::kHighMult); // now inside task | |
ac305649 | 69 | taskHM->SetFilterBit(filterBit); // used only in AOD case |
70 | taskHM->SetCheckSDD(checkSDD, checkOption); | |
8855d81c | 71 | taskHM->SetDebugLevel(debugLevel); |
631d01ff | 72 | |
8855d81c | 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 | ||
631d01ff | 82 | } |
83 | ||
c2e7f32d | 84 | //create output containers |
8855d81c | 85 | AliAnalysisDataContainer *outputMB = 0x0; |
c2e7f32d | 86 | AliAnalysisDataContainer *outputHM = 0x0; |
87 | ||
88 | if(runNumber>0){ | |
8855d81c | 89 | outputMB = mgr->CreateContainer("MiniJets",TList::Class(), |
90 | AliAnalysisManager::kOutputContainer, | |
91 | Form("run%d.root",runNumber)); | |
92 | if(useHighMult){ | |
8b096658 | 93 | outputHM = mgr->CreateContainer("MiniJets_HighMult",TList::Class(), |
8b096658 | 94 | AliAnalysisManager::kOutputContainer, |
8855d81c | 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 | } | |
631d01ff | 110 | |
8855d81c | 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); | |
c2e7f32d | 116 | |
117 | ||
8855d81c | 118 | // Add second task to the manager and connect container |
119 | if(useHighMult){ | |
631d01ff | 120 | mgr->AddTask(taskHM); |
631d01ff | 121 | mgr->ConnectInput (taskHM, 0, mgr->GetCommonInputContainer()); |
122 | mgr->ConnectOutput(taskHM, 1, outputHM); | |
123 | } | |
124 | ||
8855d81c | 125 | return taskMB; |
631d01ff | 126 | |
127 | } | |
128 |