3 AliAnalysisTaskSE* AddTaskJetPreparation(
4 const char* periodstr = "LHC11h",
5 const char* pTracksName = "PicoTracks",
6 const char* usedMCParticles = "MCParticlesSelected",
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,
14 const UInt_t pSel = AliVEvent::kAny,
15 const Bool_t trackclus = kTRUE,
16 const Bool_t doHistos = kFALSE,
17 const Bool_t makePicoTracks = kTRUE,
18 const Bool_t makeTrigger = kTRUE,
19 const Bool_t isEmcalTrain = kFALSE,
20 const Double_t trackeff = 1.0,
21 const Bool_t doAODTrackProp = kFALSE,
22 const Bool_t modifyMatchObjs = kTRUE
25 // Add task macros for all jet related helper tasks.
27 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
30 Error("AddTaskJetPreparation","No analysis manager found.");
34 AliVEventHandler *evhand = mgr->GetInputEventHandler();
36 Error("AddTaskJetPreparation", "This task requires an input event handler");
40 // Set trackcuts according to period. Every period used should be defined here
41 TString period(periodstr);
42 TString clusterColName(usedClusters);
43 TString particleColName(usedMCParticles);
44 TString picoTracksName(pTracksName);
47 if (!evhand->InheritsFrom("AliESDInputHandler"))
49 if ((dType == "AOD") && (clusterColName == "CaloClusters"))
50 clusterColName = "caloClusters";
51 if ((dType == "ESD") && (clusterColName == "caloClusters"))
52 clusterColName = "CaloClusters";
55 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalTrackPropagator.C");
56 AliEmcalTrackPropagatorTask *proptask = AddTaskEmcalTrackPropagator();
57 proptask->SelectCollisionCandidates(pSel);
60 //----------------------- Trigger Maker -----------------------------------------------------
62 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalTriggerMaker.C");
63 AliEmcalTriggerMaker *emcalTriggers = AddTaskEmcalTriggerMaker("EmcalTriggers");
64 emcalTriggers->SelectCollisionCandidates(pSel);
67 //----------------------- Track Matching tasks -----------------------------------------------------
68 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskMatchingChain.C");
69 AliEmcalClusTrackMatcherTask *emcalClus = AddTaskMatchingChain(periodstr,pSel,
71 trackeff,doAODTrackProp,
72 0.1,modifyMatchObjs,doHistos);
74 //hard coded names of AliEmcalParticle strings to coincide with AddTaskClusTrackMatching
75 TString inputTracks = "AODFilterTracks";
76 if (dType == "ESD") inputTracks = "ESDFilterTracks";
77 TString emctracks = Form("EmcalTracks_%s",inputTracks.Data());
78 TString emcclusters = Form("EmcalClusters_%s",clusterColName.Data());
79 Printf("1-- inputTracks: %s, emcclusters: %s, emctracks: %s",inputTracks.Data(),emcclusters.Data(),emctracks.Data());
81 //----------------------- Produce PicoTracks -----------------------------------------------------
82 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalPicoTrackMaker.C");
83 AliEmcalPicoTrackMaker *pTrackTask = AddTaskEmcalPicoTrackMaker(picoTracksName, inputTracks);
84 // pTrackTask->SetTrackEfficiency(trackeff); //now done in Esd/AodFilter
85 pTrackTask->SelectCollisionCandidates(pSel);
88 //----------------------- Hadronic Correction -----------------------------------------------------
89 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskHadCorr.C");
90 AliHadCorrTask *hCorr = AddTaskHadCorr(emctracks,emcclusters,outClusName,hadcorr,
91 minPtEt,phiMatch,etaMatch,Eexcl,trackclus,doHistos);
92 hCorr->SelectCollisionCandidates(pSel);
95 RequestMemory(hCorr,500*1024);
98 // Produce MC particles
99 if(particleColName != "") {
100 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskMCTrackSelector.C");
101 AliEmcalMCTrackSelector *mcPartTask = AddTaskMCTrackSelector(particleColName, kFALSE, kFALSE);
102 mcPartTask->SelectCollisionCandidates(pSel);
105 // Return one task that represents the jet preparation on LEGO trains