]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/macros/AddTaskJetPreparation.C
denote origins in the name
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskJetPreparation.C
CommitLineData
8628b70c 1// $Id$
2
7cfa86a3 3AliAnalysisTaskSE* 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}