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 Double_t hadcorr = 2.0,
10 Double_t Eexcl = 0.00,
11 Double_t phiMatch = 0.03,
12 Double_t etaMatch = 0.015,
13 Double_t minPtEt = 0.15,
14 UInt_t pSel = AliVEvent::kAny,
15 Bool_t trackclus = kTRUE,
16 Bool_t doHistos = kFALSE,
17 Bool_t makePicoTracks = kTRUE,
18 Bool_t makeTrigger = kTRUE,
19 Bool_t isEmcalTrain = kFALSE,
20 Double_t trackeff = 1.0,
21 Bool_t doAODTrackProp = kTRUE,
22 Bool_t modifyMatchObjs = kTRUE,
23 Bool_t useOldBitConfig = kFALSE,
24 Bool_t doTriggerQA = kFALSE,
28 // Add task macros for all jet related helper tasks.
30 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
33 Error("AddTaskJetPreparation","No analysis manager found.");
37 AliVEventHandler *evhand = mgr->GetInputEventHandler();
39 Error("AddTaskJetPreparation", "This task requires an input event handler");
43 // Set trackcuts according to period. Every period used should be defined here
44 TString period(periodstr);
45 TString clusterColName(usedClusters);
46 TString particleColName(usedMCParticles);
47 TString picoTracksName(pTracksName);
50 if (!evhand->InheritsFrom("AliESDInputHandler"))
52 if ((dType == "AOD") && (clusterColName == "CaloClusters"))
53 clusterColName = "caloClusters";
54 if ((dType == "ESD") && (clusterColName == "caloClusters"))
55 clusterColName = "CaloClusters";
57 //----------------------- Trigger Maker -----------------------------------------------------
59 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalTriggerMaker.C");
61 * Parameters (with default values):
62 * triggersOutName (const char *) = "EmcalTriggers",
63 * triggerSetupOutName (const char *) = "EmcalTriggerSetup",
64 * cellsName (const char *) = 0,
65 * triggersName (const char *) = 0,
66 * taskName (const char *) = "AliEmcalTriggerMaker",
73 * doQA (bool) = kFALSE
75 AliEmcalTriggerMaker *emcalTriggers = AddTaskEmcalTriggerMaker("EmcalTriggers", "EmcalTriggerSetup", 0, 0, "AliEmcalTriggerMaker", 0, 0, 0, 0, 0, 0, useOldBitConfig, doTriggerQA);
76 emcalTriggers->SelectCollisionCandidates(pSel);
79 //----------------------- Track Matching tasks -----------------------------------------------------
80 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskMatchingChain.C");
81 AliEmcalClusTrackMatcherTask *emcalClus = AddTaskMatchingChain(periodstr,pSel,
83 trackeff,doAODTrackProp,
84 0.1,modifyMatchObjs,doHistos,nCentBins);
86 //hard coded names of AliEmcalParticle strings to coincide with AddTaskClusTrackMatching
87 TString inputTracks = "AODFilterTracks";
88 if (dType == "ESD") inputTracks = "ESDFilterTracks";
89 TString emctracks = Form("EmcalTracks_%s",inputTracks.Data());
90 TString emcclusters = Form("EmcalClusters_%s",clusterColName.Data());
91 Printf("1-- inputTracks: %s, emcclusters: %s, emctracks: %s",inputTracks.Data(),emcclusters.Data(),emctracks.Data());
93 //----------------------- Produce PicoTracks -----------------------------------------------------
94 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalPicoTrackMaker.C");
95 AliEmcalPicoTrackMaker *pTrackTask = AddTaskEmcalPicoTrackMaker(picoTracksName, inputTracks);
96 // pTrackTask->SetTrackEfficiency(trackeff); //now done in Esd/AodFilter
97 pTrackTask->SelectCollisionCandidates(pSel);
100 //----------------------- Hadronic Correction -----------------------------------------------------
101 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskHadCorr.C");
102 AliHadCorrTask *hCorr = AddTaskHadCorr(emctracks,emcclusters,outClusName,hadcorr,
103 minPtEt,phiMatch,etaMatch,Eexcl,trackclus,doHistos);
104 hCorr->SelectCollisionCandidates(pSel);
105 hCorr->SetNCentBins(nCentBins);
108 RequestMemory(hCorr,500*1024);
111 // Produce MC particles
112 if(particleColName != "") {
113 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskMCTrackSelector.C");
114 AliEmcalMCTrackSelector *mcPartTask = AddTaskMCTrackSelector(particleColName, kFALSE, kFALSE);
115 mcPartTask->SelectCollisionCandidates(pSel);
118 // Return one task that represents the jet preparation on LEGO trains