1 AliAnalysisTaskMinijet* AddTaskMinijet(Int_t runNumber = -1,
2 TString format = "esd",
5 Bool_t useHighMult = false
9 Float_t ptTrigMin = 0.7;
10 Float_t ptAssocMin = 0.4;
11 Float_t maxVtxZ = 10.;
12 Int_t filterBit = 128;
15 // Get the pointer to the existing analysis manager via the static access method.
16 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
17 if (!mgr) mgr = new AliAnalysisManager("Analysis train");
19 // Set TPC track cuts (used for ESDs)
20 AliESDtrackCuts* esdTrackCutsTPC=0x0;
21 if(!format.CompareTo("esd")){
22 esdTrackCutsTPC = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
23 esdTrackCutsTPC->SetMinNClustersTPC(80);
26 // First task for min bias events
27 AliAnalysisTaskMinijet *taskMB =
28 new AliAnalysisTaskMinijet("AliAnalysisTaskMinijet Min bias");
29 taskMB->SetUseMC(useMC,mcOnly);
30 taskMB->SetTriggerPtCut(ptTrigMin);
31 taskMB->SetAssociatePtCut(ptAssocMin);
32 taskMB->SetMaxVertexZ(maxVtxZ);
33 taskMB->SetTriggerMask(AliVEvent::kMB);
34 // taskMB->SelectCollisionCandidates(AliVEvent::kMB);//MB //now inside task
35 taskMB->SetFilterBit(filterBit); // used only in AOD case
36 taskMB->SetDebugLevel(debugLevel);
38 if(!format.CompareTo("esd")){
39 taskMB->SetCuts(esdTrackCutsTPC);
40 taskMB->SetModeEsdAod(0); // 0 = reading ESDs
42 else if (!format.CompareTo("aod")){
43 // Cuts already applied through esd filter
44 taskMB->SetModeEsdAod(1); // 1 = reading AODs
47 // Second task for high multipliciy events
48 AliAnalysisTaskMinijet *taskHM =0x0;
50 taskHM = new AliAnalysisTaskMinijet("AliAnalysisTaskMinijet HighMult");
51 taskHM->SetUseMC(useMC, mcOnly);
52 taskHM->SetTriggerPtCut(ptTrigMin);
53 taskHM->SetAssociatePtCut(ptAssocMin);
54 taskHM->SetMaxVertexZ(maxVtxZ);
55 taskHM->SetTriggerMask(AliVEvent::kHighMult);
56 //taskHM->SelectCollisionCandidates(AliVEvent::kHighMult); // now inside task
57 taskMB->SetFilterBit(filterBit); // used only in AOD case
58 taskHM->SetDebugLevel(debugLevel);
60 if(!format.CompareTo("esd")){
61 taskHM->SetCuts(esdTrackCutsTPC);
62 taskHM->SetModeEsdAod(0); // 0 = reading ESDs
64 else if (!format.CompareTo("aod")){
65 //cuts already applied through esd filter during writing of AODs
66 taskHM->SetModeEsdAod(1); // 1 = reading AODs
71 //create output containers
72 AliAnalysisDataContainer *outputMB = 0x0;
73 AliAnalysisDataContainer *outputHM = 0x0;
76 outputMB = mgr->CreateContainer("MiniJets",TList::Class(),
77 AliAnalysisManager::kOutputContainer,
78 Form("run%d.root",runNumber));
80 outputHM = mgr->CreateContainer("MiniJets_HighMult",TList::Class(),
81 AliAnalysisManager::kOutputContainer,
82 Form("run%d.root",runNumber));
86 outputMB = mgr->CreateContainer("MiniJets",TList::Class(),
87 AliAnalysisManager::kOutputContainer,
88 Form("%s:PWG4_MiniJets",
89 AliAnalysisManager::GetCommonFileName()));
91 outputHM = mgr->CreateContainer("MiniJets_HighMult",TList::Class(),
92 AliAnalysisManager::kOutputContainer,
93 Form("%s:PWG4_MiniJets",
94 AliAnalysisManager::GetCommonFileName()));
99 // Add first task to the manager and connect container
100 mgr->AddTask(taskMB);
101 mgr->ConnectInput(taskMB, 0, mgr->GetCommonInputContainer());
102 mgr->ConnectOutput(taskMB, 1, outputMB);
105 // Add second task to the manager and connect container
107 mgr->AddTask(taskHM);
108 mgr->ConnectInput (taskHM, 0, mgr->GetCommonInputContainer());
109 mgr->ConnectOutput(taskHM, 1, outputHM);