]>
Commit | Line | Data |
---|---|---|
8628b70c | 1 | // $Id$ |
2 | ||
7cfa86a3 | 3 | AliAnalysisTaskSE* AddTaskJetPreparation( |
b91d1003 | 4 | const char* periodstr = "LHC11h", |
8628b70c | 5 | const char* usedTracks = "PicoTracks", |
b0e0004e | 6 | const char* usedMCParticles = "MCParticlesSelected", |
8628b70c | 7 | const char* usedClusters = "CaloClusters", |
8 | const char* outClusName = "CaloClustersCorr", | |
9 | const Double_t hadcorr = 2.0, | |
10 | const Double_t Eexcl = 0.00, | |
11 | const Double_t phiMatch = 0.03, | |
12 | const Double_t etaMatch = 0.015, | |
13 | const Double_t minPtEt = 0.15, | |
135056c3 | 14 | const UInt_t pSel = AliVEvent::kAny, |
9ccb7f94 | 15 | const Bool_t trackclus = kTRUE, |
b91d1003 | 16 | const Bool_t doHistos = kFALSE, |
17 | const Bool_t makePicoTracks = kTRUE, | |
9f1d9336 | 18 | const Bool_t makeTrigger = kTRUE, |
6f44dd0e | 19 | const Bool_t isEmcalTrain = kFALSE, |
a29bc208 | 20 | const Double_t trackeff = 1.0, |
4b5caa21 | 21 | const Bool_t doAODTrackProp = kFALSE |
8628b70c | 22 | ) |
23 | { | |
b91d1003 | 24 | // Add task macros for all jet related helper tasks. |
25 | ||
8628b70c | 26 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); |
27 | if (!mgr) | |
28 | { | |
29 | Error("AddTaskJetPreparation","No analysis manager found."); | |
30 | return 0; | |
31 | } | |
8628b70c | 32 | |
33a8056d | 33 | AliVEventHandler *evhand = mgr->GetInputEventHandler(); |
34 | if (!evhand) { | |
35 | Error("AddTaskJetPreparation", "This task requires an input event handler"); | |
36 | return NULL; | |
37 | } | |
38 | ||
8628b70c | 39 | // Set trackcuts according to period. Every period used should be definied here |
b91d1003 | 40 | TString period(periodstr); |
135056c3 | 41 | TString clusterColName(usedClusters); |
14aa1ebc | 42 | TString particleColName(usedMCParticles); |
7030f36f | 43 | |
33a8056d | 44 | TString dType("ESD"); |
45 | if (!evhand->InheritsFrom("AliESDInputHandler")) | |
46 | dType = "AOD"; | |
14aa1ebc | 47 | if ((dType == "AOD") && (clusterColName == "CaloClusters")) |
135056c3 | 48 | clusterColName = "caloClusters"; |
9f1d9336 | 49 | if ((dType == "ESD") && (clusterColName == "caloClusters")) |
50 | clusterColName = "CaloClusters"; | |
135056c3 | 51 | |
5f2a3bf7 | 52 | if (0) { |
53 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalTrackPropagator.C"); | |
54 | AliEmcalTrackPropagatorTask *proptask = AddTaskEmcalTrackPropagator(); | |
55 | proptask->SelectCollisionCandidates(pSel); | |
56 | } | |
57 | ||
58 | if (makePicoTracks && (dType == "ESD" || dType == "AOD")) { | |
33a8056d | 59 | // Filter tracks |
60 | TString inputTracks = "AODFilterTracks"; | |
20c76018 | 61 | const Double_t edist = 440; |
5f2a3bf7 | 62 | if (dType == "ESD") { |
33a8056d | 63 | inputTracks = "ESDFilterTracks"; |
496abd8c | 64 | TString trackCuts(Form("Hybrid_%s", period.Data())); |
4b5caa21 | 65 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalEsdTrackFilter.C"); |
33a8056d | 66 | AliEmcalEsdTrackFilterTask *esdfilter = AddTaskEmcalEsdTrackFilter(inputTracks.Data(),trackCuts.Data()); |
67 | esdfilter->SetDoPropagation(kTRUE); | |
68 | esdfilter->SetDist(edist); | |
69 | esdfilter->SelectCollisionCandidates(pSel); | |
70 | } else if (dType == "AOD") { | |
82915c95 | 71 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalAodTrackFilter.C"); |
72 | AliEmcalAodTrackFilterTask *aodfilter = AddTaskEmcalAodTrackFilter(inputTracks.Data(),"tracks",period.Data()); | |
33a8056d | 73 | if (doAODTrackProp) { |
74 | aodfilter->SetDist(edist); | |
75 | aodfilter->SetDoPropagation(kTRUE); | |
76 | } | |
77 | aodfilter->SelectCollisionCandidates(pSel); | |
8628b70c | 78 | } |
b91d1003 | 79 | // Produce PicoTracks |
8628b70c | 80 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalPicoTrackMaker.C"); |
33a8056d | 81 | AliEmcalPicoTrackMaker *pTrackTask = AddTaskEmcalPicoTrackMaker("PicoTracks", inputTracks.Data()); |
6f44dd0e | 82 | pTrackTask->SetTrackEfficiency(trackeff); |
33a8056d | 83 | pTrackTask->SelectCollisionCandidates(pSel); |
8628b70c | 84 | } |
85 | ||
b91d1003 | 86 | // Produce particles used for hadronic correction |
8628b70c | 87 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalParticleMaker.C"); |
135056c3 | 88 | AliEmcalParticleMaker *emcalParts = AddTaskEmcalParticleMaker(usedTracks,clusterColName.Data(),"EmcalTracks","EmcalClusters"); |
8628b70c | 89 | emcalParts->SelectCollisionCandidates(pSel); |
90 | ||
9f1d9336 | 91 | // Trigger maker |
92 | if (makeTrigger) { | |
93 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalTriggerMaker.C"); | |
94 | AliEmcalTriggerMaker *emcalTriggers = AddTaskEmcalTriggerMaker("EmcalTriggers"); | |
95 | emcalTriggers->SelectCollisionCandidates(pSel); | |
96 | } | |
97 | ||
8628b70c | 98 | // Relate tracks and clusters |
99 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalClusTrackMatcher.C"); | |
20c76018 | 100 | AliEmcalClusTrackMatcherTask *emcalClus = AddTaskEmcalClusTrackMatcher("EmcalTracks","EmcalClusters",0.1,doHistos); |
8628b70c | 101 | emcalClus->SelectCollisionCandidates(pSel); |
b91d1003 | 102 | if (isEmcalTrain) |
8628b70c | 103 | RequestMemory(emcalClus,100*1024); |
9f1d9336 | 104 | |
82915c95 | 105 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskHadCorr.C"); |
33a8056d | 106 | AliHadCorrTask *hCorr = AddTaskHadCorr("EmcalTracks","EmcalClusters",outClusName,hadcorr, |
107 | minPtEt,phiMatch,etaMatch,Eexcl,trackclus,doHistos); | |
8628b70c | 108 | hCorr->SelectCollisionCandidates(pSel); |
b91d1003 | 109 | if (isEmcalTrain) { |
8628b70c | 110 | if (doHistos) |
05ef0f66 | 111 | RequestMemory(hCorr,500*1024); |
b91d1003 | 112 | } |
8628b70c | 113 | |
b91d1003 | 114 | // Produce MC particles |
5f2a3bf7 | 115 | if(particleColName != "") { |
8628b70c | 116 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskMCTrackSelector.C"); |
14aa1ebc | 117 | AliEmcalMCTrackSelector *mcPartTask = AddTaskMCTrackSelector(particleColName.Data(), kFALSE, kFALSE); |
b91d1003 | 118 | mcPartTask->SelectCollisionCandidates(pSel); |
8628b70c | 119 | } |
7cfa86a3 | 120 | |
121 | // Return one task that represents the jet preparation on LEGO trains | |
122 | return emcalParts; | |
8628b70c | 123 | } |