3 AliAnalysisTaskSE* AddTaskJetPreparation(
4 const char* dataType = "ESD",
5 const char* periodstr = "LHC11h",
6 const char* usedTracks = "PicoTracks",
7 const char* usedMCParticles = "MCParticlesSelected",
8 const char* usedClusters = "CaloClusters",
9 const char* outClusName = "CaloClustersCorr",
10 const Double_t hadcorr = 2.0,
11 const Double_t Eexcl = 0.00,
12 const Double_t phiMatch = 0.03,
13 const Double_t etaMatch = 0.015,
14 const Double_t minPtEt = 0.15,
15 const UInt_t pSel = AliVEvent::kAny,
16 const Bool_t trackclus = kTRUE,
17 const Bool_t doHistos = kFALSE,
18 const Bool_t makePicoTracks = kTRUE,
19 const Bool_t makeTrigger = kTRUE,
20 const Bool_t isEmcalTrain = kFALSE,
21 const Double_t trackeff = 1.0,
22 const Bool_t doAODTrackProp = kFALSE,
23 const Bool_t useTrackPropTask = kTRUE
26 // Add task macros for all jet related helper tasks.
28 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
31 Error("AddTaskJetPreparation","No analysis manager found.");
35 // Set trackcuts according to period. Every period used should be definied here
36 TString period(periodstr);
37 TString clusterColName(usedClusters);
38 TString particleColName(usedMCParticles);
39 TString dType(dataType);
41 if ((dType == "AOD") && (clusterColName == "CaloClusters"))
42 clusterColName = "caloClusters";
43 if ((dType == "ESD") && (clusterColName == "caloClusters"))
44 clusterColName = "CaloClusters";
46 if (makePicoTracks && (dType == "ESD" || dType == "AOD") )
48 TString inputTracks = "tracks";
52 inputTracks = "HybridTracks";
53 TString trackCuts(Form("Hybrid_%s", period.Data()));
54 // Hybrid tracks maker for ESD
55 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalEsdTpcTrack.C");
56 AliEmcalEsdTpcTrackTask *hybTask = AddTaskEmcalEsdTpcTrack(inputTracks.Data(),trackCuts.Data());
57 hybTask->SelectCollisionCandidates(pSel);
59 if(useTrackPropTask) {
60 // Track propagator to extend track to the TPC boundaries
61 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalTrackPropagator.C");
62 AliEmcalTrackPropagatorTask *propTask = AddTaskEmcalTrackPropagator(inputTracks.Data(),440.);
63 propTask->SelectCollisionCandidates(pSel);
66 hybTask->SetDoPropagation(kTRUE);
68 if(dType == "AOD" && doAODTrackProp) {
69 // Track propagator to extend track to the EMCal surface
70 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalTrackPropagatorAOD.C");
71 AliEmcalTrackPropagatorTaskAOD *propTask = AddTaskEmcalTrackPropagatorAOD(inputTracks.Data(),440.);
72 propTask->SelectCollisionCandidates(pSel);
77 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalPicoTrackMaker.C");
78 AliEmcalPicoTrackMaker *pTrackTask = AddTaskEmcalPicoTrackMaker("PicoTracks", inputTracks.Data(), period.Data());
79 pTrackTask->SelectCollisionCandidates(pSel);
80 pTrackTask->SetTrackEfficiency(trackeff);
83 // Produce particles used for hadronic correction
84 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalParticleMaker.C");
85 AliEmcalParticleMaker *emcalParts = AddTaskEmcalParticleMaker(usedTracks,clusterColName.Data(),"EmcalTracks","EmcalClusters");
86 emcalParts->SelectCollisionCandidates(pSel);
90 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalTriggerMaker.C");
91 AliEmcalTriggerMaker *emcalTriggers = AddTaskEmcalTriggerMaker("EmcalTriggers");
92 emcalTriggers->SelectCollisionCandidates(pSel);
95 // Relate tracks and clusters
96 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalClusTrackMatcher.C");
97 AliEmcalClusTrackMatcherTask *emcalClus = AddTaskEmcalClusTrackMatcher("EmcalTracks","EmcalClusters",0.1);
98 emcalClus->SelectCollisionCandidates(pSel);
100 RequestMemory(emcalClus,100*1024);
102 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskHadCorr.C");
103 AliHadCorrTask *hCorr = AddTaskHadCorr("EmcalTracks","EmcalClusters",outClusName,hadcorr,minPtEt,phiMatch,etaMatch,Eexcl,trackclus,doHistos);
104 hCorr->SelectCollisionCandidates(pSel);
108 RequestMemory(hCorr,500*1024);
111 // Produce MC particles
112 if(particleColName != "")
114 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskMCTrackSelector.C");
115 AliEmcalMCTrackSelector *mcPartTask = AddTaskMCTrackSelector(particleColName.Data(), kFALSE, kFALSE);
116 mcPartTask->SelectCollisionCandidates(pSel);
119 // Return one task that represents the jet preparation on LEGO trains