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