1 AliAnalysisTaskMinijet* AddTaskMinijet(Int_t runNumber = -1,
2 TString format = "aod",
5 Bool_t useHighMult = false,
6 Float_t ptTrigMin = 0.7,
7 Float_t ptAssocMin = 0.4,
14 Bool_t checkSDD = false,
15 Int_t checkOption = 1,
16 Bool_t onlyPrim = true,
17 Bool_t corrStrange = true,
18 Bool_t threePart = false)
21 // Get the pointer to the existing analysis manager via the static access method
22 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
23 if (!mgr) mgr = new AliAnalysisManager("Analysis train");
25 // Set TPC track cuts (used for ESDs)
26 AliESDtrackCuts* esdTrackCutsTPC=0x0;
27 if(!format.CompareTo("esd")){
28 esdTrackCutsTPC = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
29 esdTrackCutsTPC->SetMinNClustersTPC(80);
32 // First task for min bias events
33 AliAnalysisTaskMinijet *taskMB =
34 new AliAnalysisTaskMinijet("AliAnalysisTaskMinijet Min bias");
35 taskMB->SetUseMC(useMC,mcOnly);
36 taskMB->SetTriggerPtCut(ptTrigMin);
37 taskMB->SetAssociatePtCut(ptAssocMin);
38 taskMB->SetMaxEta(maxEta);
39 taskMB->SetPtRange(ptMin, ptMax);
40 taskMB->SetMaxVertexZ(maxVtxZ);
41 taskMB->SetTriggerMask(AliVEvent::kMB);
42 // taskMB->SelectCollisionCandidates(AliVEvent::kMB);//MB //now inside task
43 taskMB->SetFilterBit(filterBit); // used only in AOD case
44 taskMB->SetCheckSDD(checkSDD, checkOption);
45 taskMB->SetCorrStrangeness(corrStrange);
46 taskMB->SetThreeParticleCorrelation(threePart);
47 taskMB->SetDebugLevel(debugLevel);
49 //use this only for correction map plots -> Split contmaintion and rec efficiency
50 taskMB->SetAnalyseOnlyPrimaries(onlyPrim);
52 if(!format.CompareTo("esd")){
53 taskMB->SetCuts(esdTrackCutsTPC);
54 taskMB->SetModeEsdAod(0); // 0 = reading ESDs
56 else if (!format.CompareTo("aod")){
57 // Cuts already applied through esd filter
58 taskMB->SetModeEsdAod(1); // 1 = reading AODs
61 // Second task for high multipliciy events
62 AliAnalysisTaskMinijet *taskHM =0x0;
64 taskHM = new AliAnalysisTaskMinijet("AliAnalysisTaskMinijet HighMult");
65 taskHM->SetUseMC(useMC, mcOnly);
66 taskHM->SetTriggerPtCut(ptTrigMin);
67 taskHM->SetAssociatePtCut(ptAssocMin);
68 taskHM->SetMaxEta(maxEta);
69 taskHM->SetPtRange(ptMin, ptMax);
70 taskHM->SetMaxVertexZ(maxVtxZ);
71 taskHM->SetTriggerMask(AliVEvent::kHighMult);
72 //taskHM->SelectCollisionCandidates(AliVEvent::kHighMult); // now inside task
73 taskHM->SetFilterBit(filterBit); // used only in AOD case
74 taskHM->SetCheckSDD(checkSDD, checkOption);
75 taskHM->SetCorrStrangeness(corrStrange);
76 taskHM->SetThreeParticleCorrelation(threePart);
77 taskHM->SetDebugLevel(debugLevel);
79 if(!format.CompareTo("esd")){
80 taskHM->SetCuts(esdTrackCutsTPC);
81 taskHM->SetModeEsdAod(0); // 0 = reading ESDs
83 else if (!format.CompareTo("aod")){
84 //cuts already applied through esd filter during writing of AODs
85 taskHM->SetModeEsdAod(1); // 1 = reading AODs
90 //create output containers
91 AliAnalysisDataContainer *outputMB = 0x0;
92 AliAnalysisDataContainer *outputHM = 0x0;
95 outputMB = mgr->CreateContainer("MiniJets",TList::Class(),
96 AliAnalysisManager::kOutputContainer,
97 Form("run%d.root",runNumber));
99 outputHM = mgr->CreateContainer("MiniJets_HighMult",TList::Class(),
100 AliAnalysisManager::kOutputContainer,
101 Form("run%d.root",runNumber));
105 outputMB = mgr->CreateContainer("MiniJets",TList::Class(),
106 AliAnalysisManager::kOutputContainer,
107 Form("%s:PWG4_MiniJets",
108 AliAnalysisManager::GetCommonFileName()));
110 outputHM = mgr->CreateContainer("MiniJets_HighMult",TList::Class(),
111 AliAnalysisManager::kOutputContainer,
112 Form("%s:PWG4_MiniJets",
113 AliAnalysisManager::GetCommonFileName()));
118 // Add first task to the manager and connect container
119 mgr->AddTask(taskMB);
120 mgr->ConnectInput(taskMB, 0, mgr->GetCommonInputContainer());
121 mgr->ConnectOutput(taskMB, 1, outputMB);
124 // Add second task to the manager and connect container
126 mgr->AddTask(taskHM);
127 mgr->ConnectInput (taskHM, 0, mgr->GetCommonInputContainer());
128 mgr->ConnectOutput(taskHM, 1, outputHM);